Пространства имен
Компилятор настраивает "пространства имен" для различения идентификаторами, используемыми для различных типов элементов.Имена внутри каждой пространство имен должно быть уникальным во избежание конфликта, но идентичное имя может появляться в нескольких пространства имен.Это означает, что можно использовать один и тот же идентификатор для нескольких различных элементов, при условии, что элементы в пробелах имени.Компилятор может разрешить ссылки на основе синтактном контексте идентификатора в программе.
![]() |
---|
Не путайте ограниченную понятие c# пространства имен с функцией "пространства имен" C++.См. Пространства имен в C#Справочник по языку C++ для получения дополнительных сведений. |
Этот список содержит пространства имен, используемые в c#.
Метки выписки
Именованных меток выписки часть выписок.Определения маркеров выписки всегда, за которым следует двоеточие, но не входит case метки.Использование меток выписки всегда следует сразу за ключевым словом goto.Метки выписки не должны быть определены из других имен или из имен меток в другие функции.Структура, объединение и теги перечисления
Эти теги является частью структуры, объединения и описатели типа перечисления и, если он имеется, всегда следуют непосредственно за зарезервироваными слов struct" unionили enum.Имена тегов должны быть определены от всех остальных структуры, перечисления или теги соединения с одинаковой областью видимости.Члены структур или соединений
Имена выбранные в пробелах имени, связанных с каждым типом структуры и объединения.Иными словами, такой же идентификатор компонента может быть именем в любом количестве структур или соединений одновременно.Определения имен всегда компонентов встречаются внутри описатели типа структуры или объединения.Использует компонентов имен всегда следуют непосредственно за операторами участник-выделения (- > и .).Имя члена должно быть уникальным в пределах структура или объединение, но оно не должно отличаться от других имен в программе, включая имена членов различных структур и соединений или имя самого структуры.Обычные идентификаторы
Все другие имена произошедших за место имени, которая включает переменные, функции (включая формальные параметры и локальные переменные) и константы перечисления.Имена идентификаторов вложенные видимость, поэтому можно переопределить их в блоках.Имена Typedef
Имена Typedef не может использоваться в качестве идентификаторов в той же области.
Например, поскольку теги структуры, члены структуры, и имена переменных в пробелах, 3 3 различных имя именованного элемента student в этом примере не противоречьте.Контекст каждого элемента позволяет интерпретация каждого вхождения правильное student в программе.(Дополнительные сведения о структурах см. Объявление структуры.)
struct student {
char student[20];
int class;
int id;
} student;
После student появляется после struct ключевое слово, компилятор распознает ее в качестве тега структуры.После student появляется после оператора (участник-выделения- > OR .), то имя ссылается на член структуры.в других контекстах, student относится к переменной структуры.Однако не рекомендуется перегружать пространство имени тега с момента его затемняет значение.