Ein weiterer Grund für eine Klasse pro Datei, der in den bisher veröffentlichten Antworten nicht erwähnt wurde, ist, dass eine Klasse pro Datei das Verständnis der Auswirkungen einer PR während einer Codeüberprüfung erleichtert. Es reduziert auch Zusammenführungskonflikte.
Wenn jemand eine PR für Feedback veröffentlicht, kann ich mir die Liste der geänderten Dateien ansehen und sofort feststellen, ob sich etwas mit dem überschneidet, woran ich gerade arbeite. Abhängig von der Überlappung möchte ich mir den Code genauer ansehen oder ihm ein OK geben, da ich ziemlich sicher bin, dass er meine eigenen Änderungen nicht beeinflusst.
Wenn zwei Personen in einer Datei mit mehreren Klassen arbeiten und beide eine Abhängigkeit hinzufügen, besteht eine gute Chance, dass im usingBlock oben ein Zusammenführungskonflikt auftritt . Durch das Aufteilen der Klassen in Dateien werden die Abhängigkeiten getrennt, sodass Sie sehen können, was jede Klasse verwendet, und keine derartigen Konflikte auftreten.
Es gibt Ausnahmen von dieser Regel (Schnittstelle + Implementierung, Aufzählungen, ...), aber es ist ein besserer Ausgangspunkt als das Gegenteil, wodurch Junior-Entwickler normalerweise alle Arten von nicht verwandten Klassen in derselben Datei bündeln können.
Eine Klasse pro Datei ist eine eindeutige Regel, die nicht interpretiert werden kann.
Verwandte Klassen in einer Datei unterliegen persönlichen Vorlieben und Interpretationen (wie Sie aus allen anderen Antworten hier ersehen können, wann die Verwendung in Ordnung ist) und sind daher eine schlechte Regel.