2013-04-09 27 views
0

是否有任何方式實現泛型類的IEqualityComparer?c#實現通用類T的IEqualityComparer <T>

我想:

public class MyComparer : IEqualityComparer<MyGenericClass> 

這是不對的,因爲MyGenericClass接受3個參數爲仿製藥,所以下一個

public class MyComparer : IEqualityComparer<MyGenericClass<A, B, C>> 

這是不對的,因爲我不知道A型,公元前。等

public class MyComparer<MyGenericClass<A, B, C>> : IEqualityComparer<MyGenericClass<A, B, C>> 

是錯誤的。有沒有一種方法來實現這一點?由於

回答

6

你靠近

public class MyComparer<A, B, C> : IEqualityComparer<MyGenericClass<A, B, C>> 

側面說明,請不要事物命名A,B和C並不能幫助任何人。標準命名約定是T<SomethingDescriptive>。在EF的情況下,它可能是TEntity,在MVC或MVVM中,它可能是TModelTViewModel

+2

訣竅是要實際上實現這樣的事情...... – 2013-04-09 17:09:06

+0

好吧,我保證我永遠不會再將事物命名爲A,B,C。順便說一句,謝謝,我會永遠也找不出:) – 2013-04-09 17:14:12

+1

也可能是件好事注意類型約束這些以確保你逝去你想要什麼: 公共類MyComparer :的IEqualityComparer > 其中A:SomeInterface 其中B:SomeOtherInterface 其中C:AThirdInterface 這些可以是接口,基類或只是新的{}/Class。對於智能感知和無需演員訪問屬性非常有幫助。 – DSlagle 2013-04-09 17:16:01

相關問題