3

オブジェクトのリストを含むインターフェイス クラスを実装しようとしています。実装クラスがリストのタイプを定義するように、リストを汎用的にするにはどうすればよいですか。

public interface IEntity
{
    Guid EntityID { get; set; }
    Guid ParentEntityID{ get; set; }
    Guid RoleId { get; set; }

    void SetFromEntity();
    void Save();
    bool Validate();
    IQueryable<T> GetAll(); // That is what I would like to do
    List<Guid> Search(string searchQuery);
}
public class Dealer : IEntity
{
   public IQueryable<Dealer> GetAll() { }
}
4

3 に答える 3

12

次のようなことができます。

public interface IEntity<T>
{
    IQueryable<T> GetAll();
}

public class Dealer : IEntity<Dealer>
{
   public IQueryable<Dealer> GetAll() { }
}
于 2009-03-24T06:05:18.490 に答える
3

IEntity 自体をジェネリックにするだけです。次に、GetAll() の定義で type パラメーターを使用します。

コードを変更する方法は次のとおりです。

public interface IEntity<TListItemType>
{
     // stuff snipped

     IQueryable<TListItemType> GetAll();
}

public class Dealer : IEntity<Dealer>
{
   public IQueryable<Dealer> GetAll() { // some impl here }
}
于 2009-03-24T06:05:01.657 に答える