【发布时间】:2022-06-10 20:05:06
【问题描述】:
我正在尝试找到一种方法将其变成一个通用方法,我可以将值解析为小数或整数。有谁知道这样做的好方法吗?
private int ParseIntField(string value, int linecount, string fieldName)
{
if (!Int32.TryParse(value, out int result))
{
throw new Exception($"TryParse failed, line {linecount} Fieldname: {fieldName} Value: {value}");
}
return result;
}
private decimal ParseDecimalField(string value, int linecount, string fieldName)
{
if (!decimal.TryParse(value, out decimal result))
{
throw new Exception($"TryParse failed, line {linecount} Fieldname: {fieldName} Value: {value}");
}
return result;
}
【问题讨论】:
-
为什么?它正在工作,很清楚,很短 - 将它用于这两种类型只会让事情变得更加复杂。
-
很难想象你可能需要这种方法的情况。
-
我是学生,这不是出于实际原因,我被告知要看看我是否可以做到,老实说我很难过。
-
如果不使用反射来尝试访问泛型类型上的
TryParse方法,则无法完成。不知道这意味着什么,我会回到你的导师那里叫他们出来。 -
我同意,
TryParse无论如何只适用于少数类型,所以泛型的好处并不多