Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#实施IEqualityComparer<;T>;对于泛型类T_C#_Generics_Iequalitycomparer - Fatal编程技术网

c#实施IEqualityComparer<;T>;对于泛型类T

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

有没有办法为泛型类实现IEqualityComparer

我试过:

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和无需强制转换即可访问属性。