我正在使用以下方法来提供对各种 Type 类的 TryParse() 方法的快速内联访问。基本上,如果可能,我希望能够解析来自 Web 服务的字符串,否则返回默认值。
private Int64 Int64Parse(string value) {
Int64 result;
if (!Int64.TryParse(value, out result)) { return default(Int64); }
return result;
}
private DateTime DateTimeParse(string value) {
DateTime result;
if (!DateTime.TryParse(value, out result)) { return default(DateTime); }
return result;
}
private Decimal DecimalParse(string value) {
Decimal result;
if (!Decimal.TryParse(value, out result)) { return default(Decimal); }
return result;
}
这些是非常重复的,对我来说,暗示可能有一种方法可以将它们包装成一个通用方法。
我被困在以下但不确定如何继续或如何搜索如何继续。
private T ParseString<T>(string value) {
T result;
if (!T.TryParse(value, out result)) { return default(T); }
return result;
}
任何帮助,将不胜感激。谢谢。
==编辑== 添加一些上下文。这适用于从特定信用卡计费公司接收回发的听众。我没有在这一步进行验证,因为稍后会在业务规则步骤中进行验证。例如,我不在乎 bank_batch_number 是以 int、string 还是冻干啮齿动物的形式出现的;如果我不能干净地记录我不使用的字段,我不会因异常而停止。我确实关心我们的数据库中存在 ext_product_id 并且在消息中具有与 currency_amount_settled 匹配的价格;如果该测试失败,则交易将被搁置,并记录一个警告,并且我们的 CS 员工和我本人将收到警报。
不过,下面提到的文化是明智的建议。