[英]enums in C# - assignment
如何在c#中做到这一点?
让我们说myclass有:
private enum Days{};
1)如何在构造函数的帮助下将数据添加到myclass中的枚举? 如:
myclass my = new myclass(Monday,Friday);
这样类中的枚举就会得到“星期一,星期五”的属性。
2)一旦初始化,是否还可以为类中的enume创建属性? 例如 :
my.Days = new enum Days(Tuesday); //where the old settings are replaced.
编辑:
我想做的是:
在主要课程中有一个枚举,如枚举天{星期一,星期二,星期三,星期四,星期五};
我也会在myclass(enum?)中有一些东西,这样我就可以将Days enum中的一些值分配给myclass internal(enum?),只有一些但不是所有的值枚举。
所以我可以得到一个myclass,其中包含一个带有“星期一,星期二”的(枚举?),而有些myclass222包含(枚举?)“星期五”等。
我不知道枚举是否是在myclass类中执行此操作的正确方法?
你的问题有些模糊,但是如果你实际上是在询问如何构造一个可以组合值的枚举,那么答案就是用Flags
属性来装饰它:
[Flags]
public enum Days
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
现在,如果您有类型为Days
成员,则可以为其分配组合值:
Days someDays = Days.Monday | Days.Wednesday;
更新
根据要求; 这里是如何检查是否设置了某个值:
bool wednesdayIsSet = (someDays & Days.Wednesday) == Days.Wednesday;
回答在另一个类中定义枚举时如何在一个类中创建枚举成员的问题,如下所示:
public class SomeClass
{
[Flags]
public enum Days
{
None = 0,
Monday = 1,
// and so on
}
}
public class SomeOtherClass
{
public SomeClass.Days SomeDays { get; set; }
}
1)你不能。 枚举必须在编译时定义
看起来你可能会寻找一个AttributeCollection。 (看看FredrikMörk的回答,这是我试图谈论的内容;))
2) my.Days = Days.Tuesday
无法从问题中分辨出来,但也许您打算这样的事情:
用日期定义枚举
public enum Days {Sunday,Monday ,. 。 。 }
在类中创建Days的列表属性
这似乎是我想要做的。 问题是,如果enum Days在我的“主类”中定义,我如何在另一个“myclass类”中拥有Days成员,以便我可以使用myclass.someDays = Days.Monday?
假设你的主类是mainClass而你提供了apt访问权限,那么取决于枚举的定义,即1.如果它是静态的那么myclass.someDays = mainClass.Days.Monday; 2.否则,你必须通过mainClass mainClass的对象访问它mc = new mainClass(); myclass.someDays = mc.Days.Monday;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.