实现标准的Dispose()模式

时间:2018-06-22 08:24:15

标签: c#

实现Dispose(bool disposing)的标准方法如下:

protected virtual void Dispose(bool disposing)
{
    if (disposing)
    {
        if (resource != null)
            resource.Dispose();
    }
}

使用C#6和更高版本时,有什么原因不能将其缩短到以下吗?

protected virtual void Dispose(bool disposing)
{
    if (disposing)
        resource?.Dispose();
}

1 个答案:

答案 0 :(得分:2)

否,使用C#6及更高版本时,没有理由。

第二段代码是第一个代码的语法糖,因此除了 source 看起来不同之外,它们是相同的。

如果您发现有文章指出最佳实践是第一个代码,那么它们可能是在C#6和空条件运算符出现之前编写的。