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?

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

Steve Gilham Punkte 10979

Das StyleCop-Tool für C# hat Standardregeln, die erfordern, dass es in einem Namespace höchstens eine Top-Level-Klasse gibt (zusätzlich zu einer beliebigen Anzahl von Schnittstellen, Delegaten und Aufzählungen in diesem Namespace).

In Fällen von zwei oder mehr Klassen, bei denen die zweite und folgende Klassen nur von der ersten Klasse verwendet werden, sollten diese als innere Klassen definiert werden, die nur für die verbrauchende Klasse sichtbar sind.

4voto

Luca Punkte 11190

Manchmal eine Klasse pro Datei, aber...

Wenn mehrere Klassen streng miteinander verbunden sind, ist meiner Meinung nach mehr als eine Klasse in derselben Quellcodedatei BESSER als jeder Klasse eine eigene kurze Quellcodedatei zuzuweisen. Der Quelltext ist dadurch lesbarer und kompakter (und mit #region kann derselbe Quelltext strukturierter sein als zuvor).

Denken Sie auch daran, dass es manchmal NOTWENDIG ist, dieselbe Klasse auf verschiedene Dateien zu verteilen (durch Verwendung von partial), da es nicht praktisch ist, eine 20000+ Zeilen lange Quelldatei zu haben, selbst mit dem verfügbaren RAM (aber das ist eine andere Frage).

4voto

Chris Clark Punkte 4164

In größeren Lösungen finde ich es sehr wertvoll, pro Datei eine Klasse zu haben, die genau wie die Datei benannt ist. Es macht es viel einfacher, den Code zu finden, den Sie bearbeiten müssen.

3voto

IamDeveloper Punkte 5106

Ist das wirklich ein Problem?:)
Wirklich kleine Klassen, genau wie Enums, können mit anderen zusammengefasst werden. Es gibt eine Regel zu beachten: Fassen Sie nur Klassen zusammen, die etwas gemeinsam haben.

Als Abschweifung - in einem meiner Projekte habe ich eine Datei mit 150 Klassen innerhalb. Die Datei hat 10.000 Codezeilen. Aber sie wird automatisch generiert, also ist es vollkommen akzeptabel :)

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