Как сделать файл cs

Обновлено: 06.07.2024

Форум; Я новичок, разрабатываю немного кода. Я хотел бы знать, как лучше использовать отдельные файлы .cs, содержащие другие классы и функции. В качестве примера базовой функции хотелось бы нажать кнопку очистки и очистить все поля формы. Код разбивается на три файла .cs. Main.cs, MainForm.Designer.cs и btClear.cs.

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

Я хотел бы иметь код для очистки текстовых полей, содержащихся в btClear.cs. Я понимаю, что было бы просто просто разместить этот код в MainForm.Designer.cs, однако я бы хотел использовать это как шаблон для использования отдельных файлов .cs в качестве стандартной практики.

Может кто-нибудь дать мне пример того, как это сделать?

ОТВЕТЫ

Ответ 1

  • Оставьте весь свой код внутри MainForm.cs , но объявите новый метод для разделения кода, который выполняет очистку.

Я всегда оставляю в методе обработчика события (один VS генерирует при двойном щелчке кнопки) код, чтобы изменить курсор мыши (в случае, если код, который я вызываю, занимает пару секунд или больше для запуска) и уловить все необработанные исключения и поместить мою логику в отдельный закрытый метод:

Перемещение кода из формы .cs файлов рекомендуется , если код не является частью логики формы, например, код доступа к данным или бизнес-логика. В этом случае я не думаю, что очистка контроля формы квалифицируется как бизнес-логика. Это всего лишь часть кода формы и должна оставаться в MainForm.cs .

Но если вы действительно хотите поместить метод ClearForm в другой файл .cs, вы можете создать новый класс и переместить там метод ClearForm . Вам также нужно будет изменить свойство Modifiers каждого элемента управления на Public, чтобы ваш новый класс мог получить доступ к ним извне MainForm. Что-то вроде этого:

Вам нужно будет изменить основной код формы на:

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

И, как говорили другие, MainForm.Designer.cs генерируется машиной, и вы никогда не должны размещать там свой собственный код.

Ответ 2

Вы можете использовать класс partial для вашего класса MainForm , поскольку это уже выполняется в MainForm.cs и MainForm.Designer.cs .

И зарегистрируйтесь для события в MainForm.cs или MainForm.Designer.cs

Если вам нужен общий способ сделать это, вы можете установить для свойства Tag значение вашего значения по умолчанию. И с помощью метода расширения вы можете сделать что-то вроде formGroup.Reset();

Ответ 3

Один класс для каждого файла .cs является хорошим правилом.

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

Edit:

Поместите четкую функцию в кнопку OnClick. Нет причин отделять это.

.aspx файл:

.cs file

ComplexOperationThingy.cs:

Ответ 4

Это довольно просто сделать. В файле btClear.cs просто создайте определение класса, например:

Затем вы можете вызвать его из того места, где содержится пространство имен, сгенерированное сгенерированным классом, с помощью:

Надеюсь, я не полностью упустил отметку о ваших намерениях.

Ответ 5

В общем, вы не должны помещать свой код в файл MainForm.designer.cs. Файлы *.designer.cs используются Visual Studio, чтобы подключить всю утомительную сантехнику фактически установленных элементов управления в форме.

Любой код, который вы хотите использовать для взаимодействия с элементами управления в форме, должен находиться в файле MainForm.cs. Поэтому, если вы хотите, чтобы функция очищала элементы управления формы, вы должны поместить туда код.

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

Как сказал Крис, в целом размещение одного класса для каждого файла .cs также является хорошей идеей. Когда вы это сделаете, файл должен иметь имя класса, который он содержит. Поэтому, если у вас есть класс с именем MyButtonHelpers, тогда исходный файл должен иметь имя MyButtonHelpers.cs.

Ответ 6

Я считаю, что лучше не напрямую редактировать файл .Designer.cs, особенно с точки зрения Source Control. Вы можете использовать частичные классы, чтобы содержать соответствующий код; в этом случае вы можете использовать MainForm.Designer.cs в качестве примера того, как выполнять частичные классы (например, частичный класс MainForm <>).

Если вы добавляете обработчики событий через Windows Forms Designer, он должен автоматически помещать их в MainForm.cs, а не MainForm.Designer.cs. Если проект растет до любого значительного размера, я часто считаю полезным создавать несколько файлов с частичным классом, по одному для каждой основной группы функциональных возможностей. Это значительно облегчает поиск определенной функции (и связанных функций).

