出于兴趣,可以安全地假设如果Int32.TryParse(String, Int32)
失败,那么int参数将保持不变?例如,如果我希望我的整数具有默认值,那将更明智?
int type;
if (!int.TryParse(someString, out type))
type = 0;
OR
int type = 0;
int.TryParse(someString, out type);
答案 0 :(得分:9)
documentation有答案:
包含等于s中包含的数字的32位有符号整数值(如果转换成功),或者如果转换失败则为零。
答案 1 :(得分:7)
TryParse
会将其设为0
。
由于它是out
参数,因此即使在失败时也不可能在没有设置值的情况下返回。
答案 2 :(得分:2)
TryParse在执行任何其他操作之前将结果设置为0。因此,您应该使用第一个示例来设置默认值。
答案 3 :(得分:1)
如果失败,则返回false并将type设置为零。这将是最明智的,因此:
int type;
if (int.TryParse(someString, out type))
; // Do something with type
else
; // type is set to zero, do nothing