Id vs ClassNameId для имени идентификатора класса - PullRequest
0 голосов
/ 18 августа 2010

Я нахожусь в середине дебатов здесь на работе. Скажем, у вас есть POCO с именем Person. Person имеет идентификатор. Я в лагере, который говорит, что идентификатор должен называться Id.

class Person
{
    public int Id { get; set; }
}

Другой лагерь говорит, что его следует назвать PersonId.

class Person
{
    public int PersonId { get; set; }
}

Одно правильнее другого?

Я думаю, что использование Id более читабельно и определенно меньше кода для ввода.

Аргумент против Id состоит в том, что это может сбивать с толку, потому что кто-то может не знать, принадлежит ли идентификатор Person или Address. Я думаю, что этот аргумент не имеет смысла, если вы просто называете свои переменные описательно.

Ответы [ 3 ]

1 голос
/ 18 августа 2010

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

 obj.Id         // Not good, better call it PersonId
 teamLead.Id    // Okay, quacks like a Person
 person.Id      // Okay, clear but not the greatest var name

I всегда безошибочно выбирает имена хороших переменных, мне нравится Id :)каркасные классы в значительной степени предпочитают простой идентификатор.

1 голос
/ 18 августа 2010

Даже если вы не называете свои переменные описательно, intellisense даст вам класс, если есть какие-либо сомнения. Я не знаю из "более правильного", но я лично использую Id, пока класс будет понятен во время обозримого использования. Если это ситуация, когда класс может быть неясным во время использования (как, например, в случае таблиц в базе данных или атрибутов в файле XML), тогда я использую ClassId. Однако когда дело доходит до того, что вы используете, это действительно дело вкуса, и ни один из вариантов не собирается заметно замедлять кого-либо.

0 голосов
/ 18 августа 2010

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

Я бы предпочел ID (а не Id) для идентификатора, поскольку классы являются пространствами имен (в общем смысле, не специфичными для .NET), и то, что это ID, понятно Я бы не стал сильно расстраиваться из-за PersonID (опять же, не из PersonId).

...