Ich weiß, es ist eine Debatte/Meinung zu this
Schlüsselwort oder in Bezug auf private Felder/Eigenschaften unterstreichen (und ich werde erwähnen, ich bin fest auf .NET 2.0)Namenskonventionen in C# - Globale Variablen
Persönlich bevorzuge ich this
, aber es gibt Zeiten, die Sie nicht verwenden können, zum Beispiel wenn Sie eine globale Variable innerhalb einer statischen Methode referenzieren müssen. Nun, dann sind wir gezwungen, den Unterstrich zu verwenden (vorausgesetzt, wir haben nur 2 Wahlmöglichkeiten, this
oder Unterstrich). Das heißt, wenn meine Klasse statische Methoden verwendet, kann ich this
im gesamten Dokument nicht verwenden.
Nun habe ich die naming guidelines gelesen und verwendet StyleCop, beide würde ich eher nicht den Unterstrich verwenden, aber mein Resharper besteht ziemlich auf die Verwendung von _.
Ich glaube nicht, dass es richtig ist, eine Klasse verwenden die _ und die nächste Klasse verwenden this
einfach zu berücksichtigen, wenn die Klassen nicht statische und statische Methoden mischen! Der Rat hier auf SO ist, zu einer Implementierung/einem Stil beizubehalten, aber ich weiß nicht, ob das bedeutet, dass ich Microsoft ignorieren sollte (und ich weiß, dass MS ihren eigenen Regeln nicht immer folgen)!
Es wurde vorgeschlagen, etwas anderes anzuhängen, ähnlich dem Ungarischen, aber Präfix mit globVariableName, wobei glob global anzeigt. Ich hasse diese Idee, sie ist zu maßgeschneidert und wird für keinen anderen Entwickler außerhalb meines Teams offensichtlich sein.
Also, meine Frage ist, was ist der beste Weg, um globale Variablen konsequent zu definieren? Da sie Guides benennen, kann ich sie einfach ignorieren (mindestens _ kann konsistent verwendet werden, aber es fühlt sich falsch an, den Rat der Ersteller der Sprache zu ignorieren).
In C++ 'm_' war die 'Konvention', Tagung im loste Sinn des Begriffs ... – MoonKnight
Mit 'globaler Variable', denke ich, dass Sie eine geschützte oder private Variable meinen, die 'statisch' oder 'const' ist. Wenn das der Fall ist, gehen sie mit PascalCase, wenn sie privat/geschützt sind, sollten sie nicht. Ich sehe dort keinen Konflikt. – istepaniuk
Ich sehe nicht, wie dies nicht zu einer ausgedehnten Diskussion werden kann. Ich schlage vor, diese Frage auf http://programmers.stackexchange.com/ zu stellen, da Sie keine ** spezifische ** Frage zu Ihrem eigenen Code haben. Ich muss Ihr Klassendesign in Frage stellen, wenn Sie eine Variable haben müssen, um ein Objekt innerhalb einer statischen Methode zu referenzieren. Scheint die statische Methode sollte ein Variablenname sein, der ein beliebiges gültiges Objekt beschreibt. ** Mit anderen Worten, vielleicht verwendet eine globale Variable in einem Fall wie diesem das gesamte Problem. ** –