这个比较器C#语法如何工作?

时间:2016-04-23 20:04:28

标签: c# .net generics c#-4.0

我看到以下语法:

var comparer = Comparer<TItem>.Default;

这种语法如何运作?

我原以为Comparer必须是新手

2 个答案:

答案 0 :(得分:5)

Default是一个静态属性,因此可以在没有Comparer<T>实例的情况下进行访问。

  

无法通过实例引用静态成员。相反,它通过类型名称引用。

Comparer<TItem>是此处的类型名称。

答案 1 :(得分:1)

不必明确地新建Comparer的技巧是Default是一个属性,并且允许属性具有代码。这也适用于静态属性:

'\\['

这相当于使用字段/属性语法访问的无参数工厂方法。