Как создать класс в c visual studio
Например, если вы хотите работать с данными сотрудника в определенном приложении.
Свойствами сотрудника будут идентификатор и имя сотрудника. Методы будут включать ввод и изменение данных о сотрудниках.
В этом уроке вы узнаете-
Что такое класс и объект?
Начнем с классов.
Как мы уже обсуждали ранее, классы представляют собой инкапсуляцию свойств данных и методов данных.
- Свойства используются для описания данных, которые будут храниться в классе.
- Методы сообщают, какие операции можно выполнять с данными.
Чтобы лучше понять класс и объекты, давайте рассмотрим приведенный ниже пример того, как должен выглядеть класс.
Название класса — «Учебник». Класс имеет следующие свойства
- Идентификатор учебника. Он будет использоваться для хранения уникального номера, который будет представлять собой учебник.
- Название учебника — будет использоваться для хранения названия учебного пособия в виде строки.
Класс также состоит из методов. В нашем классе есть следующие методы,
Ниже показано, как может выглядеть объект для нашего учебного класса. У нас есть 3 объекта, каждый со своим TutorialID и TutorialName.
Как создать класс и объект
Теперь давайте погрузимся в Visual Studio, чтобы создать наш класс. Мы собираемся использовать наше существующее консольное приложение, которое было создано в предыдущей главе. Мы создадим класс в Visual Studio для нашего текущего приложения.
Давайте выполним указанные ниже шаги, чтобы получить этот пример.
Шаг 1. Первый шаг включает в себя создание нового класса в нашем существующем приложении. Это делается с помощью Visual Studio.
- Первый шаг – щелчок правой кнопкой мыши по решению, в нашем случае – «DemoApplication». Откроется контекстное меню со списком параметров.
- В контекстном меню выберите пункт Добавить->Класс. Это даст возможность добавить класс в существующий проект.
Шаг 2. Следующим шагом является предоставление имени для класса и добавление его в наше решение.
- В диалоговом окне проекта нам сначала нужно указать имя для нашего класса. Давайте укажем имя Tutorial.cs для нашего класса. Обратите внимание, что имя файла должно заканчиваться на .cs, чтобы оно считалось правильным файлом класса.
- Когда мы нажмем кнопку «Добавить», класс будет добавлен в наше решение.
Если выполнить описанные выше шаги, вы получите следующий вывод в Visual Studio.
К решению будет добавлен класс Tutorial.cs. Если вы откроете файл, вы найдете приведенный ниже код, добавленный в файл класса.
На данный момент наш файл класса ничего не делает. В следующих темах мы более подробно рассмотрим, как работать с классом.
Поля и методы
Мы уже видели, как поля и методы определяются в классах в предыдущем разделе.
Для нашего учебного класса у нас могут быть следующие свойства.
- Идентификатор учебника. Он будет использоваться для хранения уникального номера, который будет представлять собой учебник.
- Название учебника — будет использоваться для хранения названия учебного пособия в виде строки.
Наш учебный класс также может иметь перечисленные ниже методы.
- SetTutorial — этот метод будет использоваться для установки идентификатора и имени учебника.
- GetTutorial – этот метод используется для получения подробной информации о конкретном руководстве.
Теперь посмотрим, как мы можем включить поля и методы в наш код.
Шаг 1. Первый шаг — убедиться, что в классе Tutorial определены правильные поля и методы. На этом шаге мы добавляем приведенный ниже код в файл Tutorial.cs.
- Первый шаг — добавить поля TutorialID и TutorialName в файл класса. Поскольку поле TutorialID будет числом, мы определяем его как целое число, а TutorialName — как строку.
- Далее мы определяем метод SetTutorial. Этот метод принимает 2 параметра. Таким образом, если Program.cs вызывает метод SetTutorial, ему необходимо предоставить значения для этих параметров. Эти значения будут использоваться для установки полей объекта Tutorial.
Шаг 2. Теперь давайте добавим код в наш Program.cs, который является нашим консольным приложением. Консольное приложение будет использоваться для создания объекта «класса Tutorial» и вызова методов SetTutorial и GetTutorial соответственно. (Примечание: объект является экземпляром класса в любой момент времени. Разница между классом и объектом заключается в том, что объект содержит значения свойств.) Пояснение кода:- Если приведенный выше код введен правильно и программа запущена, отобразится следующий вывод. Вывод: 2. В меню «Файл» выберите «Создать», а затем выберите «Проект». Появится диалоговое окно «Новый проект».
3. Установите тип проекта на проекты CLR. 4. Установите в качестве шаблонов консольное приложение CLR . 5. Введите Животные в текстовое поле Имя. 6. Выберите подходящее место для нового проекта. Нажмите ОК . 
7. В обозревателе решений дважды щелкните файл Animals.cpp в папке исходных файлов. 8. Непосредственно под используемым пространством имен System; добавьте следующее определение класса: 
Чтобы объявить класс в C++, вы используете ключевое слово class, за которым следует имя класса, например Animal в этом примере, а затем вы перечисляете все переменные-члены класса, функции и методы между открывающей фигурной скобкой ( ). Итак, вы создали класс Animal с переменной int для количества его ног и переменной String для его имени. В нынешнем виде ни одна другая программа или класс не сможет получить доступ к этим переменным. Члены класса, данные и методы по умолчанию являются закрытыми и доступны только для методов самого класса. C++ предоставляет три модификатора доступа: public , private и protected для указания видимости различных членов класса. 
Объявление переменных после ключевого слова public делает их обе доступными. Однако обычно не рекомендуется разрешать другим классам и частям вашей программы доступ к переменным класса. Как обсуждалось ранее в разделе об инкапсуляции, лучше скрывать детали реализации класса от пользователей этого класса и контролировать доступ к данным класса с помощью функций. В этом примере ключевое слово private будет использоваться для предотвращения прямого доступа к строковой переменной класса. Ноги переменной int будут оставлены в открытом доступе просто для того, чтобы показать, как основная программа может получить к ним прямой доступ. 
Чтобы предоставить доступ к частной переменной String, в класс необходимо добавить общедоступные функции и методы доступа, чтобы другие функции могли управлять его значением. 11. После объявления переменной int и перед модификатором доступа private добавьте следующие объявления методов или строки реализации: 
Поскольку эти методы представляют собой небольшие функции, проще всего объявить и реализовать их как встроенные функции. Теперь класс Animal завершен. Синтаксис объявления:
ref class classname Ключевые слова управления доступом (public, private или protected) Объявление переменных и методов класса >
Более полный синтаксис приведен ниже.
class_access ref class модификатор имени : inherit_access base_type ;
ссылка на класс MyClass2 public : int i; >; ссылка на класс MyClass2 : public MyClass::MyInterface public: виртуальный void f()
12. В функции main() удалите следующую строку:
Животное ^ ящерица = gcnew Животное; Животное ^ птица = gcnew Животное;

