Я видел двойные двоеточия (::
) в сгенерированном коде. Мне было интересно, какова его цель?
Какова цель:: в С#?
Ответ 1
Это оператор описания псевдонима пространства имен. Цитирование со страницы, связанной с MSDN:
Определяющий идентификатор псевдонима (
::
) используется для определения идентификаторов. Он всегда расположен между двумя идентификаторами, как в этом примере:global::System.Console.WriteLine("Hello World");
Ответ 2
Это спецификатор псевдонимов псевдонимов. Он используется, когда есть потенциал для двух разных типов с тем же именем и тем же пространством имен (исходящих из разных сборок). Например. наш продукт ORM рассказывает о VistaDB 3 и VistaDB 4. В обоих случаях класс подключения - VistaDB.Provider.VistaDBConnection. Итак, мы extern alias
сборку VistaDB 3 с vdb3
и сборку VistaDB 4 на vdb4
и теперь можем устранить классы подключения как vdb3::VistaDB.Provider.VistaDBConnection
и vdb4::VistaDB.Provider.VistaDBConnection
. Без квалификатора псевдонима они могут вызвать ошибки компилятора "двусмысленной ссылки".
Ответ 3
Это оператор разрешения области:
http://en.wikipedia.org/wiki/Scope_resolution_operator
Оператор разрешения области (::) в С++ используется для определения уже объявленные функции-члены (в файл заголовка с .hpp или .h расширение) класса