c# - 使用以下语句有什么好处?

标签 c# default

最近,我遇到了以下几行:

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/

相关文章:

c# - 解析文本并保存在内存中c#

visual-studio-2010 - Visual Studio - 如何将默认构建配置更改为发布?

android - 平板电脑的默认安卓应用程序

c# - 配置静态分析以检测不安全的 MVC 路由

c# - 序列化 C# 对象并保留属性名称

c# - 如何使用 LINQ-to-Entity 按包含的对象进行查询

c# - 获取 CheckboxGridPanel 选定的行值,ext.net C#?

sql - 需要添加约束 : date plus 10 days

c++ - 具有默认类型和值的模板参数

php - WooCommerce:在未登录用户的结帐页面中默认设置国家/地区