例如,我现在创建了一个这个小类:
public static class FileSystemInfoComparers<T> where T : FileSystemInfo
{
public static IEqualityComparer<T> FullName
{
get { return new FullNameComparer(); }
}
private class FullNameComparer : IEqualityComparer<T>
{
public bool Equals(T x, T y) { return x.FullName == y.FullName; }
public int GetHashCode(T obj) { return obj.FullName.GetHashCode(); }
}
}
Run Code Online (Sandbox Code Playgroud)
如果我能这样做,我想要它
var comparer = FileSystemInfoComparers.FullName;
Run Code Online (Sandbox Code Playgroud)
并且有一个实例IEqualityComparer<FileSystemInfo>
,因为我没有指定任何类型和FileSystemInfo是最通用的类型T可以.没有类型约束,默认类型可以是例如对象或其他东西.
也许不是最好的例子,但无论如何只是在这里好奇:p
Jon*_*eet 10
听起来像是给我带来麻烦的食谱.
特别是,您可以轻松地创建一个FileSystemInfoComparers
使用相同名称的静态属性调用的非泛型类,突然您的代码意味着完全不同的东西.
我宁愿保持简单.(泛型已经很复杂了,特别是类型推断非常多毛.)
归档时间: |
|
查看次数: |
196 次 |
最近记录: |