Организация кода C # в разные файлы - PullRequest
2 голосов
/ 26 мая 2010

Я дошел до того, что мой основной кодовый файл имеет длину около тысячи строк, и он становится неуправляемым; то есть я начинаю путаться и не знаю, где найти какие-то вещи. Это хорошо прокомментировано, но слишком много всего.

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

альтернативный текст http://img64.imageshack.us/img64/7848/codeorganizationscreens.png

Возможно ли то, что я пытаюсь сделать?

Ответы [ 4 ]

7 голосов
/ 26 мая 2010

Хотя то, что другие люди говорят о partial classes, правда. Я бы также предложил вам проанализировать возможности рефакторинга в вашем классе.

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

ИМХО частичные занятия могут не сильно помочь. Твой класс разделен на regions? Регионы улучшают читабельность вашего кода.

5 голосов
/ 26 мая 2010

Да, но вам нужно находиться в одном и том же пространстве имен и объявить класс так же, как вы делали это в основном файле, например:

file1.cs

namespace Names
{
    public partial class Hello
    {
        public void DoSomething() { }
    }
}

file2.cs

namespace Names
{
    public partial class Hello
    {
        public void Go() { DoSomething(); }
    }
}
0 голосов
/ 26 мая 2010
  1. Разобрать каждый класс приличного размера хотя бы в один файл. Оберните каждый класс в одном и том же пространстве имен.
  2. Для больших классов используйте либо:
    а. Региональные блоки, например

    # регион // Участники
    int my_int;
    // другие участники ...
    #endregion

    б. частичное ключевое слово для разбиения одного класса на несколько файлов.

0 голосов
/ 26 мая 2010

Да, вы можете разбить любой частичный класс на любое количество файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...