На C # соглашения об именах для переменных-членов - PullRequest
38 голосов
/ 04 июня 2010

Я видел совет где-то здесь на SO, чтобы не называть private/public переменные-члены так, чтобы они различались только в случае самого первого символа. Например:

private string logFileName;

public string LogFileName
{
    get
    {
        return logFilename
    ....

и: private System.Windows.Forms.MainMenu mainMenu;

и: DialogResult dialogResult = this.saveConfigFileDialog.ShowDialog();

и

public Version Version
{
    get;
    set;
}

и

    private void CheckPollingType(PollingType pollingType)
    {

Итак, я не правильно расслышал? Что-то не так с этими соглашениями об именах? Если да, то каковы лучшие способы сделать это? Ссылки, ссылки являются плюсом.

Спасибо.

Ответы [ 14 ]

1 голос
/ 04 июня 2010

Основная проблема предлагаемого соглашения об именах заключается в том, что Intellisense будет использовать личную переменную над свойством. Во многих случаях это на самом деле не проблема (на самом деле это обычно хорошая вещь), но для тех немногих случаев, когда это так, полезно использовать соглашение, которое разделяет два имени. Мне нравится m_ для приватных переменных-членов и c_ для приватных статических переменных.

1 голос
/ 04 июня 2010

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

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

Выше сказанное, это на самом деле не влияет на сценарий поддержки частного участника.

1 голос
/ 04 июня 2010

Будьте осторожны с этим сценарием, хотя:

public class MyClass {
    public int Foo { get; private set; }

    public MyClass(int foo) {
        // oops, setting the parameter to itself, not the property
        foo = foo;
    }
}

Visual Studio предупредит вас об этой ситуации, но она не является незаконной и может иногда проскальзывать.

1 голос
/ 04 июня 2010

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

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