鉴于 .NET 团队已经声明(我会找到一个来源......)他们对原始类型的解析方法(例如Int32.TryParse(String s, out Int32 result)
)的设计感到遗憾,为什么没有使用更明显和对客户端友好的变体来更新这些方法?
框架版本:
Int32? numValue;
Int32 placeHolder;
if (! Int32.TryParse("not a number", out placeHolder))
numValue = 10;
改良版:
var numValue = Int32.Parse("not a number", 10);
改进的解析方法的签名是:
public static Int32? Parse(String s, Int32? defaultValue = null);
它可能有一个幼稚的实现:
public static Int32? Parse(String s, Int32? defaultValue = null) {
Int32 temp;
return ! Int32.TryParse(s, out temp)
? defaultValue
: temp;
}