使用C++,我可以編寫如下代碼。在C#中傳遞具有相同類名字段變量的參數
class Terminal {
int uid;
public:
void SetUid(int uid) {self.uid = uid;}
};
我試過類似的東西在C#中,但我得到一個錯誤。我嘗試了以下,但它看起來很醜。
class Terminal {
int uid;
public void SetUid(int uid_) {uid = uid_;}
}
當你想傳遞一個在C#中具有相同類名字段變量的參數時,你使用了什麼?
與屬性相比,getter/setter方法有一個優點;他們可以用作委託參考。是的,你可以將這個屬性包裝成一個看起來像一個setter的lambda表達式,但是當你基本上創建一個不增加值的方法時,它也開始聞起來了。 – KeithS 2010-12-15 21:23:06
@KeithS:你實際上可以直接創建一個委託給純IL中的getter/setter。在C#中,你可以使用反射來實現這一點,如果你重用委託,這並不算太壞:'''''''''''''''''''''''''''''''''''' UID「)。GetGetMethod());' – cdhowie 2010-12-15 21:54:21
...我想我寧願有lambda,實際上。所有這些,與()=> Uid。即使它爲調用堆棧添加了額外的層,但我認爲它實際上會更高效,並且當然更易於閱讀。 – KeithS 2010-12-15 22:22:22