实现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();
}
不,当使用 C# 6 及更高版本时,没有理由。
第二段代码是第一段代码的语法糖,所以除了源代码看起来不同之外,它们是相同的。
如果您发现文章指出最佳实践是第一个代码,则它们可能是在 C# 6 和 null 条件运算符出现之前编写的。