192 Stimmen

Eine Klasse pro Datei Regel in .NET?

Ich befolge diese Regel, aber einige meiner Kollegen sind anderer Meinung und argumentieren, dass eine Klasse, wenn sie kleiner ist, im selben Datei mit anderen Klassen belassen werden kann.

Ein weiteres Argument, das ich die ganze Zeit höre, ist "Selbst Microsoft macht das nicht, warum sollten wir also?"

Was ist der allgemeine Konsens dazu? Gibt es Fälle, in denen dies vermieden werden sollte?

16voto

Greg D Punkte 41958

In der überwiegenden Mehrheit der Fälle befolge ich die Regel von einer Klasse pro Datei. Die einzige Ausnahme, die ich regelmäßig mache, ist die Definition eines Enums, das eng mit einer bestimmten Klasse verbunden ist. In diesem einen Fall werde ich häufig die Definition des Enums in der Datei dieser Klasse inkludieren.

11voto

Andrei Rînea Punkte 19502

Ich glaube auch, dass in einer einzigen Datei nur ein Typ enthalten sein sollte.

Es gibt eine Ausnahme zu dieser Regel, die erwähnt werden muss: Wenn zwei Klassen vorhanden sind, die sich nur durch ein generisches Argument unterscheiden, wie zum Beispiel:

RelayCommand     

und

RelayCommand

9voto

Jason M Punkte 514

Im Grunde genommen handelt es sich hier um persönliche Vorlieben. Jeder wird sagen "eine Klasse pro Datei", aber wir alle haben unsere Gründe, das in bestimmten Situationen zu vermeiden. Früher hatte ich ein großes Projekt mit etwa 300 verschiedenen Aufzählungen. Auf gar keinen Fall werde ich 300 separate Dateien haben, eine für jede Klasse, wenn einige der Aufzählungen nur dreistufig waren.

Auch für Leute, die bestimmte Klassen nicht finden können, wenn sie nicht alle in Dateien mit dem entsprechenden Namen sind, gibt es einen Grund, warum Sie nicht die Funktion "Suchen" verwenden, die in der gesamten Lösung sucht? Die Verwendung von "Suchen" spart mir wertvolle Zeit beim Scrollen durch den Solution Explorer.

5voto

akapet Punkte 31

Normalerweise hätte ich eine Klasse pro Datei, aber normalerweise müssten Sie Ihr Ermessen einsetzen, um zu sehen, ob die Datei verwandte Klassen enthalten könnte, z. B. das Gruppieren Ihrer Ausnahmen, die von Ihnen selbst und anderen Entwicklern wiederverwendet werden können. In diesem Fall muss der Benutzer nur eine Datei einbeziehen, anstatt mehrere Dateien.

Also, der Punkt ist: Ermessen sollte verwendet werden!!!

5voto

Mike Punkte 6004

Unabhängig von der Leichtigkeit des Inhalts halte ich es für unerlässlich, pro Datei eine Klasse / Schnittstelle / etc. zu haben.

Wenn ich an einer großen Lösung in Visual Studio arbeite, möchte ich in der Lage sein, die Dateien zu sehen, ohne hineinzublicken zu müssen. Selbst mit Navigationswerkzeugen wie ReSharper möchte ich eine 1:1-Zuordnung haben.

Wenn Sie viele Quelldateien mit wenig oder keinem Inhalt finden (vielleicht eine Klasse erweitern, aber nichts hinzufügen), sollten Sie vielleicht Ihr Design überdenken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X