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

C#-WPF 常见类型转换方法(持续更新)

目录

一、普通类型转换

1、Convert类

2、Parse(转String)

3、TryParse(转String)

4、ToString(转String)

5、int转double

 6、自定义类型的显示/隐式转换

二、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、自定义类型的显示/隐式转换

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.lryc.cn/news/486991.html

相关文章:

  • Path does not exist: file:/D:/pythonProject/spark/main/datas/input/u.data
  • 物联网——UNIX时间戳、BKP备份寄存器、RTC时钟
  • 力扣 LeetCode 94. 二叉树的中序遍历(Day6:二叉树)
  • 删除缓存之后,浏览器显示登录新设备
  • 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-04
  • Stable diffusion详细讲解
  • 软件工程期末复习-用例建模
  • 【Golang】——Gin 框架中的表单处理与数据绑定
  • hive-内部表外部表-详细介绍
  • Windows系统 ElasticSearch,分词器、Kibana安装
  • 黑马智数Day10
  • 网络传输:网卡、IP、网关、子网掩码、MAC、ARP、路由器、NAT、交换机
  • MySQL45讲 第二十四讲 MySQL是怎么保证主备一致的?——阅读总结
  • Visual Studio 圈复杂度评估
  • Springboot之登录模块探索(含Token,验证码,网络安全等知识)
  • golang调用模组程序实现交互输入自动化,获取imei及iccid
  • ACE之单例
  • 泷羽sec学习打卡-云技术基础1-docker
  • 7天掌握SQL - 第一天:数据库基础与SQL入门
  • A037-基于Spring Boot的二手物品交易的设计与实现
  • 【异常记录】Junitmock之InvalidUseOfMatchersException异常
  • Spring Boot3自定义starter
  • 掌控 Solidity:事件日志、继承和接口的深度解析
  • 新手教学系列——善用 VSCode 工作区,让开发更高效
  • Vue3 虚拟列表组件库 virtual-list-vue3 的使用
  • WebRTC实现双端音视频聊天(Vue3 + SpringBoot)
  • 第6章详细设计-6.9 PCB审查
  • docker与大模型(口语化原理和实操讲解)
  • Linux之vim模式下全选命令
  • 云原生周刊:Kubernetes v1.32 要来了