我在用文件助手在一个项目和班级中MultiRecordEngine
public sealed class MultiRecordEngine
: EventEngineBase<object>, IEnumerable, IDisposable
这个类实现了IDisposable
,但没有公共 Dispose 方法...
MultiRecordEngine eng = null;
eng.Dispose(); // <---- Results in compilation error
检验GitHub 上的此类代码我可以在这里看到显式实现的方法,第 913 行:
void IDisposable.Dispose()
{
Close();
GC.SuppressFinalize(this);
}
So... 为什么我无法调用该方法?这是有意的吗?如果是的话,这是一个好的做法吗?在什么情况下?
它是显式实现的,因此您需要强制转换为IDisposable
:
((IDisposable)eng).Dispose();
显式实现的成员只能通过接口访问,而不能通过实现类访问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)