Например, такой класс:
class Dog { } //never mind that there's nothing in it...
а затем свойство как:
Dog Dog { get; set; }
Мне сказали, что если я не могу придумать более оригинальное название для этого, то я должен использовать:
Dog DogObject { get; set; }
Любые мысли о том, как назвать их лучше?
c#
naming
properties
Буря Кирнан
источник
источник
Person
класс, содержащийDog
свойство с именемDog
Ответы:
Это может быть плохой практикой, если бы не тот факт, что уже достаточно очевидно, о чем вы говорите в своем коде, основываясь на контексте.
Какой конструктор типа? Какой объект? Не смущен? Хорошо, как насчет
Какой объект? Какой метод статической фабрики для типа? Все еще не смущен? Я так не думаю.
Единственный раз, когда я видел, что это потенциальная проблема, это когда дерево пространства имен становится довольно сложным, и компилятор не может понять неоднозначность, и в этом случае вы получаете что-то вроде
В любом случае это должно происходить только с автоматическими свойствами (и, возможно, с перечислениями), поскольку имена локальных переменных всегда находятся в camelCased, полностью избегая неоднозначности.
источник
Dog
будет вызван метод экземпляраCreate
, но в этот момент вы погрузитесь в довольно ужасные методы кодирования.Мало того, что это разумная практика, язык был специально разработан для этого. Найдите в спецификации C # «Color Color» правила и обоснование и посмотрите
http://blogs.msdn.com/b/ericlippert/archive/2009/07/06/color-color.aspx
для некоторых интересных угловых случаев, которые возникают из этого решения.
Ни при каких обстоятельствах вы не должны называть свойство «DogObject», чтобы не называть его таким же, как его тип; это прямо противоречит руководству по проектированию рамок.
источник
Color
), такое использование кажется разумным. Мне не очень нравится, хотя, с изменчивыми илиIDisposable
типами. Относится ли «элемент управленияFont
» к тем аспектам состояния, которые инкапсулированы свойством, или к экземпляру,Font
идентифицированному получателем свойства?Это прекрасно,
Dog
и это то, что Microsoft рекомендует в Руководстве по именованию :И вот пример, который они используют в приведенном выше руководстве:
источник