在我的程序中創建其他類可以訂閱的簡單事件的時間很多,而不是通過委託創建委託和創建事件我只是使用Action或Func創建事件以避免創建委託。使用Action和Func來代替製作相應的代表是否是不好的做法?
這樣做有什麼缺點嗎?
在我的程序中創建其他類可以訂閱的簡單事件的時間很多,而不是通過委託創建委託和創建事件我只是使用Action或Func創建事件以避免創建委託。使用Action和Func來代替製作相應的代表是否是不好的做法?
這樣做有什麼缺點嗎?
不是真的,唯一的缺點是我能想到的是,如果你有一個邏輯意圖(超出了期望的參數和返回值),你希望用戶滿意,可能會失去使用泛型代表。
例如:
public delegate void ClearAllValuesDelegate(MyClass X);
// ...
ClearAllValuesDelegate myDelegate;
VS:
Action<MyClass> myDelegate;
在前者中,很明顯的意圖是,動作要清除所有的值在參考(雖然沒有辦法強制執行這當然)。而Action<>
只是告訴你需要什麼,而不是其他。就像我說的,這只是一個邏輯上的區別。
但是真的沒有我知道的很大的缺點。大多數情況下,當我們使用Func<>
和Action<>
時,我們只是要求調用者給我們一個只滿足輸入/輸出的目標。
的主要區別我之間的區別在於:
和:
顯然,至少有在其指定的參數一些值。
恕我直言,這是一個偏好問題,對CLR它是一樣的東西
它仍然可讀?這就是你的動機。 – Marc