Краткий ответ:
Префикс члены и параметры с "m_
" и "p_
" или "s_
", если элемент статический.
Не украшайте свойства или localals , и когда вы чувствуете, что должны назвать их одинаково (игнорируя регистр), разрешите конфликт, добавив в свойствах префикс "this.".
Пояснение:
Учтите, что существует как минимум ЧЕТЫРЕ (4) различных категории читаемых / присваиваемых имен, которые необходимо различать: Локальные переменные , Переменные-члены (экземпляр и статические), Свойства , а метод Параметры . Все четыре категории могут появляться в одном кодовом блоке, и поэтому каждая из них нуждается в четких отличительных характеристиках.
Значимый префикс может одновременно различать переменные и , раскрывающие их область видимости, такую как m_ (member), s_ (static), p_ (параметр), оставляя открытые свойства и локальные переменные простыми без префиксов и без беспокоиться о чувствительности к регистру. Если по какой-либо причине вы должны назвать local так же, как и свойство, без учета регистра, просто добавьте префикс в свойство this.
Конфликты именования между Локальными переменными и Параметры не встречаются, потому что их нельзя назвать одинаковыми (компилятор поймает повторяющееся определение). То же самое касается переменных-членов и Properties . Параметры и члены с префиксом «p_» и «m_» соответственно не будут конфликтовать, а конфликты между локальными элементами и свойствами без префикса можно разрешить, добавив «this». к свойствам.
Альтернативы моим предложениям не очень приятные: используйте чувствительность к регистру (плохая идея, поскольку не все языки CLR чувствительны к регистру), используйте подчеркивания сами по себе (также плохо, так как это может противоречить стандартам и не говорит вам о черт возьми), или используйте разные имена в целом (может быть трудоемким, сложным и выглядеть произвольно).