解决c#中配置界面里人为输出导致double.parse / int.parse报错的问题

By admin at 16 小时前 • 0人收藏 • 16人看过

客户发来报错信息, 一眼可以看出, 这个就是字符串输错导致转换报错

8e37975bea2cddf2d50be4b80a94e208.png

程序里, 我是直接用的 double.parse() 和 int.parse() 处理的配置文件, 

这样导致一个问题,  比如0.5的点输错成为了句号, 比如100的1写成了L

下面来解决这个问题.

using System;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string dd = null;
            Console.WriteLine(dd.ToDouble(0));
            dd = "543";
            Console.WriteLine(dd.ToInt(0));
            dd = "";
            Console.WriteLine(dd.ToDouble(0.1));
            Console.ReadLine();
        }
    }

    public static class StringExtensions
    {
        public static double ToDouble(this string s, double defaultValue = 0.0) =>
            double.TryParse(s, out var r) ? r : defaultValue;

        public static int ToInt(this string s, int defaultValue = 0) =>
          int.TryParse(s, out var r) ? r : defaultValue;
    }
}


使用扩展方法(最推荐,复用性最高)

你可以为 string 类型添加一个扩展方法,这样你就可以在任何字符串变量上直接调用它,代码看起来非常干净.


你也可以把这个扩展类写入工程的一个独立文件里去:

image.png


登录后方可回帖

登 录
信息栏
本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...