Da die Standard-C#-Konvention darin besteht, den ersten Buchstaben von öffentlichen Eigenschaften groß zu schreiben, verhindert die alte C++-Konvention der Großschreibung für Typnamen und der Kleinschreibung für Nicht-Typnamen nicht die klassische Namenskollision, bei der der offensichtlichste Objektname mit dem Typnamen übereinstimmt:
class FooManager
{
public BarManager BarManager { get; set; } // Feels very wrong.
// Recommended naming convention?
public int DoIt()
{
// 1st and 2nd Bar Manager are different symbols
return BarManager.Blarb + BarManager.StaticBlarb;
}
}
class BarManager
{
public int Blarb { get; set; }
public static int StaticBlarb { get; set; }
}
Es scheint zu kompilieren, aber es fühlt sich so falsch an. Gibt es eine empfohlene Benennungskonvention, um dies zu vermeiden?