![](/img/trans.png)
[英]MissingMethodException when calling to a class library from third-party application
[英]Where to put the equality function for a class in a third party library?
我正在使用第三方庫,其中包含缺少operator ==()和Equals()的類。 我想自己實現一個,但我不確定如何命名以及放在哪里。 我試圖將兩個運算符添加為擴展方法,但都失敗了。 我現在寫了一個IsEqualTo()函數,但它導致相當混亂的客戶端代碼。 有誰知道更優雅的解決方案?
是繼承或包裝第三方課程的選擇嗎?
您將無法重載==
運算符,但您可以創建可用於字典等的IEqualityComparer<T>
。
雖然您可以編寫Equals
擴展方法,但它永遠不會被使用,因為Object
上的虛方法總是適用,如果有適用的實例方法,編譯器即使有更具體的方法也不會查找擴展方法。
您可能希望將IsEqualTo
方法重命名為ValueEquals
或類似的東西......但我同意它仍然不理想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.