Что такое хорошее соглашение об именах, чтобы отличать имя класса от свойства в C #? - PullRequest
10 голосов
/ 19 мая 2010

Я сталкиваюсь с этим достаточно часто, так что я думал, что увижу, что другие скажут по этому поводу.

Используя соглашения StyleCop, я обнаружил, что у меня часто есть имя свойства, которое трудно сделать отличным от имени класса, к которому он обращается. Например:

public class ProjectManager
{
 // Stuff here
}

public class OtherClass
{
     private ProjectManager ProjectManager { get; set; }
}

Он компилируется и запускается, но, похоже, это будет простой способ запутать вещи, даже с использованием «this».

Ответы [ 3 ]

11 голосов
/ 19 мая 2010

Это на самом деле очень распространенный шаблон в программировании .Net. Особенно это касается типов и членов enum, поскольку это рекомендуемый способ программирования в .Net Design Guidelines.

4.0 ссылка на руководство по проектированию

Хотя это может немного сбивать с толку, вы уже не раз видели это несколько раз. Инструменты хорошо поддерживают этот шаблон, и, учитывая, что один является типом, а другой - экземпляром, его трудно случайно инвертировать, не вызывая ошибки компиляции.

4 голосов
/ 19 мая 2010

Это типичное соглашение об именах, когда в любом данном классе будет только одно свойство типа ProjectManager. Это перестает сбивать с толку, потому что нет другого использования типа ProjectManager.

Конечно, если есть другие варианты использования, вам нужны другие имена.

1 голос
/ 19 мая 2010

Я согласен с другими ответами. Ради полноты иногда я нахожу способ обобщить имя класса немного больше. Я понимаю, что ваш пример был просто примером, но один из способов сделать это будет:

public class Person
{
  // Stuff here
}

public class OtherClass
{
  private Person ProjectManager { get; set; }
}

Это помогает сделать его немного более читабельным. Но вполне допустимо (и даже рекомендуется) иметь одинаковые имя класса и свойство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...