0

私はプロジェクトに取り組んでいますが、次の基本クラスを継承する方法がわかりません

public abstract class BusinessBase<TYPE, KEY> : IDisposable
    where TYPE : BusinessBase<TYPE, KEY>, new()

私は次のように動作すると思っていましたが、コンパイルエラーが発生しました

public class Buisness{
    Business(){}
}

public class BusinessModel : BusinessBase<Business,int>
{

}

IDisposable は、他の任意のインターフェイスである可能性があります。

4

1 に答える 1

1
public class BusinessModel : BusinessBase<Business,int>

BusinessBase.TYPEですBuisness。の仕様では実装がBusinessBase必要ですが、クラスの実装は示されていません。TYPEBusinessBase<>Buinesss

以下のような意図があるようです。

public class BusinessModel : BusinessBase<BusinessModel,int>

であるという要件を満たしTYPEますBusinessBase

また、上記の定義が与えられた場合、以下も機能することに注意してください。

public class OtherModel : BusinessBase<BusinessModel, int>

ところで、これが役立つ場所についてIEquatable<T>は、通常、それを実装しているクラスと同じ型に対して実装されています。たとえばFoo : IEquatable<Foo>。ただし、ソースコードを見BusinessBaseないと、なぜ彼らがそれを必要としているかはわかりません。

于 2013-04-10T21:43:11.717 に答える