c#实施IEqualityComparer<;T>;对于泛型类T
有没有办法为泛型类实现IEqualityComparer 我试过:c#实施IEqualityComparer<;T>;对于泛型类T,c#,generics,iequalitycomparer,C#,Generics,Iequalitycomparer,有没有办法为泛型类实现IEqualityComparer 我试过: public class MyComparer : IEqualityComparer<MyGenericClass> 公共类MyComparer:IEqualityComparer 这是错误的,因为MyGenericClass将3个参数作为泛型,所以下一个 public class MyComparer : IEqualityComparer<MyGenericClass<A, B, C>&g
public class MyComparer : IEqualityComparer<MyGenericClass>
公共类MyComparer:IEqualityComparer
这是错误的,因为MyGenericClass将3个参数作为泛型,所以下一个
public class MyComparer : IEqualityComparer<MyGenericClass<A, B, C>>
公共类MyComparer:IEqualityComparer
这是错误的,因为我不知道A型,B型,C型等等
public class MyComparer<MyGenericClass<A, B, C>> : IEqualityComparer<MyGenericClass<A, B, C>>
公共类MyComparer:IEqualityComparer
这是错误的。有没有办法实现这一点?谢谢你很接近了
public class MyComparer<A, B, C> : IEqualityComparer<MyGenericClass<A, B, C>>
公共类MyComparer:IEqualityComparer
旁注,请不要将事物命名为A、B和C。这对任何人都没有帮助。标准命名约定是T
。在EF的情况下,它可能是TEntity
,在MVC或MVVM中,它可能是TModel
或TViewModel
,您很接近了
public class MyComparer<A, B, C> : IEqualityComparer<MyGenericClass<A, B, C>>
公共类MyComparer:IEqualityComparer
旁注,请不要将事物命名为A、B和C。这对任何人都没有帮助。标准命名约定是
T
。在EF的情况下,它可能是TEntity
,在MVC或MVVM中,它可能是TModel
或TViewModel
好的,我保证我再也不会将事物命名为A、B、C。顺便说一句,谢谢,我永远也不会明白:)最好注意这些的类型约束,以确保您在中传递所需的内容:公共类MyComparer:IEqualityComparer其中A:SomeInterface其中B:SomeOtherInterface其中C:AtherInterface这些可以是接口、基类,或者只是新的{}/class。非常有助于intellisense和无需强制转换即可访问属性。好的,我保证我再也不会将事物命名为a、B、C。顺便说一句,谢谢,我永远也不会明白:)最好注意这些的类型约束,以确保您在中传递所需的内容:公共类MyComparer:IEqualityComparer其中A:SomeInterface其中B:SomeOtherInterface其中C:AtherInterface这些可以是接口、基类,或者只是新的{}/class。非常有助于intellisense和无需强制转换即可访问属性。