Ответ 7

Вы упомянули в комментарии, что вы предвидите более "сложные операции", чем пример, который вы дали. Какие операции вы планируете? До тех пор, пока вы просто говорите о работе с элементами управления формами, логика принадлежит файлу .cs для формы (в данном случае MainForm.cs, а не MainForm.designer.cs - как говорили другие, никогда не изменяйте файл .designer).

Если ваша форма становится слишком сложной, тогда имеет смысл разбить ее на отдельный настраиваемые элементы управления. Это позволит вам уменьшить ваши исходные файлы, но (так как каждый элемент управления сопоставляется с классом) вы придерживаетесь соглашения об одном классе ↔ 1.

Изучив это руководство, вы:

  • Добавите второй проект.
  • Ссылка на библиотеки и добавление пакетов
  • Выполните дополнительную отладку.
  • Проверите готовый код.

Предварительные условия

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

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

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

В Visual Studio выберите Файл > Добавить > Новый проект, чтобы добавить новый проект. В Обозревателе решений щелкните решение правой кнопкой мыши, чтобы добавить проект из контекстного меню.

В Обозревателе решений щелкните узел решения правой кнопкой мыши и выберите пункты Добавить > Новый проект.

Снимок экрана: выбор шаблона проекта

В диалоговом окне Настройка нового проекта введите имя проекта CalculatorLibrary и нажмите кнопку Далее.

Снимок экрана: обозреватель решений с добавленным проектом библиотеки классов CalculatorLibrary

Переименуйте файл Class1.cs в CalculatorLibrary.cs. Чтобы переименовать файл, щелкните правой кнопкой мыши имя в Обозревателе решений и выберите команду Переименовать, затем выберите имя и нажмите клавишу F2 либо выберите имя и щелкните еще раз, чтобы ввести его.

Теперь необходимо добавить ссылку на проект, чтобы первый проект мог использовать API, предоставляемые новой библиотекой классов. Правой кнопкой мыши щелкните узел Зависимости в проекте Калькулятор и выберите Добавить ссылку на проект.

Снимок экрана: пункт меню

Откроется диалоговое окно Диспетчер ссылок. Это диалоговое окно позволяет добавлять ссылки на другие проекты, а также сборки и библиотеки DLL COM, необходимые вашим проектам.

В диалоговом окне Диспетчер ссылок установите флажок для проекта CalculatorLibrary и выберите OK.

Снимок экрана: диалоговое окно

Ссылка на проект отображается в узле Проекты в обозревателе решений.

Снимок экрана: Обозреватель решений со ссылкой на проект

В файле Program.cs выберите класс Calculator и весь его код и нажмите CTRL+X, чтобы вырезать его. Затем в CalculatorLibrary.cs вставьте код в пространство имен CalculatorLibrary .

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

Теперь код в CalculatorLibrary.cs должен выглядеть следующим образом.

Или попробуйте добавить директиву using в начало файла.

Добавление директивы using позволяет удалить пространство имен CalculatorLibrary из места вызова, но это приводит к неоднозначности. Является ли Calculator классом в CalculatorLibrary или Calculator — это пространство имен?

Чтобы устранить неоднозначность, измените имя пространства имен Calculator на CalculatorProgram в файле Program.cs.

В Обозревателе решений щелкните узел решения правой кнопкой мыши и выберите пункты Добавить > Новый проект.

Снимок экрана: выбор шаблона проекта

В диалоговом окне Настройка нового проекта введите имя проекта CalculatorLibrary и нажмите кнопку Далее.

Visual Studio создаст новый проект и добавит его в решение.

Снимок экрана: обозреватель решений с добавленным проектом библиотеки классов CalculatorLibrary

Переименуйте файл Class1.cs в CalculatorLibrary.cs. Чтобы переименовать файл, щелкните правой кнопкой мыши имя в Обозревателе решений и выберите команду Переименовать, затем выберите имя и нажмите клавишу F2 либо выберите имя и щелкните еще раз, чтобы ввести его.

Теперь необходимо добавить ссылку на проект, чтобы первый проект мог использовать API, предоставляемые новой библиотекой классов. Правой кнопкой мыши щелкните узел Зависимости в проекте Калькулятор и выберите Добавить ссылку на проект.

Снимок экрана: пункт меню

