使用擴展方法,我們可以輕鬆地將方法添加到任何類型。很顯然,這將在未來版本的.net中打開擴展方法不能再被調用的可能性(例如,類型現在包括一個與擴展方法具有相同簽名的方法)。向前兼容的擴展方法
這應該是一個問題嗎?
如果是這樣,我該如何處理這個問題並設計我的擴展方法,以儘量減少代碼更改?
使用擴展方法,我們可以輕鬆地將方法添加到任何類型。很顯然,這將在未來版本的.net中打開擴展方法不能再被調用的可能性(例如,類型現在包括一個與擴展方法具有相同簽名的方法)。向前兼容的擴展方法
這應該是一個問題嗎?
如果是這樣,我該如何處理這個問題並設計我的擴展方法,以儘量減少代碼更改?
如果框架在未來的變化如此之大,總是會有兼容性問題。如果添加一個新的框架方法與您的擴展方法具有相同的名稱,那麼它們很可能具有相同的功能,或者至少具有非常類似的功能,因此無論如何都會有重構。
我認爲擴展方法的威力太大,不能僅僅因爲這個風險而忽略。
我同意。使您的擴展方法儘可能清晰,明顯,直接。 – hatchet
恐怕你唯一能做的就是爲你的擴展方法提供足夠的名字,這樣你100%肯定你永遠不會有衝突。
不談論加入你的貓方法名的名字,只是嘗試更多的創造性:)
如果您擔心這一點,一種解決方案不會使用擴展方法。 ';)' 您可以從您正在擴展的類繼承並添加該方法。您將收到警告,說明您隱藏稍後添加的新方法。或者你可以從靜態方法中刪除'this'參數修飾符。 –