Форум программистов, компьютерный форум, киберфорум
Наши страницы
nio
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 3.

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

Запись от nio размещена 12.04.2013 в 13:32
Обновил(-а) nio 12.04.2013 в 17:51 (Уточнение)

Как известно, хороший стиль программирования в том числе подразумевает "удобное" оформление кода.
Вот некоторые принципы:
-размер метода 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>
З.Ы. Таким образом можно группировать не только файлы относящиеся к одному классу
Размещено в Без категории
Просмотров 2109 Комментарии 3
Всего комментариев 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 вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru