Добавление классов в проект в visual studio выполняется

Обновлено: 07.07.2024

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

Утилита Class Designer системы Visual Studio позволяет внедрить моделирование в интегрированную среду разработки в виде действий, которые можно выполнить в любое время на всем протяжении разработки проекта. Диаграммы классов динамически конструируются по исходному коду, т.е. они никогда не устаревают. Любые изменения, внесенные в исходном коде, немедленно отражаются на диаграмме классов, а любое изменение диаграммы классов отражается в коде.

Создание диаграммы классов

Процесс проектирования приложения обычно подразумевает как минимум наличие схемы классов, которые будут созданы, и описание их взаимодействия. Среда Visual Studio 2013 имеет область проектирования Class Designer, в которой можно формировать диаграмму классов. Затем в классы можно добавлять поля, свойства и методы, а также устанавливать взаимоотношения между ними.

Несмотря на то что этот объект называется диаграммой классов, он поддерживает классы, структуры, перечисления, интерфейсы, абстрактные классы и делегаты. Существует несколько способов, с помощью которых разработчик может добавлять диаграмму классов в свой проект. Например, он может открыть диалоговое окно Add New Item, чтобы создать новую пустую диаграмму классов в проекте:

Добавление диаграммы классов в проект

Новую диаграмму классов можно добавить в проект, щелкнув на кнопке View Class Diagram инструментальной панели в окне Solution Explorer или щелкнув правой кнопкой мыши на проекте или классе, а затем выбрав команду View Class Diagram в контекстном меню. Если при этом проект был выделен, то система Visual Studio автоматически добавит все типы, определенные в проекте, в начальную диаграмму классов. Хотя в некоторых случаях это может оказаться удобным, для проекта, содержащего большое количество классов, процесс создания и уточнения такой диаграммы может оказаться слишком долгим.

В отличие от некоторых программных средств, требующих, чтобы все типы, существующие в проекте, принадлежали одной и той же диаграмме классов, в системе Visual Studio диаграмма классов может содержать сколько угодно пользовательских классов. Это позволяет добавлять в одно решение несколько диаграмм классов.

Область действия утилиты Class Designer ограничена одним проектом. Например, нельзя добавлять в диаграмму классов типы, определенные в разных проектах, даже если они являются частями одного и того же решения.

Надстройку Class Designer можно разделить на четыре компонента: область проектирования (design surface), инструментальная панель Toolbox, окно Class Details, сетка свойств. Изменения диаграммы классов сохраняются в файле с расширением *.cd, который в сочетании с исходными файлами используется для генерации схемы, демонстрируемой в области проектирования Class Designer.

Область проектирования диаграммы классов

Область проектирования надстройки Class Designer позволяет разработчику взаимодействовать с типами, используя перетаскивание компонентов. Разработчик может добавлять в область проектирования существующие типы, перетаскивая их из любого представления классов или окна Solution Explorer. Если файл, связанный с окном Solution Explorer, содержит несколько типов, то все они добавляются в область проектирования.

На рисунке ниже показана простая диаграмма классов, содержащая два класса: Customer и Order, а также перечисление OrderStatus. Каждый класс содержит поля, свойства, методы и события. Между классами существует ассоциация, поскольку класс Customer содержит свойство Orders, представляющее собой список объектов типа Order, а класс Order реализует интерфейс IDataErrorInfo. Вся эта информация содержится на диаграмме классов.

Пример диаграммы классов

Каждый класс на диаграмме классов изображается как отдельная сущность, которую можно перетаскивать по области проектирования и при необходимости изменять размеры. Класс состоит из полей, свойств, методов и событий. На рисунке выше эти компоненты сгруппированы в разделы. Разработчик может изменять шаблон для диаграмм классов, например, перечислять компоненты в алфавитном порядке или группировать их по уровню доступа.

Надстройка Class Designer часто используется для просмотра многочисленных классов, чтобы было понятно, как они связаны друг с другом. В таком случае удобно скрывать компоненты классов, чтобы упростить диаграмму. Для того чтобы скрыть все компоненты одновременно, можно использовать переключатель, расположенный в правом верхнем углу представления класса в области проектирования. Если необходимо скрыть не все, а лишь некоторые компоненты, то их можно скрывать по отдельности или по разделам, щелкая правой кнопкой мыши на соответствующем элементе и выбирая в контекстном меню команду Hide.

Инструментальная панель Toolbox

Для того чтобы облегчить добавление элементов на диаграмму классов, в инструментальной панели Toolbox есть корешок закладки Class Designer. Чтобы создать элемент, следует перетащить его из инструментальной панели Toolbox в область проектирования и дважды щелкнуть на нем. На рисунке ниже показана инструментальная панель Toolbox с видимой закладкой Class Designer. Элементы на панели Toolbox можно разделить на сущности (entities) или соединители (connectors). Обратите внимание на то, что элемент Comment можно добавить на закладку Class Designer, но он не появляется ни в одной части кода, а просто добавляется в документацию о диаграмме классов.

