Ich stoße oft genug darauf, dass ich dachte, ich würde sehen, was andere darüber zu sagen haben.Was ist eine gute Benennungskonvention, um einen Klassennamen von einer Eigenschaft in C# zu unterscheiden?
Mit den StyleCop-Konventionen finde ich oft einen Eigenschaftsnamen, der sich kaum von dem Klassennamen unterscheidet, auf den er zugreift. Zum Beispiel:
public class ProjectManager
{
// Stuff here
}
public class OtherClass
{
private ProjectManager ProjectManager { get; set; }
}
Es kompiliert und ausgeführt wird, aber scheint, wie es eine einfache Möglichkeit wäre, die Dinge zu verwirren, auch bei der Verwendung von „this“.
Das Color Color-Problem. Wenn der beste Name für die Eigenschaft * ist * der Klassenname, gehen Sie mit. Andernfalls könnten Sie sich angewöhnen, Ihre Eigentums- und/oder Klassennamen unnötig zu komplizieren. –
Ich stimme zu, es verwirrt mich auch. this.ProjectManager löst es jedoch ziemlich gut. – kenny
Tatsächlich ist dies das berühmte "Color Color" -Problem. Die C# -Sprache wurde sorgfältig entworfen, so dass Sie mit diesem Muster durchkommen können, aber es verursacht einige interessante Eckfälle. Für eine Analyse der Konsequenzen dieser Regeln siehe meinen Artikel: http://blogs.msdn.com/ericlippert/archive/2009/07/06/color-color.aspx –