C# Asp.net用户控件枚举标志属性除一项外是否所有?

C# Asp.net用户控件枚举标志属性除一项外是否所有?,c#,asp.net,enums,webforms,C#,Asp.net,Enums,Webforms,我有一个带有标志的枚举: [Flags] public enum Border { Top = 1, Bottom = 2, Right = 4, Left = 8, All = 15 } 我有一个用户控件,其属性类型为(边框): MyUserControl.ascx MyWebForm.aspx 在my web窗体中,使用myusercontrol,例如: <uc1:MyUserControl runat="server" Borders="To

我有一个带有标志的枚举:

[Flags]
public enum Border
{
    Top = 1,
    Bottom = 2,
    Right = 4,
    Left = 8,
    All = 15
}
我有一个用户控件,其属性类型为(边框):

MyUserControl.ascx

MyWebForm.aspx

在my web窗体中,使用myusercontrol,例如:

<uc1:MyUserControl runat="server" Borders="Top,Bottom,Right"/>

如何设置除一个项目外的所有项目的Borders属性,例如:

<uc1:MyUserControl runat="server" Borders="All,~Left"/>

您必须创建一个新的枚举值,如下所示

[Flags]
public enum Border
{
    Top = 1,
    Bottom = 2,
    Right = 4,
    All_Except_Left = 7,
    Left = 8,
    All = 15
}
Top = 0001

Bottom = 0010

Right = 0100

All_Except_Left = 0111

Left = 1000

All = 1111
flags的思想是按位工作。每一位代表一个枚举值。要使用这些值的组合,您必须打开必要的位(我认为这是开-关开关,因此术语“打开”)。因此,您的需求在bit术语中如下所示

[Flags]
public enum Border
{
    Top = 1,
    Bottom = 2,
    Right = 4,
    All_Except_Left = 7,
    Left = 8,
    All = 15
}
Top = 0001

Bottom = 0010

Right = 0100

All_Except_Left = 0111

Left = 1000

All = 1111

另外,请通读这篇文章,这将有助于您更好地理解它。

谢谢,但我不想做这项工作,在c中#对于这种方法非常简单的使用(全部&~左),在没有您的方法的情况下,在aspx用户控件属性中做什么?