Элементы панели Toolbox для работы с диаграммами классов

Сущности (entities)

Для того чтобы удалить сущности из диаграммы, надо щелкнуть на них правой кнопкой мыши и выбрать в контекстном меню команду Remove From Diagram. В этом случае они не удаляются из исходного кода, а исчезают из диаграммы классов. Если разработчик все же хочет удалить связанный с сущностью исходный код, следует выбрать команду Delete Code.

Для того чтобы увидеть код, связанный с сущностью, следует дважды щелкнуть на сущности или выбрать команду View Code в контекстном меню, которое открывается после щелчка правой кнопкой мыши. Сущности, включенные в инструментальную панель Toolbox, описаны ниже.

Class (класс)

Поля, свойства, методы, события и константы можно добавлять в класс с помощью контекстного меню, открывающегося после щелчка правой кнопкой мыши или с помощью окна Class Details. Несмотря на то что класс может поддерживать вложенные типы, они не могут добавляться в область проектирования. Классы могут также реализовывать интерфейсы. Например, на рисунке выше класс Order реализует интерфейс IDataErrorInfo.

Enum (перечисление)

Может содержать только список членов с присвоенными им значениями. Каждый метод имеет резюме и комментарии, но они появляются только в виде XML-комментария, расположенного напротив метода.

Interface (интерфейс)

Интерфейсы определяют свойства, методы и события, которые должен реализовать класс. Интерфейсы могут также содержать вложенные типы, но напомним, что добавление вложенных типов не поддерживается утилитой Class Designer.

Abstract Class (абстрактный класс)

Struct (структура)

Это единственная сущность, кроме перечислений, которая появляется в области проектирования в прямоугольнике. Аналогично классу, структура имеет поля, свойства, методы, события и константы. Кроме того, она тоже может содержать вложенные типы. Тем не менее в отличие от класса структура не имеет деструктора.

Delegate (делегат)

Несмотря на то что делегат появляется на диаграмме классов как сущность, он не может содержать вложенные типы. Он может содержать только параметры, определяющие его сигнатуру.

Соединители (connectors)

Между сущностями могут быть установлены отношения двух типов. Они иллюстрируются на диаграмме классов с помощью соединителей, описанных ниже:

Inheritance (Наследование)

Соединитель Inheritance используется для того, чтобы показать отношение между классами, наследующими свойства друг друга.

Association (Ассоциация)

Если класс содержит ссылку на другой класс, то между ними существует ассоциация. Она демонстрируется с помощью соединителя Association. Если отношение основано на коллекции, - например, на списке объектов типа Order, - его можно представить с помощью ассоциации коллекции (collection association). Ассоциация коллекции Orders показана на рисунке выше в виде соединителя, связывающего классы Customer и Order.

Ассоциацию классов (class association) можно представить либо в виде поля или свойства класса, либо в виде ассоциативной связи между классами. Для этого можно использовать контекстное меню, открывающееся после щелчка правой кнопкой мыши на поле, свойстве или линии связи между классами.

Для того чтобы показать свойство как ассоциацию коллекции, необходимо щелкнуть правой кнопкой мыши на классе и выбрать команду Show as Collection Association. В результате свойство будет скрыто в классе и показано в виде соединителя с ассоциированным классом на диаграмме.

Чтобы добавить класс в проект Visual Studio C++, в обозревателе решений щелкните правой кнопкой мыши проект, выберите Добавить, а затем Класс. Откроется диалоговое окно Добавление класса.

Если по соглашению об именовании нужно использовать существующее имя, можно просто изменить регистр одной или нескольких букв в имени, так как C++ учитывает регистр. Например, хотя вы не можете назвать класс CDocument , можно назвать его cdocument .

Содержание раздела

Класс какого типа вы хотите добавить?

В диалоговом окне Добавление класса при развертывании узла Visual C++ на левой панели отображаются несколько групп установленных шаблонов. К этим группам относятся CLR, ATL, MFC и C++. При выборе группы на средней панели отображается список доступных шаблонов в этой группе. Каждый шаблон содержит необходимые для класса файлы и исходный код.

Чтобы создать класс, выберите шаблон в средней области, введите имя класса в поле Имя и нажмите Добавить. Открывается мастер добавления классов, где можно указать параметры для класса.

Дополнительные сведения о создании классов MFC см. в разделе Класс MFC.

Дополнительные сведения о создании классов ATL см. в разделе Простой объект ATL.

Шаблон Добавление поддержки ATL в MFC не создает класс, а настраивает проект для использования библиотеки ATL. Дополнительные сведения см. в разделе Поддержка ATL в проекте MFC.

