int.TryParse()在if(...)中直接或带有变量error

时间:2015-04-08 17:11:32

标签: c# if-statement int boolean unassigned-variable

我对这段代码非常感兴趣,为什么第一个版本有效,但第二个版本说错误:

int value1;
if (textBox.IsEnabled && int.TryParse(textBox.Text, out value1)) MyInt = value1; // OK

int value2;
bool success2 = int.TryParse(textBox.Text, out value2) && textBox.IsEnabled;
if (success2) MyInt = value2; // OK, but need to check IsEnabled first

int value3;
bool success3 = textBox.IsEnabled && int.TryParse(textBox.Text, out value3);
if (success3) MyInt = value3; // Use of unassigned local variable 'value'

1 个答案:

答案 0 :(得分:2)

您的TryParse个来电都将value1作为out参数传递,这意味着永远不会初始化value2