2010-12-10 113 views
0

在以下人为设计的C#代码中,我不喜欢枚举名称与属性名称相同。如何命名枚举与属性

public enum CollarType 
{ 
    Classic, 
    VNeck 
} 

public class Shirt 
{ 
    public CollarType CollarType { get ... } 
} 

在旧时代,当越来越多的人使用匈牙利/其他奇怪的命名一样class CShirt,这种冲突没有发生。但今天我不断遇到它。

你如何处理这种情况?你是否认同这么多事物具有相同的名称,或者你有更好的命名方案?

+1

重复:http://stackoverflow.com/questions/495051/c-naming-convention-for-enum-and-matching-property – wj32 2010-12-10 10:49:30

+1

这编译得很好,它是在.NET框架中的常见模式。你不喜欢它什么? – 2010-12-10 10:56:16

回答

1

使枚举名称与属性名称相同的唯一限制是您无法将枚举定义为具有该属性的类的嵌套类型。

E.g.这样做工作:

public class Shirt 
{ 
    public enum CollarType 
    { 
     Classic, 
     VNeck 
    } 

    public CollarType CollarType { get ... } 
} 

然而,从积极的一面,它使代码更易读恕我直言,因为它清楚地<显示枚举值和资源之间的关联:

myShirt.CollarType = CollarType.Classic; 
+0

+1显示一个例子 – Tony 2010-12-10 22:42:07

+0

顺便说一句,这正是提示这个问题的情况。 – tenfour 2010-12-22 01:03:07

1

BCL中的约定只是与它一起运行。除nested enums之外,它不会导致任何含糊之处。

1

是的,拥有与其类型名称相同的属性是绝对正常的。