C# - каковы преимущества "частичных" классов?


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

Я новичок в C# , но провел 10 лет с C++, может быть, поэтому я потрясен?

В любом случае, концепция" частичного " должна иметь какое-то большое преимущество, которое я, очевидно, упускаю. Я хотел бы узнать больше о философии за ним.

EDIT: извините, пропустил этот дубликат при поиске существующих сообщений.

6 13

6 ответов:

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

Большое преимущество заключается в том, чтобы скрыть созданный компьютером код (дизайнером).
У Эрика Липперта есть недавняя запись в блоге о частичном ключевом слове в целом.

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

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

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

Два человека, редактирующие один и тот же класс, и автогенерированный код конструктора-это две непосредственные функции, которые я могу видеть, которые были решены с помощью частичных классов и методов.

Сгенерированный дизайнером код в отдельном файле намного легче работать по сравнению с 1.1, где код часто может быть искажен Visual Studio (в windows forms).

Visual Studio все еще делает путаницу синхронизации файла конструктора, кода и файла дизайна с ASP.NET.

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

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

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

Может быть, уже слишком поздно, но, пожалуйста, позвольте мне добавить мои 2 цента тоже:

*.При работе над большими проектами распространение класса на отдельные файлы позволяет нескольким программистам работать над ним одновременно.

*.Вы можете легко написать свой код (для расширенной функциональности) для VS.NET сгенерированный класс. Это позволит вам написать код вашей собственной потребности, не вмешиваясь в созданный системой код