我很好奇为什么 .NET TryParse 方法(例如 Int32.TryParse、DateTime.TryParse)不接受对象,而是接受包含要解析的数字的第一个参数的字符串。如果我使用的是 TryParse,我会记住该方法可能会失败,我使用它是为了方便。如果 TryParse 在对象上静默失败并用 0 填充我的结果并返回 false,我会很好。
问问题
154 次
1 回答
5
.NET Framework 设计人员会给出什么理由让我提出第一个论点
String
?
好吧,您必须咨询 .NET Framework 设计人员而不是 Stack Overflow 的社区,但我会试一试。
该代码仅处理
string
s。接受 a
object
并检查它是否是 astring
将对正确使用该功能的其他所有人施加性能损失。像这样的类型
Action<Guid>
永远不能有意义地表示一个数字,因此使用string
而不是object
使调用具有无意义类型的函数变得不可能(即除了false
可能的结果之外,还有什么结果?保存函数调用。)TryParse
您可以使用任意object
s 来模拟自己try/catch
和Convert.ToInt32(object)
。它不能解决任何问题。
于 2013-07-31T05:37:00.180 回答