Помогите мне назвать это свойство (C #) - PullRequest
2 голосов
/ 08 июня 2009

Представьте, что я создал этот класс:

 public class ColoredPolygon
 {
     public Point[] Vertices { get; set; }
     public Brush Brush { get; set; }
 }

Внутри Visual Studio не сложно понять, какой "Кисть" является классом, а какой - свойством. Но что-то подсказывает мне, что не рекомендуется называть свойство в честь его класса. Как бы вы назвали это свойство?

Обновление Еще один вопрос о присвоении имен: Как вы называете массивы? Во множественном числе или в единственном числе?

Ответы [ 5 ]

20 голосов
/ 08 июня 2009

Я бы назвал это Brush. Руководство по разработке библиотек классов фактически гласит:

Подумайте над тем же имя в качестве типа

(в разделе об именах членов типа ). Текст, следующий за оператором, предлагает сделать это для свойств, относящихся к типам Enum, но вы можете найти множество примеров этого подхода для других типов объектов в .NET Framework, например, для свойств Brush и Color Pen класс.

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

5 голосов
/ 08 июня 2009

FillBrush - хорошее, описательное имя (и я проголосовал), но, честно говоря, не беспокойтесь об этом, пока оно не станет настоящей проблемой. В вашем случае это может быть не лучшее имя, но если бы оно было лучшим именем, я бы оставил его до тех пор, пока контекст не определит иначе У меня есть несколько примеров, когда имя класса и свойства совпадают, но поскольку свойство обычно определяется именем переменной (или this.), я не слишком беспокоюсь об этом.

Я нахожу следующее довольно читабельным:

var poly = new ColoredPolygon();
poly.Brush = Brushes.Green;
4 голосов
/ 08 июня 2009

Как насчет FillBrush?

0 голосов
/ 12 июня 2009

Что касается предложения Фредрика (Brush Brush), а также предложений MS по присвоению имен, вы можете рассмотреть возможность присвоения свойству того же имени, что и его тип, но вы не всегда можете это сделать. Если, например, у вас есть общедоступное перечисление с именем Something, определенное в классе, то этот класс также не может иметь свойство с именем Something.

У вас может быть свойство с именем Brush, предположительно потому, что Brush определено в другом пространстве имен / классе, и компилятор тогда достаточно умен, чтобы определить, какой Brush вы имеете в виду.

0 голосов
/ 08 июня 2009

Помимо FillBrush, упомянутого в другом ответе, вы можете подумать о добавлении способа установки только заливки Color, чтобы пользователю не пришлось создавать кисть только для установки заливки сплошным цветом.

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