首页 > 编程语言 >C#-WPF 常见类型转换方法(持续更新)

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

时间:2024-11-20 09:16:58浏览次数:3  
标签:类型转换 String C# double image var Test new 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;
 }

标签:类型转换,String,C#,double,image,var,Test,new,WPF
From: https://blog.csdn.net/rwo_bear/article/details/140352412

相关文章

  • reactflow 中 useOnViewportChange 模块作用
    1.响应视口变化的核心功能在ReactFlow中,`useOnViewportChange`是一个用于处理视口(Viewport)变化的钩子。视口是用户在界面上看到的包含流程图部分的区域,它的变化包括但不限于平移、缩放、旋转等操作。这个模块的主要作用是让开发者能够监听和响应视口的这些变化。2.执行......
  • reactflow 中 useReactFlow 模块作用
    1.访问ReactFlow核心实例和状态它允许组件访问ReactFlow的核心实例及其相关状态。这意味着组件可以获取到有关整个流程图的关键信息,例如当前的缩放级别、视口的位置和大小等。2.操作ReactFlow实例方法除了获取状态,`useReactFlow`还提供了操作ReactFlow实例方法的......
  • 力扣 LeetCode 111. 二叉树的最小深度(Day7:二叉树)
     解题思路:用后序遍历题目要求的最小深度为根节点到叶子节点的最小深度,注意是到根节点,所以如图所示假设(没有9这个节点)是需要返回3的,而不是1(根节点左子树为空的情况),于是需要加两层判断其余部分可参考求最大深度的思路,有一定相似之处classSolution{publicintminDe......
  • 前端两大利器:Vue与TypeScript的渊源
    Vue在前端领域占据着重要地位,是最受欢迎的前端框架之一。它被广泛应用于各种类型的Web应用开发,从简单的小型项目,如个人博客、公司宣传网站等,到复杂的大型企业级应用,如电商平台、金融系统等。例如,许多电商公司使用Vue来构建商品展示、购物车、用户订单管理等功能模块,为......
  • CF913
    A当n>=30m一定<$2^n$所以直接输出即可B直接dfs统计即可C第一眼是个背包,但L太大发现有二进制,每一个容量正好在二进制上只有一位脑瘫想法是用每个数的二进制用其他数能表示的就表示,有个30的大常数其实输入就是有序的,直接让每一位都是最优的即可D额读错题,南坪选......
  • Codeforces 1145 题目分析
    本文将分析Codeforces1145(AprilFoolsDayContest2019)。题目分析A题目描述:使用“灭霸排序”算法可以得到的最长子串的长度。解法:暴力。B题目描述:输入一个整数\(\in[1,99]\),若它的英文形式含有knba四个字母输出NO否则输出YES。解法:打表。C题目描述:输入一......
  • 使用脚手架搭建React项目
    ​......
  • React 组件中 State 的定义、使用及正确更新方式
    ​......
  • OpenCV-Python Shi-Tomasi 角点检测 & 适合于跟踪的图像特征
    原理上一节我们学习了Harris角点检测,后来1994年,J.Shi和C.Tomasi在他们的文章《Good_Features_to_Track》中对这个算法做了一个小小的修改,并得到了更好的结果。我们知道Harris角点检测的打分公式为:R=\lambda_1\lambda_2-k(\lambda_1+\lambda_2)^2但Shi-......
  • OpenCV-Python Harris 角点检测
    原理在上一节我们已经知道了角点的一个特性:向任何方向移动变化都很大。Chris_Harris和Mike_Stephens早在1988年的文章《ACombinedCornerandEdgeDetector》中就已经提出了焦点检测的方法,被称为Harris角点检测。他把这个简单的想法转换成了数学形式。将窗口向......