Предпочтение именования для полей класса в C #?

Я видел несколько соглашений об именах, используемых для полей в C #. Они есть:

Подчеркивание

public class Foo
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
}

Это

public class Foo
{
    private string name;
    public string Name
    {
        get { return this.name; }
        set { this.name = value; }
    }
}

Префикс участника

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

Какой ты предпочитаешь? Есть ли другой способ, которым ты предпочитаешь это делать? Просто любопытно узнать, что думают другие, - это лучшая практика.


person Brian Genisio    schedule 12.05.2009    source источник
comment
Дублируйте многие, в том числе: stackoverflow.com/questions/450238/, stackoverflow.com/questions/111605/ и т. д.   -  person Marc Gravell    schedule 12.05.2009
comment
и префикс stackoverflow.com/questions/833811/ (много, много, еще ...)   -  person Marc Gravell    schedule 12.05.2009
comment
Согласованный. Почему-то при поиске не нашла. Также голосование за закрытие.   -  person Brian Genisio    schedule 12.05.2009
comment
stackoverflow.com/questions/762025   -  person Greg D    schedule 12.05.2009


Ответы (4)


Я обычно использую:

public class Foo
{
    private string name;
    public string Name
    {
        get { return name; }
        set { name = value; }
    }
}

просто удалил это. так как это довольно избыточно

person Fredrik Leijon    schedule 12.05.2009

Лучше всего выбрать один и быть последовательным.

Лично я предпочитаю "". Мне всегда казалось, что «m» делает «членство» чем-то особенным, как если бы оно было на пользу разработчикам, пришедшим из среды, где «членов» не существует. Вроде то же самое и с «этим». Я бы предпочел вместо этого просто «имя».

person John Saunders    schedule 12.05.2009

1) Это чисто стилистический / субъективный вопрос, поэтому один из них, в общем, ничем не хуже другого. (Я уточняю это, потому что в последний раз, когда я отвечал на такой вопрос, даже с почти идентичной квалификацией, у меня были самые разные люди, которые голосовали за меня и говорили мне, что я был неправ.)

2) Использую метод this. Это метод по умолчанию, используемый StyleCop, и на данный момент у меня нет другого доступного мне инструмента анализа исходного кода. Это вполне приемлемо.

person Greg D    schedule 12.05.2009

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

person Garry Shutler    schedule 12.05.2009