簡體   English   中英

將通用類型用作通用參數的最優雅方法是什么?

[英]What is the most elegant way to use generic type as generic parameter?

我想知道是否有比本示例更優雅的方法將泛型用作泛型參數:

public class Wrapper<TObject>
    where TObject : MyBaseClass
{
}

public class WrapperCollection<TWrapper, TObject> : Collection<TWrapper>
    where TWrapper : Wrapper<TObject>
    where TObject : MyBaseClass
{
}

實際上,如果我想初始化WrapperCollection的實例,我會這樣做:

WrapperCollection<Wrapper<MyClass>, MyClass> collection = 
            new WrapperCollection<Wrapper<MyClass>, MyClass>();

而且,由於我對此並不感到滿意,因此能夠像這樣初始化它是一件很優雅的事情:

WrapperCollection<Wrapper<MyClass>> collection = 
            new WrapperCollection<Wrapper<MyClass>>();

所以我的問題很簡單:有沒有辦法做到這一點,或者可以為CollectionWrapper使用更優雅的設計?

謝謝。

如果WrapperCollection<T> 始終包含Wrapper<T>的集合,則可以執行以下操作:

public class WrapperCollection<TObject> : Collection<Wrapper<TObject>>
    where TObject : MyBaseClass
{
}

...

WrapperCollection<MyClass> collection = new WrapperCollection<MyClass>();

暫無
暫無

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

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