Откроется диалоговое окно Диспетчер ссылок. Это диалоговое окно позволяет добавлять ссылки на другие проекты, а также сборки и библиотеки DLL COM, необходимые вашим проектам.

В диалоговом окне Диспетчер ссылок установите флажок для проекта CalculatorLibrary и выберите OK.

Снимок экрана: диалоговое окно

Ссылка на проект отображается в узле Проекты в обозревателе решений.

Снимок экрана: Обозреватель решений со ссылкой на проект

В файле Program.cs выберите класс Calculator и весь его код и нажмите CTRL+X, чтобы вырезать его. Затем в CalculatorLibrary.cs вставьте код в пространство имен CalculatorLibrary .

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

Теперь код в CalculatorLibrary.cs должен выглядеть следующим образом.

Или попробуйте добавить директиву using в начало файла.

Добавление директивы using позволяет удалить пространство имен CalculatorLibrary из места вызова, но это приводит к неоднозначности. Является ли Calculator классом в CalculatorLibrary или Calculator — это пространство имен?

Чтобы устранить неоднозначность, переименуйте пространство имен из Calculator в CalculatorProgram в Program.cs и в CalculatorLibrary.cs.

Начните с добавления директив using в начало файла CalculatorLibrary.cs.

Это использование класса Trace должно подразумевать ссылку на класс, который он связывает с файловым потоком. Это требование означает, что калькулятор будет работать лучше в качестве объекта, поэтому добавьте конструктор в начало класса Calculator в CalculatorLibrary.cs.

Также удалите ключевое слово static , чтобы изменить статический метод DoOperation на метод-член.

Добавьте выходные данные журнала для каждого вычисления. DoOperation будет иметь следующий вид.

Также измените место вызова DoOperation , чтобы оно ссылалось на объект с именем calculator в нижнем регистре. Теперь код является вызовом члена, а не вызовом статического метода.

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

В проводнике перейдите в папку выходных данных в разделе bin/Debug/ и откройте файл calculator.log. Результат должен выглядеть следующим образом.

Сейчас файл CalculatorLibrary.cs должен выглядеть следующим образом.

Файл Program.cs должен выглядеть как следующий фрагмент кода.

Добавление пакета NuGet: запись в JSON-файл

В Обозревателе решений щелкните правой кнопкой мыши узел Зависимости для проекта CalculatorLibrary и выберите Управление пакетами NuGet.

Снимок экрана:

Снимок экрана:

Откроется диспетчер пакетов NuGet.

Снимок экрана: диспетчер пакетов NuGet

Найдите и выберите пакет Newtonsoft.Json и нажмите кнопку Установить.

Снимок экрана: сведения о пакете NuGet Newtonsoft.Json в диспетчере пакетов NuGet

Visual Studio скачивает пакет и добавляет его в проект. Новая запись отображается в узле "Ссылки" в Обозревателе решений.

Снимок экрана: сведения о пакете NuGet Newtonsoft.Json в диспетчере пакетов NuGet

Если появится запрос на принятие изменений, нажмите кнопку OK.

Visual Studio скачивает пакет и добавляет его в проект. Новая запись отображается в узле Пакеты в Обозревателе решений.

Добавьте директиву using для Newtonsoft.Json в начало файла CalculatorLibrary.cs.

Создайте объект члена JsonWriter и замените конструктор Calculator следующим кодом.

Измените метод DoOperation , чтобы добавить код JSON writer .

Добавьте метод для завершения синтаксиса JSON после ввода пользователем всех данных для операции.

В конце файла Program.cs перед return; добавьте вызов к Finish .

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

Откройте файл calculatorlog.json в проводнике. Выходные данные должны быть примерно следующими.

Отладка. Установка точки останова и попадание в нее

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

В файле Program.cs щелкните поле слева от следующей строки кода. Можно также выбрать строку и нажать клавишу F9 или щелкнуть правой кнопкой мыши и выбрать Точка останова > Вставить точку останова.

Красная точка указывает на точку останова. Для приостановки приложения и проверки кода можно использовать точки останова. Вы можете установить точку останова в любой исполняемой строке кода.

Снимок экрана: установка точки останова

Выполните сборку и запуск приложения. Введите следующие значения для вычисления.

  • Для первого числа введите 8.
  • Для второго числа введите 0.
  • Давайте поэкспериментируем с оператором. Введите d.

Приложение приостанавливается в созданной точке останова, которая обозначается желтым указателем слева и выделенным кодом. Выделенный код еще не выполнен.

