Конечно, разумная группировка должна использовать отдельные исходные файлы.
Для классов, которые заполнены несколькими экранами, у вас, вероятно, должен быть отдельный исходный файл для такого класса. В противном случае поиск различных классов и других элементов в исходном файле может быть затруднен.
Для коллекции перечислений, которые семантически связаны и каждый из которых достаточно мал, чтобы поместиться на экране, часто имеет смысл поместить их в один файл - но тогда вам следует назвать файл в соответствии с целью, которую все эти перечисления делятся. Если вам трудно придумать острое имя, которое описывает их общность, это может указывать на то, что вам следует разделить их снова. (Конечно, этот параграф относится в равной степени к классам и структурам, но только к очень маленьким.)
Обратите внимание, что даже вложенные классы / структуры / перечисления могут быть помещены в отдельный исходный файл в C # - просто объявите внешний класс как частичный .
Если у вас есть целая иерархия классов связанных производных классов (подклассов), вы можете даже создать подкаталог для каждой такой иерархии. Например, в подкаталоге с именем Collections
может быть файл с именем CollectionBase.cs
для абстрактного базового класса и отдельный исходный файл для каждого производного класса.