簡體   English   中英

C#:我可以編寫公共類MyGenericClass嗎 <T> 在哪里T:MyClass並實現一個接口?

[英]C#: Can I code public class MyGenericClass<T> where T:MyClass AND implement an Interface?

我看到這個:

public class MyGenericClass<T> where T:IComparable { }

我有這個:

public class ProductRepository : IRepository<Product> { }

您將如何編寫這樣的代碼?

public class ProductRepository<T> where T : Product : IRepository<Product> {}

畢竟,我認為我可以簡單地創建一個Repository類,然后將類型(包括數據上下文)注入其中。 但是,我們首先追求最簡單的東西吧? 大聲笑

更新:

如果這樣做,我將如何選擇在實體容器(或上下文)中使用哪個實體? (從底部開始的第三行以return _dc.Versions。開頭,這將以某種方式需要切換以返回_dc.T。。)

public class Repository<T> : IRepository<T> where T : class
{   
    # region Constructor
    private AdSketchEntities _dc { get; set; } // Data Container (Data Context)
    public Repository() : this(new AdSketchEntities()) { }
    public Repository(AdSketchEntities myDC)
    {   this._dc = myDC; 
    }
    # endregion

    public T Add(T entity)
    {
        _dc.Versions.AddObject(entity);
        return _dc.Versions.Where(n => n.custid == entity.custid &&
                       n.versionid == entity.versionid).SingleOrDefault();
    }

您可以指定多個約束,如下所示:

public class ProductRepository<T>
    where T : Product, IRepository<Product>
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM