Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/106: Рейтинг темы: голосов - 106, средняя оценка - 4.84
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 14

Как разделять код на отдельные файлы

20.08.2012, 22:39. Показов 19895. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в С++ все понятно - заголовочные(.h), реализация(.cpp). А как поступить в C# ? на данном этапе есть окно MainForm (соответственно файлы MainForm.cs и MainForm.Designer.cs). Окно пока одно, но на нем очень много контролов (деревья, вкладки и т д). В итоге очень длинный файл MainForm.cs, так и должно быть ? Вообще не могу понять структуру, объясните пожалуйста новичку.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.08.2012, 22:39
Ответы с готовыми решениями:

гигиеничность кода c# - научиться разделять код на файлы
Подскажите пожалуйста! Тут я не имею ввиду качественную: комментируемость\именование переменных\объектов\классов. Мне нужно как то...

Нужно, чтобы VB загружал отдельные текстовые файлы или другие в код программы
Здравствуйте уважаемые товарищи программисты! Вообщем сабж.

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

12
 Аватар для Angelov
9 / 9 / 2
Регистрация: 02.10.2010
Сообщений: 51
20.08.2012, 22:44
MainForm.cs - это так называемый бехайнд код, в котором выполняется логика, находятся обработчики событий.
Дизайнер же отвечает за размещение объектов (контролов ) на форме.
Можно в принципе все в одном файле размещать, но это немножко нарушает структуру и может быть не понятным.

Также можно создавать собственные классы имя_класса.cs

и использовать логику прописанную в нем в файле mainform.cs.
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
20.08.2012, 22:45
так он же partial класс..не нравится раздели на 2 или 3 файла
0
 Аватар для Angelov
9 / 9 / 2
Регистрация: 02.10.2010
Сообщений: 51
20.08.2012, 22:56
Цитата Сообщение от Noob.net Посмотреть сообщение
так он же partial класс..не нравится раздели на 2 или 3 файла
Можно и так, но это не совсем хорошо писать весь код в одном классе.
Обратиться даже к парадигме ООП, где идут классы,, наследование, интерфейсы....
Все в одном классе писать смысла нет, даже если он и партиал.
Партиал классы удобны в других ситуациях.
0
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 14
23.08.2012, 23:34  [ТС]
Цитата Сообщение от Angelov Посмотреть сообщение
......
Обратиться даже к парадигме ООП, где идут классы,, наследование, интерфейсы....
Все в одном классе писать смысла нет, даже если он и партиал.
.....
То есть у меня есть форма, на ней 7 объектов TreeView с описанием логики и визуальными свойствами (соотвественно файлы Form.cs и Form.Designer.cs), оба файла получились длинные, надо ли по хорошему их разделять или так оставить ? и если разделять то как partial класс ? просто новых классов не нужно т.к. ничего нового не создаю, а кода много (как правильно по парадигме ООП?).
0
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
24.08.2012, 00:33
Цитата Сообщение от Angelov Посмотреть сообщение
Обратиться даже к парадигме ООП
Которую много осуждают и которую шарп чюток нарушает.

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

Цитата Сообщение от Zoidberg Посмотреть сообщение
и если разделять то как partial класс ?
пишешь в другом файле тот же неймСпейс и также называешь класс,с партиал разумеется
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
24.08.2012, 00:36
Цитата Сообщение от Zoidberg Посмотреть сообщение
То есть у меня есть форма, на ней 7 объектов TreeView с описанием логики и визуальными свойствами (соотвественно файлы Form.cs и Form.Designer.cs), оба файла получились длинные, надо ли по хорошему их разделять или так оставить ? и если разделять то как partial класс ? просто новых классов не нужно т.к. ничего нового не создаю, а кода много (как правильно по парадигме ООП?).
попробуй выложить твой Form.cs, тогда можно бы конкретно посоветовать.
0
 Аватар для Angelov
9 / 9 / 2
Регистрация: 02.10.2010
Сообщений: 51
24.08.2012, 00:45
Цитата Сообщение от Noob.net Посмотреть сообщение
Которую много осуждают и которую шарп чюток нарушает.
Так это же хорошо, если есть осуждение, значит это применяют, используют, развивают.

Вот к примеру про язык "Ада", я почему-то дискуссий нигде не встречал, и думаю что этим языком уже никто не пользуется, или лишь единицы, вот и дискуссий нет, а C# - другое дело ))
2
5 / 5 / 2
Регистрация: 13.04.2012
Сообщений: 21
24.08.2012, 01:24
А можно и я тут спрошу? =)

Сегодня так же попробовал разделить код на файлы...
Сейчас у меня 2 файла - Form1.cs и Free.cs
В Form1 имеется ListView, в нем столбцы с данными.
Раньше, до разделения на части, можно было делать все что угодно с этими данными, сейчас (после разделения) Items.Count из Free.cs пишет что строк 0 и выдает ошибку. Если же перенести этот код назад, то все работает нормально.

C#
1
2
3
4
5
        static public void set_check(object sender)
        {
            Form1 form1 = new Form1();
            MessageBox.Show(Convert.ToString(form1.listView1.Items.Count);
        }
Подскажите пожалуйста?
0
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 4
24.08.2012, 07:54
1 способ
1. Размещаешь код в файлах *.cs в соответствии с той логической функциональностью, как ты считаешь правильным. Описание класса должно быть ограничено рамками такого файла (если не использовать partial)
2.все эти файлы д.б. в одном Solution.

2 способ
1. Создаешь файл ClassLibrary c описанием классов, компилируешь его, и эту сборку делаешь либо приватной(размещаешь ее в каталоге Bin/Debug), либо в глобальном кэше (GAC).
2. В случае приватной сборки добавляешь на нее ссылку в проекте (AddReference ..) и делаешь ее "видимой" используя using namespace в начале твоего рабочего файла
0
5 / 5 / 2
Регистрация: 13.04.2012
Сообщений: 21
24.08.2012, 12:07
Все это делал. но все еще не могу разобраться, почему код из файла Free.cs не может получить данные из Listview.
0
51 / 38 / 5
Регистрация: 14.01.2012
Сообщений: 127
24.08.2012, 14:21
Цитата Сообщение от bllr Посмотреть сообщение
почему код из файла Free.cs не может получить данные из Listview
Не знаю. В принципе если сами файлы выглядят в общем так, то все должно быть OK
(Хотя сам когда первый раз пробовал партиал, ничо не вышло, хотя делал все прально, причину так и не нашел уверен дело в черной магии, а в последствии проблем с партиалом не было):
Form1.cs
C#
1
2
3
4
5
6
namespace WindowsFormsApplication1
{
    partial class Form1 : Form
    {
    }
}
2-й файл
C#
1
2
3
4
5
6
namespace WindowsFormsApplication1
{
    public partial class Form1
    {
    }
}
1
Темная сторона .Net
 Аватар для Noob.net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
24.08.2012, 14:24
Разделяемые классы и методы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2012, 14:24
Помогаю со студенческими работами здесь

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

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

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

Как создать отдельные файлы для компиляции в одном проекте в C++?
Всем привет. Недавно перешел с Python на C++. И при изучении заметил, чтобы создать файл, где нужно писать исходный код, то нужно сначала...

Как записывать результат в отдельные файлы: txt или json ?
Приветствую Всех! Мало знаю о языке JavaScript. В программирование совсем ещё зеленый новичок. Не давно нашел на ГитХабе открытый код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru