最佳答案
也许这个问题以前就有人回答过,但是 if
这个词出现得太频繁了,以至于很难找到它。
这个例子没有意义(表达式总是正确的) ,但它说明了我的问题。
为什么这个代码有效:
StringBuilder sb;
if ((sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
但这个代码不是:
if ((StringBuilder sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
我发现了一个关于 while
声明的类似问题。公认的答案是,在 while
语句中,这意味着变量将在每个循环中定义。但对于我的 if
语句示例,情况并非如此。
那为什么我们不能这么做呢?