如何在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)
1)你不能.枚举必须在编译时定义
看起来你可能会寻找一个AttributeCollection.(看看FredrikMörk的回答,这是我试图谈论的内容;))
2) my.Days = Days.Tuesday