实现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();
}
答案 0 :(得分:2)
否,使用C#6及更高版本时,没有理由。
第二段代码是第一个代码的语法糖,因此除了 source 看起来不同之外,它们是相同的。
如果您发现有文章指出最佳实践是第一个代码,那么它们可能是在C#6和空条件运算符出现之前编写的。