Jenseits hypothetischer Argumente und mit dem Fokus auf Windows .NET mit Visual Studio IDE und wachsenden Softwareprojekten, macht es in diesem Kontext einfach Sinn, eine Klasse pro Datei zu haben.
Allgemein gesprochen, für visuelle Referenzen schlägt nichts eine Klasse pro Datei. Wirklich.
Ich weiß nicht, ob Microsoft das macht oder nicht, jedoch haben sie das partial
-Schlüsselwort erstellt, um eine Klasse über mehrere Dateien aufzuteilen (das ist sogar noch drastischer). Es wird oft benutzt, um den automatisch generierten Designer-Code von Ihrem benutzerdefinierten Code in derselben Klasse zu trennen (wird manchmal aber auch verwendet, um verschiedenen Entwicklern zu ermöglichen, gleichzeitig an der Klasse über verschiedene Dateien zu arbeiten). Also Microsoft erkennt die Vorteile von mehreren Dateien und jeder hat sicherlich Gedanken zur Organisation von Dateien im Kopf bei .NET.
Für geschachtelte Klassen haben Sie keine Wahl, außer eine Datei zu verwenden, oder zumindest die ersten Teile der Klassen in ihnen. Eine Datei ist in diesem Fall notwendig und in Ordnung:
class BicycleWheel {
class WheelSpoke {
}
}
Ansonsten, warum sollten Sie mehrere Klassen in einer Datei behalten? Das Argument "weil sie klein sind" oder miteinander verbunden sind überzeugt nicht wirklich, denn letztendlich werden Ihre Klassen mit anderen Klassen verbunden sein. Letztendlich können Sie die Dateiorganisation von Objekten basierend auf ihrer Verwendung nicht einfach ableiten, besonders wenn die Software weiter wächst.
Zusätzlich, wenn Sie Ordner für Namensräume verwenden, werden Sie niemals einen Kollision von Klassendateinamen haben. Es ist auch praktisch, eine Klasse durch den Dateinamen im Dateisystem zu finden, wenn Sie sich nicht in einer Entwicklungsumgebung wie Visual Studio befinden (z.B. wenn Sie schnell eine Klasse mit Notepad oder etwas Schnellem/beliebigem bearbeiten möchten).
So viele gute Gründe...