Ключевое слово gcnew, за которым следует класс создаваемого объекта, создает объект в куче CLR, а не в стеке. Адрес памяти созданного объекта возвращается и сохраняется в указателе. 14. Используйте функцию-член SetName, чтобы присвоить имена Lizard и Bird соответствующим объектам ящерицы и птицы и установить переменную ноги для обоих объектов, как показано ниже.
lizard->SetName( «Ящерица» ); lizard->legs = 4; bird->SetName( «Птица» );
птица->ноги = 2;
Для доступа к переменным-членам и функциям необходимо разыменовать указатель одним из двух способов. Вы можете использовать: Оператор разыменования, звездочка ( * ), за которой следует точка, например (*lizard).legs . Вы также можете использовать сокращенный оператор для косвенного доступа, который представляет собой знак минус и правую угловую скобку ( -> ). 15. Создав пару объектов Animal и присвоив им данные, вы теперь собираетесь отображать эти данные на экране. Добавьте следующие строки:
16. Создайте приложение. Выберите «Сборка решения» в строке меню «Сборка» или используйте сочетание клавиш Ctrl+Shift+B. 17. Если сборка прошла успешно, запустите приложение, выбрав Запустить без отладки в меню Отладка, или используйте сочетание клавиш Ctrl+F5. Коллекция рефакторингов «Создать из использования» для нисходящего программирования позволяет вам вводить код, когда и где вы хотите, без изменения положения курсора или переключения между файлами. Вы можете создавать классы или вводить перечисления, переменные и функции/методы в локальной, классовой или глобальной области. Вызовите эту функцию, введя имя нового символа и поручив Visual Assist создать желаемую цель. Выводится правильный тип цели.
Создать новый курс

