目录
一、普通类型转换
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、自定义类型的显示/隐式转换
public class Test
{
public double TestValue { get; set; }
public Test(double d)
{
TestValue = d;
}
// 隐式转换从Test到double
public static implicit operator double(Test f)
{
return f.TestValue;
}
// 显式转换从double到Test
public 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;
}