Поскольку стандартное соглашение С# состоит в том, чтобы загладить первую букву общедоступных свойств, старое соглашение об исходном капитале типа С++ для имен типов и начальное строчное значение для имен не-типа не предотвращает столкновения классического имени, где наиболее очевидное имя объекта соответствует имени типа:
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; }
}
Кажется, он компилируется, но чувствует себя так неправильно. Есть ли рекомендация по именованию, чтобы избежать этого?