C#中的枚举 - 赋值

Mil*_*lan 7 c# enums

如何在c#中做到这一点?

让我们说myclass有:

private enum Days{};
Run Code Online (Sandbox Code Playgroud)


1)如何在构造函数的帮助下将数据添加到myclass中的枚举?如:

myclass my = new myclass(Monday,Friday);
Run Code Online (Sandbox Code Playgroud)

这样类中的枚举就会得到"星期一,星期五"的属性.


2)一旦初始化,是否还可以为类中的enume创建属性?例如 :

my.Days = new enum Days(Tuesday); //where the old settings are replaced.
Run Code Online (Sandbox Code Playgroud)

编辑:

我想做的是:

在主要课程中有一个枚举,如枚举天{星期一,星期二,星期三,星期四,星期五};

我也会在myclass(enum?)中有一些东西,这样我就可以将Days enum中的一些值分配给myclass internal(enum?),只有一些但不是所有的值枚举.

所以我可以得到一个myclass,其中包含一个带有"星期一,星期二"的(枚举?),而有些myclass222包含(枚举?)"星期五"等.

我不知道枚举是否是在myclass类中执行此操作的正确方法?

Fre*_*örk 11

你的问题有些模糊,但如果你实际上是在询问如何构造一个可以组合值的枚举,那么答案就是用Flags属性来装饰它:

[Flags]
public enum Days
{
    None = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您有该类型的某个成员,则Days可以为其分配组合值:

Days someDays = Days.Monday | Days.Wednesday;
Run Code Online (Sandbox Code Playgroud)


根据要求更新 ; 这里是如何检查是否设置了某个值:

bool wednesdayIsSet = (someDays & Days.Wednesday) == Days.Wednesday;
Run Code Online (Sandbox Code Playgroud)

回答在另一个类中定义枚举时如何在一个类中创建枚举成员的问题,如下所示:

public class SomeClass
{
    [Flags]
    public enum Days
    {
        None = 0,
        Monday = 1,
        // and so on
    }
}

public class SomeOtherClass
{
    public SomeClass.Days SomeDays { get; set; }
}
Run Code Online (Sandbox Code Playgroud)


cit*_*nas 8

1)你不能.枚举必须在编译时定义

看起来你可能会寻找一个AttributeCollection.(看看FredrikMörk的回答,这是我试图谈论的内容;))

2) my.Days = Days.Tuesday