0

プロジェクトとライセンスの 2 つのオブジェクトがあります。どちらもオブジェクト Entity (抽象クラス) から継承します。

これで、エンティティのリスト内の次の ID を取得するロジックを含む拡張メソッド "GetNewId" ができました。

このメソッドを拡張メソッドとして定義しましたが、問題は List (エンティティのリストでもあります) と List がこのメソッドを認識しないことです。

この問題は、同じ基本クラスから継承するオブジェクトを含むジェネリック リストで発生すると思います。

この問題の解決策はありますか?

編集:C#での作業

4

1 に答える 1

3

あなたのGetNewId()メソッドはどのクラス/インターフェースの拡張ですか?

IEnumerable<T>T が基本クラスから派生するように制限されている場合、それを拡張すると、ベース オブジェクトEntityを含むクラスのような任意のコレクションで拡張メソッドを使用できるようになります。Entity

public static GetNewId<T>(this IEnumerable<T> sequence) where T : Entity {
    // your implementation of GetNewId here
}

Castメソッド ( from System.Linq) も定義されているため(IEnumerable<T>ただし、任意の型 T では制限なし)、インスタンスで使用できlicensesます。

于 2009-12-08T12:41:27.707 に答える