C#-WPF 常见类型转换方法(持续更新)
目录
一、普通类型转换
1、Convert类
2、Parse(转String)
3、TryParse(转String)
4、ToString(转String)
5、int转double
6、String转DateTime
7、自定义类型的显示/隐式转换
二、byte[]转ImageSource
方法一
方法二
一、普通类型转换
1、Convert类
提供了一种安全的方式来执行类型转换,可处理 null值,格式错误,会抛出FormatException
var num = Convert.ToInt32("123");
2、Parse(转String)
Parse 方法用于将字符串转换为对应的数值类型,如果转换失败会抛出异常。
var dNum = double.Parse("2.22");
3、TryParse(转String)
TryParse 方法类似于 Parse,但它不会抛出异常,而是返回一个布尔值指示转换是否成功。
double.TryParse("2.22",out var dNum2);
4、ToString(转String)
var str=2.33.ToString();
5、int转double
var num1 = 233*1.0;
6、String转DateTime
var dateStr = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
Convert.ToDateTime(dateStr);
7、自定义类型的显示/隐式转换
public class Test
{public double TestValue { get; set; }public Test(double d){TestValue = d;}// 隐式转换从Test到doublepublic static implicit operator double(Test f){return f.TestValue;}// 显式转换从double到Testpublic static explicit operator Test(double d){return new Test(d);}
}public static void Main(string[] args){Test test = new Test(2.33);Console.WriteLine(test);double test2 = test; Console.WriteLine($"隐式转换 {test2}");var test3 = (Test)3.22;Console.WriteLine($"显示转换 {test3.TestValue}");}
二、byte[]转ImageSource
方法一
private ImageSource ByteArrayToImageSource(byte[] data){System.Drawing.Image image;using (MemoryStream ms = new MemoryStream(data)){image = System.Drawing.Image.FromStream(ms);}var bitmap = new Bitmap(image);return Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());}
方法二
private ImageSource ByteArrayToImageSource(byte[] data){BitmapImage image = new BitmapImage();using (MemoryStream ms = new MemoryStream(data)){ms.Position = 0;image.BeginInit();image.CacheOption = BitmapCacheOption.OnLoad;image.StreamSource = ms;image.EndInit();image.Freeze();}return image;}