[英]C# - How to assign the generic type in a property or variable
我有兩個不同的包,例如WebBundle和MobileBundle,並且我有一個單例泛型類,該類具有任何包的類型(在下面添加了通用單例代碼)。
public class GenericSingleton<T> where T : class, new()
{
private static readonly object padlock = new object();
private GenericSingleton() { }
private static T instance = null;
public static T Instance {
get
{
lock (padlock)
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
}
當我執行以下行時,
var web = GenericSingleton<WebBundle>.Instance;
我在web變量中獲取了webbundle類的實例,而intellisense為我提供了WebBundle中的所有可用方法。
現在,我的要求是將此var web方法變量分配給類級別的屬性或變量,並且對於任何種類的捆綁包而言,它應該是動態的。
請幫助解決此問題
您需要提取這些對象共享的公共接口或抽象類(或普通類,只是一些公共部分)。 它們具有對應的名稱,表明它們相似。 也許它們具有相同或相似的公共方法(也許不是全部,但是有些),公共財產或事件。 您需要重構代碼以將那些常見的東西提取到一個實體中,並讓T在泛型類中實現它:
public class GenericSingleton<T> where T : ICommonInterface
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.