Int32.TryParse(String, Int32) 失败时是否会更改 int 参数?
出于兴趣,可以安全地假设如果 Int32.TryParse(String, Int32)
失败,那么 int 参数将保持不变吗?例如,如果我希望我的整数有一个默认值,哪个会更明智?
int type;
if (!int.TryParse(someString, out type))
type = 0;
或者
int type = 0;
int.TryParse(someString, out type);
Out of interest, is it safe to assume that if Int32.TryParse(String, Int32)
fails, then the int argument will remain unchanged? For example, if I want my integer to have a default value, which would be wiser?
int type;
if (!int.TryParse(someString, out type))
type = 0;
OR
int type = 0;
int.TryParse(someString, out type);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
文档有答案:
The documentation has the answer:
TryParse
会将其设置为0
。由于它是一个
out
参数,因此即使失败,它也不可能在不设置值的情况下返回。TryParse
will set it to0
.Since it's an
out
parameter, it wouldn't be possible for it to return without setting the value, even on failure.TryParse 在执行其他操作之前将结果设置为 0。因此,您应该使用第一个示例来设置默认值。
TryParse sets the result to 0 before doing anything else. So you should use your first example to set a default value.
如果失败,则返回 false 并将 type 设置为零。这将是最明智的,结果是:
If it fails, it returns false and sets type to zero. This would be wisest, as a result: