这个比较器C#语法是如何工作的?
我看到以下语法:这个比较器C#语法是如何工作的?,c#,.net,generics,c#-4.0,C#,.net,Generics,C# 4.0,我看到以下语法: var comparer = Comparer<TItem>.Default; var comparer=comparer.Default; 这个语法是如何工作的 我原以为比较器必须是新的默认值是一个静态属性,因此可以在没有比较器实例的情况下进行访问 无法通过实例引用静态成员。相反,它是通过类型名引用的 比较器在这里是一个类型名称。不必显式新建比较器的诀窍是默认值是一个属性,并且允许属性包含代码。这也适用于静态特性: static Comparer<T&g
var comparer = Comparer<TItem>.Default;
var comparer=comparer.Default;
这个语法是如何工作的
我原以为
比较器
必须是新的默认值
是一个静态属性,因此可以在没有比较器
实例的情况下进行访问
无法通过实例引用静态成员。相反,它是通过类型名引用的
比较器
在这里是一个类型名称。不必显式新建比较器的诀窍是默认值是一个属性,并且允许属性包含代码。这也适用于静态特性:
static Comparer<T> Default {
get {
...
return new ClassExtendingComparer<T>();
}
}
静态比较器默认值{
得到{
...
返回新的ClassExtendingComparer();
}
}
这相当于一个使用字段/属性语法访问的无参数工厂方法。您所说的确切语法是什么?你的意思是泛型?@shiva-Related-因此它是一个泛型访问器属性,它在引擎盖下调用一个方法,而不是静态数据字段。这意味着该属性可以使用指定的类型动态查找默认比较器?它是一个属性,而不是字段,因此可以执行代码。