我从MSDN看到了以下代码:
using System;
public sealed class Foo : IDisposable
{
private readonly IDisposable _bar;
public Foo()
{
_bar = new Bar();
}
public void Dispose()
{
_bar?.Dispose();
}
}
我不明白为什么它需要使用_bar?.Dispose();
而不是_bar.Dispose();
?
_bar
已经readonly
在构造函数中声明并初始化了,所以_bar
不会为null,也不能重新赋值给null
,那为什么还要对null做检查_bar
呢?