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,是教程错了吧? 展开
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,是教程错了吧? 展开
7个回答
展开全部
Weekday是一个枚举,你这里day也是Weekday类型的,相当于是将字面值3强制转换为了Weekday枚举成员。你用long或者double有什么用?C#不能支持像这样的隐式转换
一切以运行结果为依据
你把:
Console.WriteLine(day);
修改为:
Console.WriteLine(day.ToString());
试试,事实上应该是星期三,因为这个是枚举,虽然是 值类型,但是不是值
一切以运行结果为依据
你把:
Console.WriteLine(day);
修改为:
Console.WriteLine(day.ToString());
试试,事实上应该是星期三,因为这个是枚举,虽然是 值类型,但是不是值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
========================================================
为什么用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
为什么用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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Weekday是枚举对象。 day=(Weekday)3中3就相当于数组的索引。long和double和枚举对象是不匹配的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int 枚举已零为开始,即 red 0,后面如不赋值那green应为1,blue为2
而后指定green =10,此时已从10开始递增
blue就为11了
(每次+1)
而后指定green =10,此时已从10开始递增
blue就为11了
(每次+1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
枚举 可 支持类型
应为类型 byte、sbyte、short、ushort、int、uint、long 或 ulong
如.
enum Weekday : long {
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};
应为类型 byte、sbyte、short、ushort、int、uint、long 或 ulong
如.
enum Weekday : long {
Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询