Int32.TryParse(String, Int32) 失败时是否会更改 int 参数?

发布于 2024-09-29 15:34:51 字数 288 浏览 7 评论 0原文

出于兴趣,可以安全地假设如果 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清音悠歌 2024-10-06 15:34:51

文档有答案:

如果转换成功,则包含与 s 中包含的数字等效的 32 位有符号整数值;如果转换失败,则包含零。

The documentation has the answer:

contains the 32-bit signed integer value equivalent to the number contained in s, if the conversion succeeded, or zero if the conversion failed.

妖妓 2024-10-06 15:34:51

TryParse 会将其设置为 0

由于它是一个 out 参数,因此即使失败,它也不可能在不设置值的情况下返回。

TryParse will set it to 0.

Since it's an out parameter, it wouldn't be possible for it to return without setting the value, even on failure.

萌面超妹 2024-10-06 15:34:51

TryParse 在执行其他操作之前将结果设置为 0。因此,您应该使用第一个示例来设置默认值。

TryParse sets the result to 0 before doing anything else. So you should use your first example to set a default value.

嘴硬脾气大 2024-10-06 15:34:51

如果失败,则返回 false 并将 type 设置为零。这将是最明智的,结果是:

int type;

if (int.TryParse(someString, out type)) 
  ; // Do something with type
else 
  ; // type is set to zero, do nothing

If it fails, it returns false and sets type to zero. This would be wisest, as a result:

int type;

if (int.TryParse(someString, out type)) 
  ; // Do something with type
else 
  ; // type is set to zero, do nothing
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文