我有兩個不同的包,比如 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; } } }}當我執(zhí)行以下行時,var web = GenericSingleton<WebBundle>.Instance;我在 web 變量中獲取 webbundle 類的實例,intellisense 為我提供了 WebBundle 中的所有可用方法?,F(xiàn)在我的要求是將此var web方法變量分配給類級別的屬性或變量,并且對于任何類型的包都應該是動態(tài)的。請幫助解決這個問題
1 回答

隔江千里
TA貢獻1906條經(jīng)驗 獲得超10個贊
您需要提取這些對象共享的公共接口或抽象類(或普通類,只是一些公共部分)。它們有相應的名稱,表明它們很相似。也許它們具有相同或相似的公共方法(可能不是全部,而是一些)、公共屬性或事件。你需要重構(gòu)你的代碼,將那些常見的東西提取到一個實體中,并讓 T 在泛型類中實現(xiàn)它:
public class GenericSingleton<T> where T : ICommonInterface
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消