也许这个问题之前已经得到了回答,但是这个词if经常出现,很难找到它.
这个例子没有意义(表达式总是正确的),但它说明了我的问题.
为什么此代码有效:
StringBuilder sb;
if ((sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码不是:
if ((StringBuilder sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
Run Code Online (Sandbox Code Playgroud)
我发现了一个关于while声明的类似问题.那里接受的答案说,在一个while声明中,它意味着变量将在每个循环中定义.但是对于我的if陈述例子,情况并非如此.
那么我们不允许这样做的原因是什么?