C# 如果我有Dispose方法,我必须实现IDisposable吗?
我有一个包含C# 如果我有Dispose方法,我必须实现IDisposable吗?,c#,C#,我有一个包含Dispose方法的类。在这个方法中,我中止一个线程。是否有必要实现IDisposable接口?如果实现IDisposable接口,则可以在使用自动隐式调用Dispose方法的块时使用类对象 来自JaredPar的 在类型上实现IDisposable只有两个原因 该类型包含本机资源,当不再使用该类型时,必须释放这些资源 该类型包含IDisposable类型的字段 仅当您需要它时…(如果不需要IDisposable对象,请不要将其称为Dispose。这很混乱。因为C#是,如果您希望
Dispose
方法的类。在这个方法中,我中止一个线程。是否有必要实现IDisposable
接口?如果实现IDisposable
接口,则可以在使用自动隐式调用Dispose
方法的块时使用类对象
来自JaredPar的
在类型上实现IDisposable只有两个原因
- 该类型包含本机资源,当不再使用该类型时,必须释放这些资源
- 该类型包含IDisposable类型的字段
仅当您需要它时…(如果不需要IDisposable对象,请不要将其称为Dispose。这很混乱。因为C#是,如果您希望对象符合IDisposable,您需要实现IDisposable;方法不提供对象类型。)一般设计问题:您确定中止线程是正确的做法吗?(几乎总是这样,这不是正确的做法。)您可以改用协作线程关闭吗?正如@user2864740所提到的,如果您不打算实现IDisposable,请避免在该方法中使用此名称。要了解您应该遵循的最佳实践,请阅读《框架设计指南》一书,或学习分析工具,如宪兵,