2

想象一下我创建了这个类:

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

在 Visual Studio 中不难看出哪个“Brush”是类,哪个是属性。但是有件事告诉我,以属性的类命名并不是最佳实践。你会如何命名这个属性?

更新关于命名的另一个问题:你如何命名数组?用复数还是用单数?

4

5 回答 5

20

我会称之为Brush开发类库的设计指南实际上说:

考虑赋予属性与其类型相同的名称

(在关于命名类型成员的部分中)。声明后面的文本建议对 Enum 类型的属性执行此操作,但您可以在 .NET 框架中为其他类型的对象找到大量这种方法的示例,例如类的BrushColor属性Pen

无需担心,如果Brush是您的属性的描述性名称,您应该使用该名称,特别是因为它甚至会遵循您可以在框架中看到的命名模式。

于 2009-06-07T22:42:43.097 回答
5

FillBrush 是一个很好的描述性名称(我赞成),但老实说,在它真正成为一个真正的问题之前不要担心它。在你的情况下,它可能不是最好的名字,但如果它最好的名字,我会保留它,直到上下文另有规定。我有几个例子,其中类名和属性名相同,但由于属性通常由变量名(或this.)限定,所以我不太担心。

我发现以下内容非常易读:

var poly = new ColoredPolygon();
poly.Brush = Brushes.Green;
于 2009-06-07T22:13:46.197 回答
4

怎么样FillBrush

于 2009-06-07T22:07:26.833 回答
0

以及FillBrush,在另一个答案中提到,您可能会考虑添加一种仅设置填充的方法Color,这样用户就不必为了设置纯色填充而构建画笔。

于 2009-06-07T22:12:18.600 回答
0

关于 Fredrik 的建议(Brush Brush)以及 MS 的命名建议,您可以考虑为属性赋予与其类型相同的名称,但您不能总是这样做。例如,如果您Something在一个类中定义了一个名为的公共枚举,那么该类也不能有一个名为 的属性Something

您可以拥有一个名为 的属性Brush,大概是因为Brush它在不同的命名空间/类中定义,然后编译器足够聪明,可以弄清楚Brush您的意思。

于 2009-06-12T10:56:21.407 回答