ren*_*rof 59 .net c# parsing type-conversion tryparse
我知道......我知道......性能不是这里的主要关注点,但只是出于好奇,哪个更好?
bool parsed = int.TryParse(string, out num);
if (parsed)
...
Run Code Online (Sandbox Code Playgroud)
要么
try {
int.Parse(string);
}
catch () {
do something...
}
Run Code Online (Sandbox Code Playgroud)
Fre*_*örk 82
更好是非常主观的.举例来说,我个人比较喜欢int.TryParse的,因为我经常不关心为什么解析失败,如果失败.但是,int.Parse可以(根据文档)抛出三个不同的例外:
如果你关心它失败的原因,那么int.Parse显然是更好的选择.
一如既往,背景是王道.
Eri*_*ert 39
对于有时失败的转换是否异常,或者转换有时会失败是否预期和正常?如果是前者,请使用例外.如果是后者,请避免例外.出于某种原因,例外被称为"例外"; 你应该只用它们来处理特殊情况.
gre*_*g84 20
如果确实预期转换有时会失败,我喜欢int.TryParse在条件(Ternary)运算符的一行上使用和整齐地使用,如下所示:
int myInt = int.TryParse(myString, out myInt) ? myInt : 0;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果TryParse方法失败,则零将用作默认值.
对于可空类型也非常有用,null如果转换失败,它将覆盖任何默认值.
| 归档时间: |
|
| 查看次数: |
37962 次 |
| 最近记录: |