c#int.tryParse可以为空的int如何?

sd_*_*ula 1 c# asp.net int null

我有时需要将int的值设置为null,有时设置为实际值.问题是我需要将该值存储在SAME变量中而不是创建另一个变量.

int? year;
if(something)
   year = null;
else
   int.tryParse("some string", out year);
Run Code Online (Sandbox Code Playgroud)

"some string"总是一个有效的int,但问题是我不能在int上使用int.tryParse?怎么解决这个问题?

Dou*_*las 9

如果您的字符串始终是有效整数,则应该只使用该Parse方法.

year = int.Parse("some string");
Run Code Online (Sandbox Code Playgroud)

如果它不是一个有效的整数,你会得到一个FormatExceptionOverflowException(不像TryParse,只返回false).

  • @MareInfinitus选择是关于意图.使用`Parse`说"这将永远有效.如果它无效,我们就有一个bug,所以不需要处理那个案例." 而`TryParse`说"它有时可能无效,我为它添加了明确的错误处理".在大多数情况下,正确的选择是非常明显的,并且由于OP表示该值保证是有效的int,因此`Parse`显然是更好的选择. (3认同)