2008-11-25 2 views
8

Я видел эту подпись на классе ListView:В чем смысл «.. ::.» в C#?

public ListView..::.ListViewItemCollection Items { get; } 

Когда я увидел, что, "Что ?!"

Я искал "dot dot colon colon dot" и ".. ::." на Google без результата.

alt text

+0

WoW, который был гением? – 2008-11-25 06:52:27

+0

Скомпилирует? Оператор :: - оператор псевдонима пространства имен, но точки? Я понятия не имею ... – 2008-11-25 07:07:43

ответ

13

Это не C#; это JScript. В C# это будет:

public ListView.ListViewItemCollection Items {get; }

Это немного отличается, потому что ListViewItemCollection является внутренним классом ListView.

Я предполагаю, что вы видели это, глядя на ListView.Items Property (System.Windows.Forms).

Если вы посмотрите на список всех других языков, все они перечислены в синтаксисе JScript. Вы нашли ошибку в документации.

-4

ListViewItemCollection вложенная тип ListView, который означает, что в коде, класс коллекции определяется внутри определения ListView, например, так:

public class ListView { 
    public ListViewItemCollection Items {get;} 

    public class ListViewItemCollection : IList { 
    // more code here 
    } 
} 

Я предположил бы, что он кодируется таким образом, только чтобы сохранить исходное дерево немного чище. Таким образом, все классы вспомогательной коллекции, связанные с элементом управления ListView, не разбросаны по всему каталогу. Внутренние классы имеют несколько особых характеристик, но ничто из того, что я могу себе представить, не применимо здесь.

Смежные вопросы