Создавайте новые классы-заглушки по мере написания кода. Откройте меню «Создать из использования» из меню VAssistX (Alt+X,R,U), его сочетания клавиш по умолчанию (Shift+Alt+C) или меню «Быстрое действие и рефакторинг» (Shift+Alt+Q).

Вы можете изменить имя файла для нового класса, если хотите, чтобы оно отличалось от имени класса:

Нажмите OK, и все готово. Visual Assist определяет тип параметров конструктора для создания переменных-членов и их автоматической инициализации:

Переменные-члены получат соответствующие имена из заданного списка параметров. Вы можете использовать команду rename для переменных, созданных из констант, чтобы легко давать описательные имена:
Вы также можете вызвать команду, если не передаете параметры. Команда работает как со скобками, так и без них: Вы можете изменить фрагменты рефакторинга для создания из использования (для класса), чтобы изменить содержимое и формат созданного класса. Для этих фрагментов VA доступны специальные зарезервированные строки.
Создать участника класса

Быстро добавляйте вспомогательный метод или переменную состояния в класс, работая в другом месте этого класса. Visual Assist отличает неизвестные методы от неизвестных переменных, ища круглые скобки после имени символа.
Доступ к «Создать на основе использования» из меню VAssistX (Alt+X,R,U), его сочетания клавиш по умолчанию (Shift+Alt+C) или меню «Быстрое действие и рефакторинг» (Shift+Alt+Q).

Visual Assist использует те же правила языкового ввода, что и компилятор, для определения правильного типа.
Переменная отображается везде, где указано.
Создание из использования также может создавать методы в классе. 


По умолчанию выдается исключение времени выполнения, указывающее, что метод не реализован. Вы можете изменить код по умолчанию, отредактировав фрагмент кода VA Refactor Create для соответствующего языка программирования.
Создать параметр для функции/метода

Параметризируйте глобальные функции или статические методы, чтобы стимулировать повторное использование служебного кода.

Вы можете указать нераспознанные символы в качестве параметров, и функция Create from Usage сгенерирует код в соответствующем объявлении и определении метода.

Создать значение перечисления

Определить новое значение перечисления из сайта вызова. Определите из оператора присваивания, сравнения или переключателя (или другой конструкции, в которой тип неизвестного символа может быть выведен как перечисление).


Значения перечисления C++, вставляемые с сайта вызова, должны использовать квалификатор синтаксиса Microsoft::name. Это указывает Visual Assist, что вы добавляете значение перечисления, а не вводите новую переменную типа перечисления.
Создать глобальную функцию

Создание из использования неизвестной функции за пределами области класса приведет к созданию глобальной функции.
Создать локальные или глобальные переменные

При выполнении «Создать из использования» для неизвестной переменной вне области действия класса вам предоставляется выбор: создать параметр для содержащей функции или создать локальную или глобальную переменную.
Форматирование
Управляйте внешним видом параметров (особенно пробелов) с помощью фрагмента VA реализации рефакторинга для каждого языка. Отредактируйте фрагмент VA тела метода Refactor Create From Usage для каждого языка, чтобы указать код по умолчанию, который будет помещен в созданный метод. Например, вы можете захотеть написать код, который не компилируется, чтобы заставить вас вернуться и написать реализацию. Если Visual Assist не может определить тип создаваемой переменной или метода, будет вставлен заполнитель «UnknownType». Мастер классов C++ предоставляет быстрый и простой способ добавить собственные классы кода C++ в ваш проект, чтобы вы могли при желании расширить его собственными функциями. Это преобразует проект только для контента в проект кода. Вы можете получить доступ к мастеру классов C++ следующим образом: Перед продолжением убедитесь, что у вас установлена Visual Studio 2015 или более поздней версии для рабочего стола Windows. Если вы используете Mac, убедитесь, что у вас установлен Xcode 8 или выше. В главном редакторе выберите «Файл» > «Новый класс C++». 
Появится мастер классов C++, показывающий часто добавляемые классы. Если вы не видите класс, который ищете, вам нужно будет просмотреть весь список иерархии классов. Установите флажок «Показать все классы» в правом верхнем углу окна. 

