最近,我遇到了以下几行:
StringBuilder sb = default(StringBuilder);
sb = new StringBuilder();
我会简单地写这样的语句
StringBuilder sb = new StringBuilder();
使用 default(StringBuilder) 语句有什么好处?
基于所有很好的反馈,我提出了一个新问题。
编辑: 你能看出这样做的好处或坏处吗? (它编译)
var sb = default(StringBuilder);
再次提到我相信我们正在研究是否存在范围问题,但最大的问题可能是对象未正确初始化。你有什么想法?
最佳答案
一般来说,没什么。没有理由初始化变量,然后在下一行代码中设置它。你的第二个陈述更清晰。
拆分声明和赋值的理由很少。这通常仅在涉及范围问题时才需要,例如尝试在赋值周围使用异常处理:
StringBuilder sb = null;
try
{
// Using a statement that may throw
sb = GetAStringBuilder();
}
catch
{
//...
}
// The compiler will warn about a potentially
// uninitalized variable here without the default assignment
if (sb != null)
{
//...
在这种情况下,您需要将两者分开,因为您在本地范围内进行分配(try
)。
如果不是这种情况,那么最好将它们放在一起。
关于c# - 使用以下语句有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11960202/