当从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;
}
}
投射到此处清除的字段类型有什么好处?
答案 0 :(得分:3)
反编译器无法区分在没有强制转换和转换的情况下分配null
,因为它们执行相同的操作并编译到同一个IL。由于null
有时需要进行投射,例如在调用重载方法时,为简单起见,一些反编译器可能总是包含强制转换。
这里没有任何好处,我强烈怀疑原始代码不包括演员。