如果我有枚举:
public enum VehicleType
{
Car = 0,
Boat = 1,
Bike = 2,
Spaceship = 3
}
然后我做了:
int X = 10;
VehicleType vt = (VehicleType)2;
X = X + vt;
Console.WriteLine("I travel in a " + vt + " with " + X + " people.");
C#中的输出应该是什么?
答案 0 :(得分:6)
在X = X + vt;
中,vt将被转换为int。
在"I travel in a " + vt + " with " + X + " people."
中,vt将替换为vt.ToString(),它将打印枚举的名称。
答案 1 :(得分:0)
默认情况下,枚举的基类型为int。如果明确指定,它也可以是byte,sbyte,short,ushort,uint,long或ulong。
X = X + vt
会出错,因为它需要是一个明确的演员。
如果是X += (int)vt;
,那就是:
“我带着12个人骑自行车旅行。”
因为当使用Console.WriteLine
所有变量时,调用ToString()方法,因此给出了Enum的字符串表示形式(枚举为2,等同于Bike,因此返回Bike)。
答案 2 :(得分:0)
它们表示为整数。我希望他们可以被表示为对象!
答案 3 :(得分:-1)
正如其他人已经提到的那样,你只需要一个整数。
这是因为enum的基类型是整数,但是可以通过例如将其更改为任何其他值类型。 public enum VehicleType : ushort
。
为了更好地处理这些名称,Enum类有一些方便的功能(例如GetName(),IsDefined()或Parse())。
只是回答问题那你怎么能说enum在你刚刚陈述的内容中表示为int?来自评论:看看http://msdn.microsoft.com/en-us/library/sbbt4032.aspx(特别是使用Flags)对最后一个示例进行了一次体面的研究。