Чтобы создать класс C++, который не использует MFC, ATL или CLR, воспользуйтесь шаблоном Класс C++ в группе C++ установленных шаблонов. Дополнительные сведения см. в разделе Добавление универсального класса C++.

Доступны два типа классов C++ на основе форм. Первый — класс CFormView — создает класс MFC. Второй создает класс Windows Forms для среды CLR.

Диалоговое окно "Добавление класса"

Диалоговое окно Добавление класса содержит шаблоны, которые позволяют выполнить следующие действия.

Открыть соответствующий мастер создания кода, если он доступен. Дополнительные сведения см. в разделе Добавление функциональных возможностей с помощью мастеров кода.

Автоматически создать новый класс, добавив в проект соответствующие файлы и исходный код.

Перейти к диалоговому окну Добавление класса можно из меню Проект, обозревателя решений или представления классов.

Добавление шаблонов классов

В этой статье описано, как создать проект C++ в Visual Studio, добавить код, а затем выполнить сборку и запуск проекта. Проект в этом пошаговом руководстве представляет собой программу, которая отслеживает количество игроков в различных карточных играх.

В Visual Studio для организации работы служат проекты и решения. Решение может содержать несколько проектов, например библиотеку DLL и ссылающийся на нее исполняемый файл. Дополнительные сведения см. в статье Solutions and Projects (Решения и проекты).

Перед началом работы

Для выполнения данного пошагового руководства требуется Visual Studio 2017 или более поздней версии. Если вам нужна копия, вот краткое руководство: Установка поддержки С++ в Visual Studio. Если вы еще не сделали этого, выполните приведенные ниже шаги после установки в рамках руководства "Hello, World", чтобы убедиться в правильности установки и работы компонентов C++.

Полезно владеть основами языка C++ и понимать назначение компилятора, компоновщика и отладчика. В руководстве также предполагается, что вы знакомы с Windows и умеете использовать меню и диалоговые окна.

Создание проекта

Чтобы создать проект, сначала выберите шаблон типа проекта. Для каждого типа проекта среда Visual Studio задает параметры компилятора и — в зависимости от типа — создает начальный код, который позже можно изменить. Приведенные ниже инструкции немного отличаются в зависимости от используемой версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.

Создание проекта в Visual Studio

В главном меню выберите Файл > Создать > Проект, чтобы открыть диалоговое окно Создание проекта.

В верхней части диалогового окна для параметра Язык выберите значение C++ , для параметра Платформа — значение Windows, а для параметра Тип проекта — значение Консоль.

В отфильтрованном списке типов проектов щелкните Консольное приложение, а затем нажмите кнопку Далее. На следующей странице введите имя проекта Игра.

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

При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.

Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.

Создание проекта в Visual Studio 2017

В строке меню щелкните Файл > Создать > Проект.

В левой области диалогового она Новый проект разверните узел Установленные и выберите Visual C++ , если он еще не открыт.

В списке установленных шаблонов в центральной области выберите шаблон Консольное приложение Windows.

В поле Имя введите имя проекта. Для этого примера введите Game (Игра).

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

При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.

Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.

Создание проекта в Visual Studio 2015

В строке меню щелкните Файл > Создать > Проект.

В левой области диалогового она Новый проект разверните узел Установленные и выберите Visual C++ , если он еще не открыт.

В списке установленных шаблонов в центральной области выберите шаблон Консольное приложение Win32.

В поле Имя введите имя проекта. Для этого примера введите Game (Игра).

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

При создании проекта среда Visual Studio помещает его в решение. По умолчанию имя решения совпадает с именем проекта. Можно изменить имя в поле Имя решения, но для этого примера оставьте имя по умолчанию.

Visual Studio создает решение и файлы проекта и открывает редактор для созданного файла исходного кода Game.cpp.

Упорядочение файлов и проектов

Для организации проектов, файлов и других ресурсов в решении, а также для управления ими можно использовать обозреватель решений.

В этой части пошагового руководства описывается добавление класса в проект. При добавлении класса Visual Studio добавляет соответствующие H- и CPP-файлы. Результаты отображаются в обозревателе решений.

Добавление класса в проект

Если окно Обозреватель решений не отображается в Visual Studio, выберите в строке меню Вид > Обозреватель решений.

Выберите проект Game в обозревателе решений. В строке меню выберите Проект > Добавить класс.

Visual Studio создает файлы и добавляет их в проект. Вы можете просмотреть их в обозревателе решений. Файлы Cardgame.h и Cardgame.cpp открываются в редакторе.

Внесите в файл Cardgame.h следующие изменения.

После открывающей скобки определения класса добавьте два частных элемента данных.

Измените конструктор по умолчанию, созданный средой Visual Studio. После описателя доступа public: найдите строку, которая выглядит следующим образом:

