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