使用Enum或flag作为用户控件属性

时间:2016-03-01 09:40:25

标签: c# asp.net enums user-controls

我有一个Web用户控件,其Type属性是一个标志:

在服务器端代码中,我可以像下面那样分配它:

Type = GraphTypes.Comment | GraphTypes.Like;

但添加用户控件时如:

<uc:Graph Type="Comment|Like" runat="server" />

我收到了一个错误:

  

无法从'Type'属性的字符串表示'Comment | Like'创建'GraphTypes'类型的对象。

如何在我的代码中指定Comment|Like的值?

1 个答案:

答案 0 :(得分:0)

假设您的GraphTypes Enum看起来像

[Flags]
enum GraphTypes
{
    Comment = 1,
    Like = 2,
    Foo = 4,
    Bar = 8
}

你只需要替换

Type="Comment|Like"

Type="Comment,Like"

等于GraphTypes Type = GraphTypes.Comment | GraphTypes.Like;GraphTypes Type = (GraphTypes)3;