我对这段代码非常感兴趣,为什么第一个版本有效,但第二个版本说错误:
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'
答案 0 :(得分:2)
您的TryParse
个来电都将value1
作为out
参数传递,这意味着永远不会初始化value2
。