2016-01-20 177 views
1

我有一個實現泛型的類「MyClass」。c#類屬性的泛型訪問

public class MyClass<T> 
{ 
    T _base; 

    MyClass(T child) { _base = child; } 
    void asdf() 
    { 
     _base.MasterFunction(); 
     _base.Variable = true; 
    } 
} 

我該如何實現這個類,以便我可以訪問傳遞「T」的類的成員?

MyClass mc = new MyClass<Master>(); 
mc.asdf(this); 
+0

你不需要做任何特別的事情。你忘了公開'asdf'。除非你問爲什麼你不能從同一類型的另一個實例訪問私有方法? –

+0

添加一個包含'MasterFunction()'和'Variable'的接口並確保'T'實現它。 – Lee

+0

我剛剛意識到文本提出了一個問題,但是代碼顯示了另一個不同的內容 - *你在問什麼?如何從'MyClass'內部調用T的成員?或者如何調用'asdf()'? –

回答

2

喜歡這個

public class DbException<T> where T : BaseItem 

在這種情況下 - BaseItem是你想你的泛型方法對

+0

這差不多吧。但BaseItem可以是倍數。我會怎麼做? –

+0

那麼唯一的辦法就是使用接口。其中T:ITest,IBase,IMyOtherThing – Marty

+0

如果您想知道爲什麼 - 這是因爲C#不支持類的多重繼承。只有接口的 – Marty