0

在 C# 中查看某些库中的代码时(使用 Resharper 进行反编译),我有时会遇到如下所示的清理代码:

public class Something
{
    private SomeObject _someObject;

    ...

    public void Dispose()
    {
        _someObject = (SomeObject) null;
    }
}

null强制转换为此处正在清除的字段类型有什么好处?

4

1 回答 1

3

反编译器无法区分null没有强制转换和有强制转换的赋值,因为它们做同样的事情并编译​​成相同的 IL。由于null有时确实需要强制转换,例如在调用重载方法时,为了简单起见,某些反编译器可能总是包含强制转换。

这里没有任何好处,我强烈怀疑原始代码不包括演员表。

于 2015-08-05T16:50:48.143 回答