当前位置: 首页 > news >正文

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;}


http://www.mrgr.cn/news/79721.html

相关文章:

  • 14:00面试,14:08就出来了,问的问题有点变态。。。
  • c#动态更新替换json节点
  • STM32F103单片机HAL库串口通信卡死问题解决方法
  • 基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 训练过程
  • 如何迅速成为一个领域的专家?
  • YOLOv5+pyqt5+摄像头在特定条件下进行目标检测并采集原始数据
  • 5G Multi-TRP R16~R18演进历程
  • Linux网络基础知识————网络编程
  • rk3588-ubuntu22.04系统网关实现路由器功能:
  • 《Hadoop大数据技术应用综合训练》----以NBA冠军球队计数为例
  • C# .NET CORE 开发问题汇总
  • day10 电商系统后台API——接口测试(使用postman)
  • 【Spark】Spark Join类型及Join实现方式
  • 数据结构DAY1
  • 开发EDA工具常用的三方开源
  • 第七天:Linux中文本编辑工具和文本三剑客-grep 第八天:Linux中shell脚本编程1
  • python爬虫--小白篇【爬虫实践】
  • FPGA 17 ,FPGA 与 SR-IOV虚拟化技术,高性能计算与虚拟化技术的结合(FPGA 与 SR-IOV 和 PCI,高性能计算与虚拟化的完美融合)
  • python学opencv|读取图像(七)抓取像素数据顺利修改图像大小
  • Flutter:开发环境搭建和Android Studio创建Flutter Project
  • Harbor 仓库部署(docker-compose 部署方式)
  • coco数据集转换SAM2格式
  • 文件下载和图片预览 Blob FileReader
  • SQL汇总数据:聚集函数
  • linux系统使用nginx代理mysql数据库
  • 分布式 CAP理论 总结