Früher haben wir ungarische Noten geschrieben. Das ist jetzt passé und ich benutze es größtenteils nicht mehr, aber ich finde immer noch Verwendung für das m_
Präfix, um Mitgliedsfelder anzugeben.
Für mich, wenn ich den Code einer anderen Person durchlese und Folgendes sehe:
count = 3;
Ich count
gehe davon aus, dass dies eine lokale Variable für diese Funktion ist, und mache etwas, das an anderer Stelle in der Funktion verwendet wird. wenn ich das sehe:
m_count = 3;
Mir wird sofort klar, dass ich den Status des Objekts aktualisiere.
Nach den Microsoft-Richtlinien ist dies die falsche Vorgehensweise. Ich soll meine nicht öffentlichen Felder genauso benennen wie temporäre Variablen, die in der Funktion definiert sind. Nein m_
, nicht einmal ein einfacher Unterstrich.
Ja, wir können unseren eigenen Codierungsstil definieren, aber dann muss ich mich mit verschiedenen statischen Codeanalyse-Tools herumschlagen, um sie davon zu überzeugen, dass unsere Vorgehensweise in Ordnung ist.
Ich bin glücklich, zum Microsoft-Stil zu wechseln, aber ich würde gerne wissen, warum die Dinge so sind, wie sie sind.
Warum wird es jetzt als schlecht angesehen, feststellen zu können, ob eine Variable eine lokale Funktion oder ein Member ist?
PS Dies ist sehr ähnlich zu Was ist die angesehenen aktuellen Best Practices in Bezug auf das Schlüsselwort "this" vor Feld und Methoden in c #? , aber ich frage nach m_
nichtthis.
PPS Siehe auch Warum hat Microsoft Parameter, lokale Variablen und private Felder mit der gleichen Namenskonvention versehen?
count
es nicht nur aus dem Nichts heraus erschien, da es in der Methode nicht deklariert wurde. Ehrlich gesagt ist das Argument "out of IDE" WIRKLICH schwach. Zumal es sogar Code-Review-Tools gibt, die in der IDE funktionieren.
this
Schlüsselwort nicht? Könnten Sie nicht auf Mitglieder verweisen, die verwendenthis
, wiethis.count
?