也许这个问题以前已经回答过,但是这个词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
声明示例,事实并非如此。
那么我们不被允许这样做的原因是什么?
Try C#7 的模式匹配 https://blogs.msdn.microsoft.com/dotnet/2017/03/09/new-features-in-c-7-0/.
使用你的例子:
if (new StringBuilder("test") is var sb && sb != null) {
Console.WriteLine(sb);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)