我看到以下语法:
var comparer = Comparer<TItem>.Default;
这种语法如何运作?
我原以为Comparer
必须是新手
答案 0 :(得分:5)
Default
是一个静态属性,因此可以在没有Comparer<T>
实例的情况下进行访问。
无法通过实例引用静态成员。相反,它通过类型名称引用。
Comparer<TItem>
是此处的类型名称。
答案 1 :(得分:1)
不必明确地新建Comparer的技巧是Default是一个属性,并且允许属性具有代码。这也适用于静态属性:
'\\['
这相当于使用字段/属性语法访问的无参数工厂方法。