Выберите класс, который хотите добавить, и нажмите кнопку «Далее >». Затем вам будет предложено ввести имя для вашего нового класса. Сделайте это и нажмите кнопку «Создать класс». Это создаст файлы заголовка (.h) и исходный файл (.cpp). 
Имена классов могут содержать только буквенно-цифровые символы и не могут содержать пробелы. Поле уведомит вас, если вы введете недопустимое имя. Код немедленно откроется в Visual Studio, готовый для редактирования. 
Код немедленно откроется в Xcode, готовый для редактирования. 
Инструкции по компиляции вашего класса после завершения редактирования см. в документации по компиляции проектов. Помогите сформировать будущее документации Unreal Engine! Расскажите нам, как у нас дела, чтобы мы могли лучше обслуживать вас. Читайте также:
- Как открыть листы в Excel
- Программа для рисования мандал
- Редактор бинарных файлов
- Как отключить автозаполнение в браузере
- Как убрать наложение звука в fl studio
Создание и настройка членов типа в конструкторе классов
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Можно добавить эти члены в типы на схеме классов и настроить данные члены в окне Сведения о классах:
| Тип | Элементы, которые тип может содержать |
|---|---|
| Класс | метод, свойство (для C# и Visual Basic), поле, событие (для C# и Visual Basic), конструктор (метод), деструктор (метод), константа |
| Перечисление | member |
| Интерфейс | метод, свойство, событие (для C# и Visual Basic) |
| Абстрактный класс | метод, свойство (для C# и Visual Basic), поле, событие (для C# и Visual Basic), конструктор (метод), деструктор (метод), константа |
| Структура (структура в коде C#) | метод, свойство (для C# и Visual Basic), поле, событие (для C# и Visual Basic), конструктор (метод), константа |
| Делегирование | параметр |
| Модуль (только в Visual Basic) | метод, свойство, поле, событие, конструктор, константа |
Способствуют более лаконичному объявлению свойств, если в методах доступа «get» и «set» свойства не требуется дополнительная логика, определяемая посредством автоматически внедренных свойств (только C#). Чтобы отобразить полную сигнатуру, необходимо в меню Диаграмма классов выбрать Изменить формат членов>Показать полную сигнатуру. Дополнительные сведения об автоматически реализуемых свойствах см. в статье Автоматически реализуемые свойства.
Стандартные задачи
| Задача | Вспомогательное содержимое |
|---|---|
| Начало работы. Перед созданием и настройкой членов типа необходимо открыть окно Сведения о классах. | — Открытие окна «Сведения о классах» — Примечания об использовании окна сведений о классах — Отображение информации только для чтения — Сочетания клавиш и кнопок мыши в диаграмме классов и окне «Сведения о классах» |
| Создание и изменение членов типа. С помощью окна Сведения о классах можно создавать новые члены, изменять существующие члены, а также добавлять параметры в метод. | — Создание членов — Изменение членов типов — Добавление параметров в методы |
Открытие окна «Сведения о классах»
По умолчанию окно Сведения о классах открывается автоматически при открытии новой диаграммы классов. См. статью «Добавление схем классов в проекты»). Кроме того, можно открыть окно Сведения о классах следующим образом:
- Щелкните любой класс на диаграмме правой кнопкой мыши для вызова контекстного меню и выберите пункт Сведения о классах.
- В строке меню выберите Вид>Другие окна>Сведения о классах.
Создание членов
Элемент можно создать с помощью следующих инструментов:
- Конструктор классов
- Панель инструментов окна Сведения о классах
- Окно Сведения о классах
С помощью процедур, описанных в данном подразделе, можно создать конструкторы и деструкторы. Не забывайте, что конструкторы и деструкторы — это специальные типы методов, которые отображаются в секции Методы в фигурах диаграммы классов и в разделе Методы таблицы окна Сведения о классах.
Единственная сущность, которую можно добавить к делегату — это параметр. Обратите внимание, что процедура под названием «Создание члена с помощью панели инструментов окна Сведения о классах» не подходит для данного действия.
Создание члена с помощью конструктора классов
- Правой кнопкой мыши щелкните тип, в который нужно добавить член, выберите пункт Добавить и нужный тип члена. Будет создана и добавлена в тип новая сигнатура элемента. При этом элементу будет присвоено имя по умолчанию, которое можно изменить в конструкторе классов, окне Сведения о классах или в окне Свойства.
- Дополнительно укажите другие сведения об элементе, например его тип.
Создание члена с помощью панели инструментов окна «Сведения о классах»
- В рабочей области конструирования выберите тип, в который необходимо добавить элемент. Тип станет активным, и его содержимое отобразится в окне Сведения о классах.
- На панели инструментов окна сведений о классе щелкните верхний значок и выберите новый из раскрывающегося списка. Курсор переместится в поле Имя в строке типа добавляемого члена. Например, если выбрана команда Создать свойство, то курсор переместится в новую строку в разделе Свойства окна Сведения о классах.
- Введите имя добавляемого элемента и нажмите клавишу ВВОД (или переместите фокус, например, нажав клавишу TAB). Будет создана и добавлена в тип новая сигнатура элемента. Теперь член существует в коде и отображается в конструкторе классов, окне Сведения о классах и в окне «Свойства».
- Дополнительно укажите другие сведения об элементе, например его тип.
Создание члена с помощью окна «Сведения о классах»
- В рабочей области конструирования выберите тип, в который необходимо добавить элемент. Тип станет активным, и его содержимое отобразится в окне Сведения о классах.
- В окне сведений о классе в разделе, содержащего тип элемента, который требуется добавить, нажмите кнопку Например, если вы хотите добавить поле, нажмите кнопку
- Введите имя добавляемого элемента и нажмите клавишу ВВОД. Будет создана и добавлена в тип новая сигнатура элемента. Теперь член существует в коде и отображается в конструкторе классов, окне Сведения о классах и окне «Свойства».
- Дополнительно укажите другие сведения об элементе, например его тип.
Примечание. Для создания элементов также можно использовать сочетания клавиш. Дополнительные сведения см. в разделе Сочетания клавиш и кнопок мыши в диаграмме классов и окне «Сведения о классах».
Изменение членов типов
Конструктор классов позволяет изменять члены типов, отображаемые на схеме. Можно изменить члены любого типа, которые отображаются на схеме классов и не являются доступными только для чтения. Изменить члены типа можно с помощью редактирования прямо на рабочей области конструирования, а также с помощью окна «Свойства» и окна Сведения о классах.
Все члены, отображаемые в окне Сведения о классах, представляют члены типов на диаграмме классов. Существует четыре типа членов: методы, свойства, поля и события.
Все строки члена отображаются под заголовками, которые группируют члены по типу. Например, все свойства отображаются под заголовком Свойства, который можно свернуть или развернуть как узел в таблице.
Каждая строка члена отображает следующие элементы:
- Значок члена Каждый тип члена представлен своим значком. Наведите указатель мыши на значок члена, чтобы отобразить сигнатуру члена. Щелкните значок члена или пробел слева от значка члена, чтобы выбрать строку.
- Имя члена Столбец Имя в строке члена отображает имя члена. Это имя также отображается в свойстве Имя окна «Свойства». Данную ячейку можно использовать для изменения имени любого члена с разрешениями на чтение и запись. При наведении указателя мыши на имя члена отображается полное имя, если столбец Имя слишком узкий, чтобы показать полное имя.
- Тип члена Ячейка MemberType используется технологией IntelliSense, которая позволяет выбирать тип из списка всех доступных типов в текущем проекте или в проектах, на которые имеются ссылки.
- Модификатор члена Измените модификатор видимости члена на Public ( public ), Private ( private ), Friend ( internal ) Protected ( protected ), Protected Friend ( protected internal ) или Default .
- Последняя строка в окне сведений о классе содержит элемент> добавления текстаName. Если выбрана данная ячейка, то можно создать новый член. Дополнительные сведения см. в разделе Создание членов.
- Свойства члена в окне «Свойства» В окне Сведения о классах отображается подмножество свойств члена, которые отображаются в окне «Свойства». Изменение значения свойства в одном месте изменяет значение свойства глобально. Это касается отображения его значения в других местах.
- Сводка Ячейка Сводка содержит сводную информацию о члене. Щелкните многоточие в ячейке Сводка, чтобы просмотреть или изменить сведения в полях Сводка, Тип возвращаемого значения и Примечания для члена.
- Скрыть Если установлен флажок Скрыть, член в типе отображаться не будет.
Изменение члена типа
- Выберите тип в конструкторе классов.
- Если окно Сведения о классах не отображается, нажмите кнопку окна Сведения о классах на панели инструментов конструктора классов.
- Измените значения в полях сетки окна Сведения о классах. После каждого изменения нажимайте клавишу ВВОД или перемещайте фокус от измененного поля (например, нажимая клавишу TAB). Изменения немедленно отражаются в коде.
Примечание. Если необходимо изменить только имя члена, это можно сделать с помощью редактирования прямо на схеме.
Добавление параметров в методы
Добавить параметры в методы можно с помощью окна Сведения о классах. Параметры можно настроить так, чтобы они были обязательными или необязательными. Если предоставить значение для свойства Дополнительное значение по умолчанию параметра, конструктор сформирует код как необязательный параметр.
Строки параметров содержат следующие элементы:
- Название Столбец Имя в строке параметра отображает имя параметра. Это имя также отображается в свойстве Имя окна «Свойства». Данную ячейку можно использовать для изменения имени любого параметра с разрешениями на чтение и запись. Если столбец Имя слишком узкий, чтобы показать полное имя, необходимо навести указатель мыши на имя параметра.
- Тип Ячейка Тип параметра использует технологию IntelliSense, которая позволяет выбирать тип из списка всех типов, доступных в текущем проекте или в проектах, на которые имеются ссылки.
- Модификатор Ячейка Модификатор в строке параметра принимает и отображает новый модификатор параметра. Чтобы ввести новый модификатор параметра, используйте раскрывающийся список для выбора из значений None, ref, out или params в C# и значений ByVal, ByRef или ParamArray в VB.
- Сводка Ячейка Сводка в строке параметра позволяет ввести комментарии к коду, отображаемые в IntelliSense при вводе параметра в редактор кода.
- Последняя строка параметра элемента содержит параметр> добавления текста в ячейку Name. Щелчок на данной ячейке позволяет создать новый параметр. Дополнительные сведения см. в разделе Добавление параметра в метод.
В окне Свойства отображаются те же свойства параметра, что и в окне Сведения о классах: Имя, Тип, Модификатор, Сводка, а также свойство Дополнительное значение по умолчанию. Изменение свойства в одном месте обновляет значение свойства глобально, включая отображение его значения в других местах.
Инструкции по добавлению параметра в делегат см. в разделе Создание членов.
Несмотря на то что деструктор является методом, у него не может быть параметров.
Добавление параметра в метод
- В области диаграммы щелкните тип, содержащий метод, в который необходимо добавить параметр. Тип получает фокус, и его содержимое отображается в окне Сведения о классах.
- В окне Сведения о классах разверните строку метода, в который необходимо добавить параметр. Отображается строка отступа параметров>, содержащая только пару круглых скобок и добавляемые слова.
- Щелкните , введите имя нового параметра и нажмите клавишу ВВОД. Новый параметр добавлен в метод и в код метода. Он отображается в окне Сведения о классах и в окне «Свойства».
- Дополнительно можно указать другие сведения о параметре, например его тип.
Добавление необязательного параметра в метод
- На поверхности схемы щелкните тип, содержащий метод, в который необходимо добавить необязательный параметр. Тип получает фокус, и его содержимое отображается в окне Сведения о классах.
- В окне Сведения о классах разверните строку метода, в который необходимо добавить необязательный параметр. Отображается строка отступа параметров>, содержащая только пару круглых скобок и добавляемые слова.
- Щелкните , введите имя нового параметра и нажмите клавишу ВВОД. Новый параметр добавлен в метод и в код метода. Он отображается в окне Сведения о классах и в окне «Свойства».
- В окне свойств введите значение свойства Дополнительное значение по умолчанию. После настройки свойства «Дополнительное значение по умолчанию» параметра этот параметр станет необязательным.
Примечание. Необязательные параметры должны находиться в конце списка параметров.
Примечания об использовании окна сведений о классах
Обратите внимание на следующие советы по работе с окном Сведения о классах.
Изменяемые и неизменяемые ячейки
Все ячейки в окне Сведения о классах являются изменяемыми за немногими исключениями:
- Весь тип доступен только для чтения в случаях, когда, например, тип находится в сборке, на которую существует ссылка. При выборе фигуры в конструкторе классов окно Сведения о классах отображает сведения о ней в состоянии только для чтения.
- Для индексаторов имя доступно только для чтения, а остальные параметры (тип, модификатор, общие сведения) являются изменяемыми.
- Параметры всех универсальных шаблонов в окне Сведения о классах доступны только для чтения. Чтобы изменить параметр универсального шаблона, необходимо отредактировать его исходный код.
- Имя параметра типа, которое определено в универсальном типе, доступно только для чтения.
- Если код типа является нечитаемым (нераспознанным), в окне Сведения о классах отображается содержимое типа как доступное только для чтения.
Окно «Сведения о классах» и исходный код
- Чтобы просмотреть исходный код, необходимо щелкнуть фигуру правой кнопкой мыши в окне Сведения о классах (или конструкторе классов) и затем выбрать пункт «Просмотреть код». Откроется файл исходного кода и будет отображено место выбранного элемента.
- Изменение исходного кода сразу отражается в сведениях о сигнатуре в конструкторе классов и в окне Сведения о классах. Если окно Сведения о классах закрыто, то обновленные сведения отобразятся при следующем открытии окна.
- Если код типа является нечитаемым (нераспознанным), в окне Сведения о классах отображается содержимое типа как доступное только для чтения.
Функциональные возможности буфера обмена в окне «Сведения о классах»
Из окна Сведения о классах можно копировать или вырезать поля или строки и вставлять их в другой тип. Вырезать строку можно только в том случае, если она доступна не только для чтения. При вставке строки окно Сведения о классах присваивает строке новое имя (производное от имени копируемой строки) для предотвращения конфликта.
Отображение информации только для чтения
Конструктор классов и окно Сведения о классах могут отображать типы (и члены типов) для следующих элементов:
- проекта, который содержит схему классов;
- проекта, на который имеются ссылки из проекта, содержащего схему классов;
- сборки, на которую имеется ссылка из проекта, содержащего схему классов.
В двух последних случаях упоминаемая сущность (тип или член) доступна только для чтения в схеме классов, отображающей ее.
Весь проект или его часть, например отдельные файлы, могут быть доступны только для чтения. В наиболее распространенных случаях проект или один из его файлов доступны только для чтения, если проект находится под контролем системы управления версиями (и не извлечен), если проект существует во внешней сборке или если операционная система задает для файлов проекта права только на чтение.
Система управления версиями
Поскольку диаграмма классов сохраняется как файл в проекте, то для сохранения всех изменений, выполненных в конструкторе классов или окне Сведения о классах, необходимо извлекать проект.
Проекты, доступные только для чтения
Проект может быть доступен только для чтения не только по причине того, что он находится под влиянием системы управления версиями файлов. При закрытии проект отображает диалоговое окно, в котором спрашивается, нужно ли переписать файл проекта, отменить изменения (не сохранять) или не закрывать проект. Если выбрать вариант «переписать», файлы проекта будут перезаписаны и станут доступными для чтения и записи. Будет добавлен новый файл схемы классов.
Типы, доступные только для чтения
При попытке сохранить проект, содержащий типы, у которых файлы исходного кода доступны только для чтения, откроется диалоговое окно Сохранение файла, доступного только для чтения, которое позволяет выбрать либо сохранение файла под новым именем или в новом месте, либо перезапись файла, доступного только для чтения. Если переписать файл, новая копия уже не будет доступной только для чтения.
Если файл кода содержит синтаксическую ошибку, фигура отображает код, файл которого будет временно доступен только для чтения до устранения синтаксической ошибки. Фигуры в данном состоянии отображают красный текст и красный значок, который отображает подсказку «Файл исходного кода содержит ошибку разбора».
Ссылочный тип (например, тип .NET), который существует в другом узле проекта или в узле сборки, на которую имеется ссылка, отображается в области конструктора классов как доступный только для чтения. Локальный тип, который существует в открытом проекте, доступен для чтения и записи, и его фигура отображается на рабочей области конструирования.
Индексаторы доступны для чтения и записи в коде и в окне Сведения о классах, однако имя индексатора доступно только для чтения.
С помощью конструктора классов или окна Сведения о классах невозможно изменить разделяемые методы, поэтому для их изменения необходимо использовать редактор кода.
С помощью конструктора классов или окна Сведения о классах невозможно изменить машинный код C++, поэтому для его изменения необходимо использовать редактор кода.
См. также
- Просмотр типов и отношений
- Рефакторинг классов и типов
