2013-07-20 73 views
0

我有這樣寫一個非常通用的方法

void Foo(IMyInterface obj) 
{ 

} 

的方法現在,有時這種方法我想這樣做

obj.A++; 

,有時我想這樣做

obj.B--; 

現在的問題是,我怎麼能通過這個方法來允許這種東西以通用的方式,以便不管我通過,它會被執行。所以,我正在尋找一個表達式或Func或類似的東西。

回答

3

你正在尋找一個Action<T>

static void Foo<T>(this T obj, Action<T> action) where T : IMyInterface 
{ 
    action(obj); 
} 
+0

'action'應該是一個'行動'。 – Lee

+0

@lee哎呦,修正了。 –

+1

事實上,它可能應該是通用的,因爲調用者需要參數來匹配真實類型,所以他們可以調用他們的額外方法來調用'T:IMyInterface'。否則,它可能是一個非通用的「操作」。 – Lee

相關問題