Снимок экрана: попадание в точку останова

Теперь, когда приложение приостановлено, вы можете проверить его состояние.

Отладка. Просмотр переменных

В выделенном коде наведите указатель мыши на переменные, такие как cleanNum1 и op . Текущие значения этих переменных, 8 и d соответственно, отображаются в подсказках по данным.

Снимок экрана: подсказки по данным

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

В нижней области просмотрите окно Локальные. Если оно закрыто, выберите Отладка > Окна > Локальные, чтобы открыть его.

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

Снимок экрана: окно

Снимок экрана: окно

Взгляните на окно Видимые.

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

Далее можно поочередно выполнить код в отладчике по одной инструкции за раз. Это называется пошаговым выполнением.

Отладка. Пошаговое прохождение кода

Нажмите клавишу F11 или выберите Отладка > Выполнять по шагам.

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

Снимок экрана: команда

Вы только что выполнили по шагам метод DoOperation в классе Calculator .

Чтобы получить иерархический обзор выполнения программы, просмотрите окно Стек вызовов. Если оно закрыто, выберите Отладка > Окна > Стек вызовов, чтобы открыть его.

Снимок экрана: стек вызовов

В этом представлении показан текущий метод Calculator.DoOperation , обозначенный желтым указателем. Во второй строке показана функция, которая вызвала метод из метода Main в Program.cs.

В окне Стек вызовов показан порядок вызова методов и функций. Это окно предоставляет доступ ко многим функциям отладчика, таким как Перейти к исходному коду, из контекстного меню.

Нажмите клавишу F10 или выберите Отладка > Шаг с обходом несколько раз, пока приложение не остановится в операторе switch .

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

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

Этот код проверяет деление на нуль. Если приложение продолжит работать, оно вызовет общее исключение (ошибку), но вы можете выполнить другое действие, например просмотреть фактическое возвращаемое значение в консоли. Один из вариантов — использовать функцию отладчика Изменить и продолжить, чтобы внести изменения в код и продолжить отладку. Тем не менее мы покажем другой метод для временного изменения потока выполнения.

Отладка. Тестирование временного изменения

Выберите желтый указатель, который в данный момент приостановлен на операторе if (num2 != 0) , и перетащите его в следующий оператор.

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

Нажмите клавишу F10, чтобы выполнить строку кода.

Нажмите клавишу F5 или выберите Отладка > Продолжить отладку.

Символ бесконечности отображается в консоли как результат математической операции.

Закройте приложение должным образом с помощью команды n.

Полный код

Ниже приведен полный код для файла CalculatorLibrary.cs после выполнения всех шагов.

А вот код для файла Program.cs:

Следующие шаги

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

Иконка формата файла cs

Как, чем открыть файл .cs?













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

Иконка формата файла cs

Подробное описание

Пользовательский скрипт, позволяющий расширить возможности компьютерной игры Grand Theft Auto: San Andreas. Скрипты для GTA могут быть написаны с помощью утилиты Sanny Builder, либо аналогичных приложений. Для запуска пользовательских сценариев необходимо наличие библиотеки CLEO, которая улучшает скриптовый движок игры. При этом CS-файлы должны быть размещены в папке CLEO каталога с игрой.

Как, чем открыть файл .cs?



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

Чем открыть CS Microsoft Visual Studio

Adobe Dreamweaver

Notepad++

Формат cs, вариант 2:

Название формата Скрипт модификации CLEO

Оригинальное название CLEO Custom Script

Разработчик: Rockstar Games

Категория Файлы игр

Описание расширения

Специальный сценарий, написанный для CLEO 3 — скриптового движка от сторонних разработчиков для Grand Theft Auto: San Andreas (GTA SA).

Позволяет игрокам расширять возможности игры с помощью функций под названием "opcodes". Такой сценарий можно создать в Sanny Builder — утилите модификации GTA.

Чтобы использовать файл .CS в GTA SA, н должен храниться в папке "game\CLEO".

Чем открыть CS Sanny Builder

Формат cs, вариант 3:

Название формата Цветовая схема ColorSchemer Studio

Оригинальное название ColorSchemer Studio Color Scheme

Разработчик: CHROMAom

Описание расширения

Файл цветовой схемы, созданный в ColorSchemer Studio.

ColorSchemer Studio - это программа, предназначенная для разработки цветовых палитр для интернет-сайтов, журналов, интерьера.

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

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