Всегда снабжает префиксом (автоматические) свойства это-ключевое-слово, которое рассматривают хорошей практикой?

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

Моя дилемма - это, прежде чем я был всегда немного против добавления префикса всего использования внутренних участников с this., если "необходимый" (как в методе set или конструкторе). Таким образом, я - вид поиска второго мнения об этом. Существует ли стандартный хороший способ сделать это? Я должен просто прекратить жаловаться (у меня есть тенденция быть "муравьем humper" (голландское выражение))?

Прежде:

class Foo
{
    private Bar bar;
    public Bar Bar { get { return bar; } }

    public Foo(Bar bar)
    {
        this.bar = bar;
    }

    public void DoStuff()
    {
        if(bar != null)
        {
            bar.DoMethod();
        }
    }
}

После:

class Foo
{
    public Bar Bar {get; private set;}

    public Foo(Bar bar)
    {
        this.Bar = bar;
        // or
        Bar = bar;
    }

    public void DoStuff()
    {
        if(this.Bar != null)
        {
            this.Bar.DoMethod();
        }
        // or
        if(Bar != null)
        {
            Bar.DoMethod();
        }
    }
}

Обновление

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

Дополнительное примечание: то, что также распространено назвать свойство тем же как класс (public Bar Bar { get; private set; }) также заставляет меня склоняться к добавлению префикса. Каждый раз я ввожу Bar.DoMethod(), Я чувствую, что это похоже на статический метод. Даже при том, что VS окрасил бы Bar если это был статический метод, и у Вас не может быть статического метода и метода экземпляра с той же подписью. Когда это окрашено, ясно, что это - статический метод, но когда это не окрашено, не на 100% ясно, что это не статический метод. Вы могли, например, просто пропускать a using оператор, но также и просто потому что я не привык к необходимости связать не быть окрашенным с тем, является ли это статическим вызовом или нет. Прежде чем я немедленно видел бы его капитализацией первой буквы в случае участника или "точкой" в случае свойства (Например, "точка" после foo в (Foo)foo.Bar.DoMethod()).

(Трудный выбрать "Accepted answer" в данный момент)

7
задан Abel 18 January 2010 в 14:22
поделиться

4 ответа

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

-121--1526409-

CGLIB позволяет изменять код метода во время выполнения

-121--4577956-

Да, существует «стандартный способ сделать это»: прописная буква и этот префикс считаются хорошей практикой кодирования. При использовании какого-либо инструмента для тестирования кода на соответствие требованиям к кодированию, например, ReSharper или собственный StyleCop компании Microsoft, появится предупреждение, если эта ссылка не используется, или если свойства не начинаются с капитала.

Ваши свойства являются общедоступными. Любое публичное свойство, поле или метод должны начинаться с капитала.

Любое свойство, поле или метод, вызываемые в собственном классе, который является частью этого класса, должны иметь префикс this-reference для простоты чтения.

Обновить : конечно, мнения разнятся. Мне нравится бить это. и затем, после точки, видеть только членов, а не видеть все ключевые слова, когда просто нажимая ctrl-пробел без какого-либо префикса. Это мне помогает. Но, в конце концов ( цитата отсюда ):

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

Дополнительные ссылки:
Microsoft использует заглавную букву практически в любом имени и в свойствах.
Подробнее рекомендации здесь .

6
ответ дан 6 December 2019 в 14:04
поделиться

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

6
ответ дан 6 December 2019 в 14:04
поделиться

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

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

2
ответ дан 6 December 2019 в 14:04
поделиться

Да, существует «стандартный способ сделать это»: прописная буква и этот префикс считаются хорошей практикой кодирования. При использовании какого-либо инструмента для тестирования кода на соответствие требованиям к кодированию, например, ReSharper или собственный StyleCop компании Microsoft, появится предупреждение, если эта ссылка не используется, или если свойства не начинаются с капитала.

Ваши свойства являются общедоступными. Любое публичное свойство, поле или метод должны начинаться с капитала.

Любое свойство, поле или метод, вызываемые в собственном классе, который является частью этого класса, должны иметь префикс this-reference для простоты чтения.

Обновить : конечно, мнения разнятся. Мне нравится бить это. и затем, после точки, видеть только членов, а не видеть все ключевые слова, когда просто нажимая ctrl-пробел без какого-либо префикса. Это мне помогает. Но, в конце концов ( цитата отсюда ):

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

Больше ссылок:
Microsoft об использовании заглавной буквы практически в любом имени и в свойствах конкретно.
Подробнее рекомендации здесь .

-121--3879860-

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

-121--3879861-

В первом примере параметр bar лексически затеняет поле bar из экземпляра. Таким образом, вы должны использовать это для значения.

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

1
ответ дан 6 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: