C#入门经典的练习题,一个问题

时间:2023-02-24 08:31:07
enum orientation :byte{
north=1,
south=2,
west=3,
east=4
}
orientation a = orientataion.north;
console.writeLine({0},a);
输出的结果为什么是north而不是1?
而 
byte b;
b=(byte)a;
输出的b却是1?

10 个解决方案

#1


执行的是枚举类型的ToString函数 ,你可以将其转换为int


原型
public override string ToString()
{
    return InternalFormat((RuntimeType) base.GetType(), this.GetValue());
}

#2


很有意思的话题

#3


当然是 枚举值啦!!

#4


Console.WriteLine("{0}", (int)a);

#5


转换的是string 类型的啊

#6


C#入门经典的练习题,一个问题LZ不说我也不知道呢、以为是1

#7


因为对象在Console.write的时候,会自动调用ToString,枚举ToString就是枚举值了

#8


引用 1 楼 bdmh 的回复:
执行的是枚举类型的ToString函数 ,你可以将其转换为int

C# code?12345原型public override string ToString(){    return InternalFormat((RuntimeType) base.GetType(), this.GetValue());}

求解释清楚一点?新人看不懂

#9


该回复于2012-12-17 11:19:51被版主删除

#10


引用 7 楼 yuxiaodong790909 的回复:
因为对象在Console.write的时候,会自动调用ToString,枚举ToString就是枚举值了

懂了,谢谢!

#1


执行的是枚举类型的ToString函数 ,你可以将其转换为int


原型
public override string ToString()
{
    return InternalFormat((RuntimeType) base.GetType(), this.GetValue());
}

#2


很有意思的话题

#3


当然是 枚举值啦!!

#4


Console.WriteLine("{0}", (int)a);

#5


转换的是string 类型的啊

#6


C#入门经典的练习题,一个问题LZ不说我也不知道呢、以为是1

#7


因为对象在Console.write的时候,会自动调用ToString,枚举ToString就是枚举值了

#8


引用 1 楼 bdmh 的回复:
执行的是枚举类型的ToString函数 ,你可以将其转换为int

C# code?12345原型public override string ToString(){    return InternalFormat((RuntimeType) base.GetType(), this.GetValue());}

求解释清楚一点?新人看不懂

#9


该回复于2012-12-17 11:19:51被版主删除

#10


引用 7 楼 yuxiaodong790909 的回复:
因为对象在Console.write的时候,会自动调用ToString,枚举ToString就是枚举值了

懂了,谢谢!