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

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


http://www.kler.cn/a/400257.html

相关文章:

  • 台式电脑没有声音怎么办?台式电脑没有声音解决详解
  • Python 神经网络项目常用语法
  • Http常⻅见请求/响应头content-type内容类型讲解(笔记)
  • 基于单片机智能温室大棚监测系统
  • Ubuntu22.04 安装mysql8 无法修改端口及配置的问题 坑啊~~~~
  • 2020年计挑赛往届真题(C++)
  • 【案例分享】运用 Infragistics Ultimate UI 让工业物联网 IIoT 数据流更易于访问
  • C指针之舞——指针探秘之旅
  • django 过滤器的执行
  • CentOS Linux 7 (Core) x86_64 怎么配置网络?
  • 使用 PyTorch 实现简化版 GoogLeNet 进行 MNIST 图像分类
  • C# 面向对象
  • MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择
  • 淘宝客结合C#使用WebApi和css绘制商品图片
  • 界面控件DevExpress WinForms v24.2新功能预览 - 支持.NET 9
  • 社交电商的优势及其与 AI 智能名片小程序、S2B2C 商城系统的融合发展
  • Java篇String类的常见方法
  • 基于YOLOv8深度学习的智慧交通非机动车驾驶员头盔佩戴检测系统
  • Matlab实现白鲸优化算法优化随机森林算法模型 (BWO-RF)(附源码)
  • 在Keil中使用ST-LINK烧录STM32程序指南
  • 聚焦 AUTO TECH 2025华南展:探索新能源汽车发展新趋势
  • 美赛优秀论文阅读--2023C题
  • Spring Boot汽车资讯:数字化时代的驾驶
  • 前端性能优化深入解析:提升用户体验的几个关键点
  • 工具类-基于 axios 的 http 请求工具 Request
  • ELK8.15.4搭建开启安全认证