例如本人有一个枚举类型,类型名称是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 ListStyle{
…
}
在类Goods的一个成员变量_listStyle是ListStyle枚举类型
public class Goods{
…
public ListStyle _listStyle;
}
很多时候需要将这个成员变量封装成一个属性,属性名称通常是成员变量名称的首字母大写形式,这时候问题就来了,这个属性名称跟枚举类型名称ListStyle重名了
public ListStyle ListStyle
{
set { _listStyle = value; }
get { return _listStyle; }
}
求经验
解决方案:20分
解决方案:20分
一般public ListStyle ListStyle 这样的属性声明没有问题。
只有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/4×252001%28VS.71%29.aspx),对可组合的枚举用复数,而对普通枚举用单数。
[Flags] enum AccessRights // 可组合,用复数 { Read = 1, Write = 2, Exec = 4, } enum Alignment { Left, Right, Center }