Каково значение "..::." в C #? - PullRequest
8 голосов
/ 25 ноября 2008

Я видел эту подпись в классе ListView:

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

Когда я увидел это, «Что ?!»

Я искал "точка точка двоеточие двоеточие" и ".. ::." в Google безрезультатно.

alt text

Ответы [ 2 ]

13 голосов
/ 25 ноября 2008

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

public ListView.ListViewItemCollection Items {get; }

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

Полагаю, вы видели это, глядя на свойство ListView.Items (System.Windows.Forms) .

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

0 голосов
/ 25 ноября 2008

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

public class ListView {
  public ListViewItemCollection Items {get;}

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

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

...