4 Stimmen

Wie gruppiert man Enums, Strukturen und Unterklassen in Klassen?

Ich habe Schlechtes über die Überbeanspruchung von Regionen gehört, aber wenn ich Enums zu meinen Klassen hinzufüge, füge ich sie in eine #region "Enums" am Ende der Klasse, und tun Sie dasselbe mit Strukturen und sogar Unterklassen.

Gibt es eine bessere/Standardmethode für die Gruppierung solcher Elemente in Klassen?

(Hinweis: Dies bezieht sich auf C#/VB, aber vielleicht gibt es die gleiche Situation auch in anderen Sprachen, wie Java)

4voto

Timwi Punkte 62977

Eine vernünftige Gruppierung ist sicherlich die Verwendung separater Quelldateien.

Für Klassen, die mehr als ein paar Bildschirme voll sind, sollten Sie wahrscheinlich eine separate Quelldatei für eine solche Klasse haben. Andernfalls kann es schwierig sein, die verschiedenen Klassen und andere Elemente in einer Quelldatei zu finden.

Bei einer Sammlung von Enums, die semantisch zusammenhängen und die klein genug sind, um auf einen Bildschirm zu passen, ist es oft sinnvoll, sie in eine einzige Datei zu packen - aber dann sollten Sie die Datei nach einem Zweck benennen, den alle diese Enums gemeinsam haben. Wenn Sie Schwierigkeiten haben, einen aussagekräftigen Namen zu finden, der ihre Gemeinsamkeiten beschreibt, kann dies ein Hinweis darauf sein, dass Sie sie wieder aufteilen sollten. (Natürlich gilt dieser Absatz auch für Klassen und Structs, aber nur für sehr kleine).

Beachten Sie, dass sogar verschachtelt Klassen/Strukturen/Enums können in einer separaten Quelldatei in C# platziert werden - deklarieren Sie einfach die äußere Klasse als teilweise .

Wenn Sie eine ganze Klassenhierarchie von verwandten abgeleiteten Klassen (Unterklassen) können Sie sogar für jede dieser Hierarchien ein Unterverzeichnis anlegen. Zum Beispiel, in einem Unterverzeichnis namens Collections haben Sie möglicherweise eine Datei namens CollectionBase.cs für die abstrakte Basisklasse und eine separate Quelldatei für jede abgeleitete Klasse.

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