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,请避免在该方法中使用此名称。要了解您应该遵循的最佳实践,请阅读《框架设计指南》一书,或学习分析工具,如宪兵,