2014-09-25 54 views
0

我有幾個實現IMyInterface的類。該接口包含一個名爲Delete的方法,所以所有的類都定義了它們自己的Delete方法。用於幾個通用類的常用方法

我也有很多我的代碼點在那裏我打電話MyClass1.Delete(myClass1Id)或MyClass2.Delete(myClass2Id)的等

我試圖定義一個通用的,常用的方法它爲Id提供了一個通用的類參數和字符串。

我猜它會是這個樣子,但我不能找到以這種方式使用泛型類的任何相關文件:

public static void DeleteGeneric<TMyClass>(string myId) 
{ 
    //call the relevant Delete method for the TMyClass class 
} 
+1

我不清楚你想做什麼。你能給出一個你想要改進的代碼的更完整的例子嗎? – Blorgbeard 2014-09-25 20:02:29

回答

3

沒有必要在這裏所有使用泛型;剛剛接受接口的實例:

public static void DeleteGeneric(IMyInterface deletable, string myId) 
{ 
    deletable.Delete(myId); 
} 
+1

你忘了刪除類型參數 – Blorgbeard 2014-09-25 20:05:39

+2

@Blorgbeard固定。 – Servy 2014-09-25 20:07:00

1

我想你想這樣的代碼:

public static void DeleteGeneric<TMyClass>(TMyClass myId) where TMyClass : IMyInterface 
{ 
    myId.Delete(); 
} 

,指出TMyClass必須實現IMyInterface的接口和傳遞的參數是什麼類型TMyClass是。

它可能沒有泛型是簡單

public static void DeleteGeneric(IMyInterface myId) 
{ 
    myId.Delete(); 
} 

聲明,我輸入這個代碼到瀏覽器所以有可能的語法錯誤。