顯而易見的事實是,Func<>
和Action<>
是好主意。它們讓你的代碼更容易閱讀,並且避免了大量雜亂的樣板代表聲明。 這就是爲什麼你要使用他們。
所以你有這個真正有吸引力的編程風格你想使用,這是一種標準的技術,現在幾乎普遍使用,而不是舊的方式,但你不能使用它,因爲你的目標是舊版本的框架。你該怎麼辦?
你有三種選擇:
- 使用的編程風格,這是常用的功能之前
- 添加的功能,你自己的代碼中精神,但與非衝突名稱
- 添加功能添加到您自己的代碼中,並使用「真實」名稱,但是位於您自己的名稱空間中
使用舊的編程風格放棄了我們從該專長中欣賞到的所有優點URE。這是一個很大的犧牲。但是也許你所有的合作開發者都習慣了這種編程風格。
使用非衝突名稱的功能似乎足夠明智。人們將能夠閱讀代碼並從這些功能中受益,但是沒有人會對他們看起來不是那種東西感到困惑。當您終於準備升級時,您必須修補名稱。幸運的是Ctrl + R,Ctrl + R使得這樣做非常容易。
使用與標準功能具有相同名稱的功能意味着您的代碼可以定位舊版本,但似乎使用了更新的功能。看起來像雙贏。但是這可能會導致混淆,你必須小心,你的類型不會暴露給其他未知的程序集,可能會導致源代碼級別的編譯問題。所以你必須小心並且要清楚發生的事情。但它可以有效地工作。
您必須根據自己的需要選擇適合自己情況的方法。對每個人都沒有正確的答案,只有權衡。
如果您正在構建以.NET 2.0爲目標的庫,請嘗試在可能的情況下使用框架中的現有委託。否則,在任何情況下都可以命名它們,或者創建「通用」代表來鏡像.NET 3.0及更高版本中的代表。那隻會導致混亂。由於兼容代理可以相互轉換,因此兼容性層不再需要。 –