С тех пор, как я узнал об автоматических свойствах, я пытаюсь использовать их везде. Прежде всегда был бы член парламента, не занимающий официального поста для каждого свойства, у меня было это, я буду использовать в классе. Теперь это заменяется автоматическим свойством. Я использую свойство в своем классе способами, которыми я обычно использовал бы нормальное членское поле. Проблема состоит в том, что свойство запускается с Капитолия, который заставляет его выглядеть немного странным, по моему скромному мнению, при использовании его этим способом. Я не возражал против этого, свойства запускаются с Капитолия прежде, потому что они всегда были бы позади "точки". Теперь я снабдил префиксом все свойства, с которыми я использую внутренне 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" в данный момент)
Ваш код в основном в порядке, попробуйте выяснить, какой файл ответственен за повреждённую застежку -молнию. Проверьте, всегда ли digityFile.getFile () возвращает в FileInputStream допустимый и доступный аргумент. Просто добавьте немного журнала в свой код, и вы узнаете, что не так.
-121--1526409-CGLIB позволяет изменять код метода во время выполнения
-121--4577956-Да, существует «стандартный способ сделать это»: прописная буква и этот префикс считаются хорошей практикой кодирования. При использовании какого-либо инструмента для тестирования кода на соответствие требованиям к кодированию, например, ReSharper или собственный StyleCop компании Microsoft, появится предупреждение, если эта ссылка не используется, или если свойства не начинаются с капитала.
Ваши свойства являются общедоступными. Любое публичное свойство, поле или метод должны начинаться с капитала.
Любое свойство, поле или метод, вызываемые в собственном классе, который является частью этого класса, должны иметь префикс this-reference для простоты чтения.
Обновить : конечно, мнения разнятся. Мне нравится бить это.
и затем, после точки, видеть только членов, а не видеть все ключевые слова, когда просто нажимая ctrl-пробел без какого-либо префикса. Это мне помогает. Но, в конце концов ( цитата отсюда ):
Каким бы ни было ваше мнение, важное дело в том, что все люди тесно в сотрудничестве с проектом используйте одинаковые стандарты форматирования, независимо от того, какие эти стандарты являются.
Дополнительные ссылки:
Microsoft использует заглавную букву практически в любом имени и в свойствах.
Подробнее рекомендации здесь .
Я настоятельно рекомендую использовать " это". ' там, где это возможно. Рамочное руководство по проектированию рекомендует эту практику. Оно позволяет узнать область применения с точки зрения удобочитаемости и помогает избежать глупых ошибок, которые компилятор может допустить при компиляции.
И я настоятельно рекомендую никогда не использовать это, так как это только снижает ясность. Если вы действительно оказываетесь в ситуации, когда это необходимо, чтобы избежать столкновений, я бы рекомендовал переименовать одно из полей/свойств/переменных.
Единственное место, где я нахожу это приемлемым, это если это часть публично обнаженного API, где переименование может привести к изменению брейка.
Да, существует «стандартный способ сделать это»: прописная буква и этот префикс считаются хорошей практикой кодирования. При использовании какого-либо инструмента для тестирования кода на соответствие требованиям к кодированию, например, ReSharper или собственный StyleCop компании Microsoft, появится предупреждение, если эта ссылка не используется, или если свойства не начинаются с капитала.
Ваши свойства являются общедоступными. Любое публичное свойство, поле или метод должны начинаться с капитала.
Любое свойство, поле или метод, вызываемые в собственном классе, который является частью этого класса, должны иметь префикс this-reference для простоты чтения.
Обновить : конечно, мнения разнятся. Мне нравится бить это.
и затем, после точки, видеть только членов, а не видеть все ключевые слова, когда просто нажимая ctrl-пробел без какого-либо префикса. Это мне помогает. Но, в конце концов ( цитата отсюда ):
Каким бы ни было ваше мнение, важное дело в том, что все люди тесно в сотрудничестве с проектом используйте одинаковые стандарты форматирования, независимо от того, какие эти стандарты являются.
Больше ссылок:
Microsoft об использовании заглавной буквы практически в любом имени и в свойствах конкретно.
Подробнее рекомендации здесь .
Настоятельно рекомендую использовать ' это. ', где это возможно. Руководство по разработке рамок рекомендует эту практику. Она позволяет понять область с точки зрения читаемости и позволяет избежать глупых ошибок, о которых компилятор может сообщать во время компиляции.
-121--3879861- В первом примере параметр bar
лексически затеняет поле bar
из экземпляра. Таким образом, вы должны использовать это
для значения.
Во втором примере у вас нет такой двусмысленности, и, следовательно, не требуется значения (т.е. это
). Вы, однако, все еще можете префиксировать его, если это ваша чашка чая.:)