解决c#中配置界面里人为输出导致double.parse / int.parse报错的问题
By
admin
at 16 小时前 • 0人收藏 • 16人看过
客户发来报错信息, 一眼可以看出, 这个就是字符串输错导致转换报错

程序里, 我是直接用的 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 类型添加一个扩展方法,这样你就可以在任何字符串变量上直接调用它,代码看起来非常干净.
你也可以把这个扩展类写入工程的一个独立文件里去:

登录后方可回帖