Измените этот конструктор так, чтобы он принимал один параметр типа int с именем players.

После деструктора по умолчанию добавьте встроенное объявление функции-члена типа static int с именем GetParticipants, которая не принимает параметры и возвращает значение totalParticipants .

static int GetParticipants()

После изменения файл Cardgame.h должен содержать примерно такой код:

Перейдите на вкладку Cardgame.cpp в верхней части области редактирования, чтобы открыть этот файл для внесения изменений.

Удалите весь код в файле и замените его следующим кодом:

При вводе кода можно использовать автозавершение. Например, при вводе кода с клавиатуры можно ввести pl или tot и нажать клавиши Ctrl+Пробел. Функция автозавершения автоматически вводит players или totalParticipants .

Добавление тестового кода в функцию main

Добавьте в приложение код, тестирующий новые функции.

Добавление тестового кода в проект

В окне редактора Game.cpp замените существующий код следующим:

Этот код добавляет в исходный код функцию тестирования PlayGames и вызывает ее в main .

Сборка и запуск проекта приложения

Затем выполните сборку проекта и запустите приложение.

Построение и запуск проекта

В строке меню последовательно выберите Сборка > Собрать решение.

Выходные данные сборки выводятся в окне Вывод. Если сборка пройдет успешно, выходные данные должны выглядеть следующим образом:

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

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

Чтобы запустить проект, в строке меню выберите Отладка > Запуск без отладки. Появится консольное окно, а результат выполнения должен выглядеть примерно следующим образом:

Для закрытия консольного окна нажмите любую клавишу.

Вы успешно выполнили сборку проекта приложения и решения. Продолжайте выполнять пошаговое руководство, чтобы получить дополнительные сведения о сборке проектов кода C++ в Visual Studio.

здесь program.cs (и почему я не могу переименовать этот файл ?)

и вот это Class2 что я хочу использовать в файле Class2.cs :

enter image description here

как некоторые ребята спросили, если они в той же сборке / том же проекте, Я предполагаю они были, потому что вот процедура, как они создаются:

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

согласно вашему объяснению, вы не включили свой Class2.cs в вашем проекте. Вы только что создали необходимый файл класса, но не включили его в проект.

сделайте следующее, Чтобы преодолеть это,

просто Right click в вашем проекте - > [Add] - > [существующий элемент. ] Выберите Class2.cs и нажмите OK

проблема должна быть решена сейчас.

кроме того, при добавлении новых классов используйте эту процедуру,

Right click on project - > [Add] - > выберите необходимый элемент (например, класс, форму и т. д.)

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

при условии, что оба .cs-файлы находятся в одном проекте (если они находятся в разных проектах внутри одного решения, вам нужно добавить ссылку на проект, содержащий Class2.cs), вы можете нажать на Class2 вхождение в ваш код, который подчеркнут красным цветом и нажмите CTRL + . (период) или нажмите на синюю полосу, которая должна быть там. Первый вариант появится затем добавить соответствующий using заявление автоматически. Если такого меню нет, это может означать, что что-то не так со структурой проекта или отсутствует ссылка.

вы можете попробовать сделать Class2 public , но похоже, что это не может быть проблемой здесь, так как по умолчанию вы сделали internal class Class2 и так Class2 должен быть доступен, если оба живут в одном проекте/сборке. Если вы ссылаетесь на другую сборку или проект, в котором Class2 содержится, Вы должны сделать это public для доступа к нему, как internal классы не могут быть доступны вне их сборки.

что касается переименования: вы можете нажать Program.cs в обозревателе решений и нажмите F2, чтобы переименовать его. Затем откроется диалоговое окно с запросом, если класс Program сам и все ссылки на него также должны быть переименованы, что обычно является тем, что вы хотите. Или ты можешь просто . переименуйте класс Program в объявлении и снова откройте меню с маленькой синей полосой (или, опять же, CTRL + . ) и сделать то же самое, но он не будет автоматически переименовывать фактический соответственно.

Edit после вашего вопроса edit: я никогда не использовал эту опцию, которую вы использовали, но из быстрой проверки я думаю, что это действительно не внутри того же проекта. При добавлении новых классов в проект выполните следующие действия: В обозревателе решений щелкните правой кнопкой мыши созданный проект и выберите [Добавить] - > [класс] или [добавить] - > [новый элемент. ] а затем выберите "класс". Это автоматически сделает новый класс частью проекта и, следовательно, сборкой (сборка в основном является "конечным продуктом" после создания проекта). Для меня также есть ярлык Alt + Shift + C работа над созданием нового класса.

Да, я просто сделал ту же ошибку "noob" и нашел этот поток. Я фактически добавил класс к решению, а не к проекту. Вот как это выглядело:--1-->

Читайте также: