Zum Beispiel eine Klasse wie:
class Dog { } //never mind that there's nothing in it...
und dann eine Eigenschaft wie:
Dog Dog { get; set; }
Mir wurde gesagt, wenn ich keinen einfallsreicheren Namen dafür finden kann, muss ich Folgendes verwenden:
Dog DogObject { get; set; }
Irgendwelche Gedanken darüber, wie man diese besser benennt?
c#
naming
properties
Sturm Kiernan
quelle
quelle
Person
Klasse mit einerDog
Eigenschaft namensDog
Antworten:
Es könnte eine schlechte Praxis sein, wenn nicht klar ist, wovon Sie in Ihrem Code sprechen, basierend auf dem Kontext.
Welches ist der Typkonstruktor? Welches ist das Objekt? Nicht verwirrt? OK, wie wäre es
Welches ist das Objekt? Welches ist die statische Fabrikmethode für den Typ? Immer noch nicht verwirrt? Das habe ich nicht gedacht.
Das einzige Mal, dass ich gesehen habe, dass dies ein potenzielles Problem ist, wenn der Namespace-Baum ziemlich umfangreich wird und der Compiler die Mehrdeutigkeit nicht herausfinden kann
In jedem Fall sollte dies nur mit automatischen Eigenschaften (und möglicherweise Aufzählungen) geschehen, da lokale Variablennamen immer in CamelCased-Form vorliegen, wodurch die Mehrdeutigkeit vollständig vermieden wird.
quelle
Dog
eine Instanzmethode aufgerufen würdeCreate
, aber Sie würden an diesem Punkt in einige ziemlich schreckliche Codierungspraktiken eintauchen.Dies ist nicht nur eine vernünftige Praxis, sondern die Sprache wurde speziell dafür entwickelt. Durchsuchen Sie die C # -Spezifikation nach "Color Color" nach den Regeln und einer Begründung und suchen Sie nach
http://blogs.msdn.com/b/ericlippert/archive/2009/07/06/color-color.aspx
für einige interessante Eckfälle, die sich aus dieser Entscheidung ergeben.
Nennen Sie eine Eigenschaft unter keinen Umständen "DogObject", um zu vermeiden, dass sie den gleichen Namen wie ihr Typ hat. Dies steht in direktem Widerspruch zu den Rahmenkonstruktionsrichtlinien.
quelle
Color
), erscheint eine solche Verwendung angemessen. Ich mag es jedoch nicht so sehr mit veränderlichen oderIDisposable
Typen. Bezieht sich "ein SteuerelementFont
" auf die Aspekte des Zustands, die von der Eigenschaft eingekapselt werden, oder auf die Instanz,Font
die vom Eigenschafts-Getter identifiziert wurde?Es ist völlig in Ordnung, es so zu nennen,
Dog
und genau das empfiehlt Microsoft in den Framework-Benennungsrichtlinien :Und hier ist das Beispiel, das sie in der obigen Anleitung verwenden:
quelle