Где я могу поместить свою делегатскую декларацию C # в свой собственный файл? - PullRequest
18 голосов
/ 28 августа 2009

По привычке я склонен помещать классы / структуры / перечисления в отдельные файлы, когда они не вложены.

Для делегатов кажется излишним создание отдельного файла для одного вкладыша:

public delegate string MyDelegateThatIsNotNestedInAnyClass ( string par );

Обычно я добавляю его в конец наиболее тесно связанного файла классов. Мне просто интересно, что делают другие люди?

Ответы [ 6 ]

5 голосов
/ 28 августа 2009

Я склонен помещать каждый тип в отдельный файл кода. Это поможет вам перемещаться в обозревателе решений, хотя ReSharper выдает « Go To File »

alt text
(источник: jetbrains.com )

и " Перейти к типу ":

alt text
(источник: jetbrains.com )

3 голосов
/ 28 августа 2009

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

Если я точно знаю, что только один класс будет реализовывать функцию делегата, я вложу ее в реализующий класс.

1 голос
/ 20 марта 2013

Я всегда объявляю свои собственные события, даже если они мне не нужны в том смысле, что достаточно общего события. Причина этого заключается в том, что имя класса события дает коду намного большую читабельность, а также не редко объявленное событие будет необходимо в дальнейшем по какой-то причине. Поскольку у меня есть класс события, я всегда помещаю делегат выше объявления класса события. Они тесно связаны между собой, и если вам нужно слушать событие, вам понадобится как событие, так и делегат. Я не знаю, нарушает ли это какие-то правила проектирования, но это хорошо сработало для меня.

1 голос
/ 28 августа 2009

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

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

1 голос
/ 28 августа 2009

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

0 голосов
/ 28 августа 2009

Обычно я просто использую:

Func<string, string>

в эти дни

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