C#的显式枚举转换问题

看下面问号处usingSystem;enumWeekday{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturda... 看下面问号处
using System;

enum Weekday{
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};

class Test

{
public static void Main(){
Weekday day;
day=(Weekday)3; ////////为什么用Weekday??? 为什么不能用long或double???

Console.WriteLine(day);
}
}
这里运行出来的结果是Wednesday,我也认为是这个结果。
可教程上说结果是3,是教程错了吧?
展开
 我来答
cdinten
2011-05-19 · TA获得超过6589个赞
知道大有可为答主
回答量:3562
采纳率:56%
帮助的人:1319万
展开全部
Weekday是一个枚举,你这里day也是Weekday类型的,相当于是将字面值3强制转换为了Weekday枚举成员。你用long或者double有什么用?C#不能支持像这样的隐式转换

一切以运行结果为依据
你把:
Console.WriteLine(day);
修改为:
Console.WriteLine(day.ToString());
试试,事实上应该是星期三,因为这个是枚举,虽然是 值类型,但是不是值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
派简
2011-05-19 · TA获得超过1052个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:106万
展开全部
========================================================
为什么用Weekday??? 为什么不能用long或double???
枚举中的各个值 如果不给定格式的话 默认就是int类型 例如你的
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
实际上就是 0,1,2,3,4,5,6
准许使用的枚举类型有 byte、sbyte、short、ushort、int、uint、long 或 ulong。
例如:enum Days : byte {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
你定义了什么格式的枚举 你就要以什么格式去用 就是这个道理

最重要的 枚举的功能就是用来取代1,2,3,4这样的无意义表达 你day=(Weekday)3;这样的写法是不被建议使用的
========================================================
这里运行出来的结果是Wednesday,我也认为是这个结果。
可教程上说结果是3,是教程错了吧?

Weekday的枚举值是Wednesday 对应的int型是3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wu7wu7wu
2011-05-19 · TA获得超过279个赞
知道答主
回答量:163
采纳率:100%
帮助的人:126万
展开全部
Weekday是枚举对象。 day=(Weekday)3中3就相当于数组的索引。long和double和枚举对象是不匹配的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弓紫夏
2011-05-19 · TA获得超过191个赞
知道答主
回答量:644
采纳率:0%
帮助的人:0
展开全部
int 枚举已零为开始,即 red 0,后面如不赋值那green应为1,blue为2
而后指定green =10,此时已从10开始递增
blue就为11了
(每次+1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
imkcode
2011-05-19
知道答主
回答量:32
采纳率:100%
帮助的人:16.9万
展开全部
枚举 可 支持类型
应为类型 byte、sbyte、short、ushort、int、uint、long 或 ulong
如.
enum Weekday : long {
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式