В C # каков общепринятый способ ссылки на свойства-члены в классе? - PullRequest
2 голосов
/ 21 января 2009

Прочитал Руководство по именованию MSDN и не смог найти четкого ответа, кроме того, что вам следует избегать подчеркивания в целом. Допустим, у меня есть следующее:

public class Employee
{
    private string m_name;  //to store property value called Name

    public string Name
    {
        get { return m_name; }
        set { m_name = value; }
    }

    public void ConvertNameToUpper()
    {
        //by convention should you use this
        return m_name.ToUpper();

        //or this
        return Name.ToUpper(); 
    }
}

Какое соглашение о присвоении имен для m_name указано выше? Например, в коде, который я наследую, я обычно вижу:

  • m_name
  • _name
  • имя
  • myName или другой случайный идентификатор

Какой из них (или другой) наиболее распространен?

В качестве продолжения в методах класса вы ссылаетесь на внутренний (частный) идентификатор или средство доступа к публичной собственности?

Ответы [ 14 ]

0 голосов
/ 22 января 2009

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

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

0 голосов
/ 22 января 2009

Я думаю, что общепринятое соглашение об именах состоит в том, чтобы сделать имя осмысленным (а код - простым и понятным). По моему мнению, если идентификаторы в моем коде нуждаются в визуальных подсказках по какой-либо причине, это слишком сложно, а имена обычно не совсем точны.

Я работал над кодом, который требовал руководства, чтобы просто прочитать ... "m" означал уровень класса, "p" означал параметр и т. Д. Соглашение об именовании было разработано для облегчения чтения кода, но оно закончилось делать наоборот, потому что разработчики исходили из того, что «хорошие» соглашения об именах означают читаемый код.

Просто убедитесь, что эта цитата Денниса Грина (бывшего тренера Аризонского кардинала) применима к вашим идентификаторам: «Это те, кем мы думали!»

0 голосов
/ 22 января 2009

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

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

0 голосов
/ 21 января 2009

С одной стороны, я согласен, что вы должны использовать стандарты компании, с другой стороны, я постараюсь придерживаться отраслевых стандартов.

...