Форум программистов, компьютерный форум, киберфорум
nio
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  

Оформление кода и группировка partial-классов

Запись от nio размещена 12.04.2013 в 13:32
Показов 8505 Комментарии 3
Метки c#

Как известно, хороший стиль программирования в том числе подразумевает "удобное" оформление кода.
Вот некоторые принципы:
-размер метода 20+-5 строк
-каждый класс в отдельном файле
-в одном файле не боле 500 строк (дальше разбивка на части c помощью partial)
-объединение(группировка) членов класса по назначению (с помощью region)

Все это не сложно реализовать. Но до недавнего времени меня смущало только одно - невозможность объединить файлы одного класса, разбитого ключевым словом partial, в одну группу (как это делает студия с формами: файл с кодом дизайнера оказывается вложенным в класс формы).

На данный момент эту проблему удалось решить. Привожу пример создания части к классу Form1 с названием Form1.Add
Итак, порядок действий следующий:
1) Добавляем в проект новый класс с именем Form1.Add.cs
2) Файл создастся как обычный класс, поэтому в коде обязательно нужно добавить ключевое слово partial (имя класса останется Form1)
C#
1
2
3
    partial class Form1
    {
    }
3)Сохраняем и закрываем проект.
4)Открываем блокнотом файл проекта "<project_Name>.csproj" и находим такой код
XML
1
2
3
    <Compile Include="Form1.Add.cs">
      <SubType>Form</SubType>
    </Compile>
5) Строку
XML
1
      <SubType>Form</SubType>
заменяем строкой
XML
1
      <DependentUpon>Form1.cs</DependentUpon>
6) Сохраняем изменения.
7) Открываем проект и наблюдаем сгруппированный класс

Я для удобства перемещаю код приведенный в п.4 в то место, где расположен код файла Form1.cs, но это не обязательно - работает и так

Также следует учитывать, что при работе с файлами вложенными в папки в тег <DependentUpon> указывается только имя класса без указания имени папки
XML
1
2
3
4
    <Compile Include="testfolder\Class3.cs" />
    <Compile Include="testfolder\Class3.1.cs">
    <DependentUpon>Class3.cs</DependentUpon>
    </Compile>
З.Ы. Таким образом можно группировать не только файлы относящиеся к одному классу
Метки c#
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 3
Комментарии
  1. Старый комментарий
    Аватар для СyberSpec

    Как вариант

    Ну это файл-ориентированный подход какой то. Можно использовать Class View для удобной навигации если уж куча файлов и классов. А по поводу рефакторинга неужели мало встроенных фич самой Visual Studio?
    А в общем взял на заметку, спасибо.
    Запись от СyberSpec размещена 25.07.2013 в 15:32 СyberSpec вне форума
  2. Старый комментарий
    Аватар для ksk
    Спасибо, полезно, пригодилось.
    Запись от ksk размещена 06.11.2013 в 19:26 ksk вне форума
  3. Старый комментарий
    Аватар для ViterAlex
    Спасибо. Давно думал, как навести порядок с partial классами
    Запись от ViterAlex размещена 27.10.2014 в 23:01 ViterAlex вне форума
 
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru