我有一个带标志的枚举:
[Flags]
public enum Border
{
Top = 1,
Bottom = 2,
Right = 4,
Left = 8,
All = 15
}
我有一个属性类型(边框)的用户控件:
MyUserControl.ascx
public Border Borders {get;set;}
MyWebForm.aspx
在我的网络表单中使用myusercontrol,例如:
<uc1:MyUserControl runat="server" Borders="Top,Bottom,Right"/>
如何设置边框属性除了一个项目之外的所有项目,如下面的文字:
<uc1:MyUserControl runat="server" Borders="All,~Left"/>
答案 0 :(得分:0)
您必须创建一个新的枚举值,如下所示
[Flags]
public enum Border
{
Top = 1,
Bottom = 2,
Right = 4,
All_Except_Left = 7,
Left = 8,
All = 15
}
标志的概念是它按位运行。每个位代表一个枚举值。要使用值的组合,您必须打开必要的位(我认为这是关闭开关,因此术语&#39;开启&#39;)。所以你的要求用比特术语看起来就像下面的
Top = 0001
Bottom = 0010
Right = 0100
All_Except_Left = 0111
Left = 1000
All = 1111
另请阅读此MSDN article,这有助于您更好地理解它。