为什么在清理代码中将null转换为变量?

时间:2015-08-05 16:44:59

标签: c# .net dispose resource-cleanup

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

Availability.includes(facility: [:activities]).where('activities.id = ?', s_activity).references(:facility, :activities)

public class Something { private SomeObject _someObject; ... public void Dispose() { _someObject = (SomeObject) null; } } 投射到此处清除的字段类型有什么好处?

1 个答案:

答案 0 :(得分:3)

反编译器无法区分在没有强制转换和转换的情况下分配null,因为它们执行相同的操作并编译到同一个IL。由于null有时需要进行投射,例如在调用重载方法时,为简单起见,一些反编译器可能总是包含强制转换。

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