比如我有一个枚举类型,类型名称是ListStyle
public enum ListStyle{
...
}
在类Goods的一个成员变量_listStyle是ListStyle枚举类型
public class Goods{
...
public ListStyle _listStyle;
}
很多时候需要将这个成员变量封装成一个属性,属性名称通常是成员变量名称的首字母大写形式,这时候问题就来了,这个属性名称跟枚举类型名称ListStyle重名了
public ListStyle ListStyle
{
set { _listStyle = value; }
get { return _listStyle; }
}
求经验
------解决思路----------------------
public enum ListStyleEnum{
...
}
那就加Enum区分
------解决思路----------------------
一般public ListStyle ListStyle 这样的属性声明没有问题。
只有ListStyle枚举和ListStyle属性定义在同一个名字空间下才会有问题,比如:
public class My
{
public enum ListStyle {}
public ListStyle ListStyle {get; set;} //<---名字冲突
}
public enum ListStyle {}
public class My
{
public ListStyle ListStyle {get; set;} // 没有问题
}
另,sunny906朋友4楼的例子不太好。根据微软命名建议(http://msdn.microsoft.com/en-us/library/4x252001%28VS.71%29.aspx),对可组合的枚举用复数,而对普通枚举用单数。
[Flags]
enum AccessRights // 可组合,用复数
{
Read = 1,
Write = 2,
Exec = 4,
}
enum Alignment
{
Left,
Right,
Center
}