C#语法 - 带索引器的类名?

时间:2013-01-13 15:56:11

标签: c#

这可能是一个愚蠢的问题,但这里有。我在我的程序中有这样的陈述:

 // No node should be shown as selected
 mdxTreeList.Selection.Set(new TreeListNode[0]);

变量mdxTreeList是DevExpress XtraTreeList.TreeList控件的一个实例,TreeListNode是另一个DevExpress类的名称。但是“new TreeListNode [0]”的语法究竟是什么意思呢?我原以为这是一个语法错误,但它工作正常。 (如果我没记错的话,这句话最初来自DevExpress示例程序。)

2 个答案:

答案 0 :(得分:4)

这只是一个类型为TreeListNode[]且数组为零的数组。

答案 1 :(得分:4)

它是一个零长度的一维数组(即零成员)。类型为TreeListNode[]

有些人喜欢写与new TreeListNode[] { }相同的东西,但这仅仅是品味问题。

顺便说一句,自static indexers are not allowed in C#以来,这不可能成为索引器访问。 (当然,索​​引器意味着“看起来像”数组,所以两者都使用方括号[]语法并非偶然。)