初学C#,问个关于枚举的简单问题

lovebaby 2007-07-28 02:15:00
代码:
using System;
using System.Collections.Generic;
using System.Text;

class Program
{
struct strtest
{
public string name;
public int age;
}
public enum enumWeek
{
Sunday = 0,
Monday = 1,
mycount = 200
}
static void Main(string[] args)
{
strtest st = new strtest();
st.name = "xiaojie";
st.age = 20;
strtest st1;
st1 = st;
int i = 200;
switch (i)
{
case (int) enumWeek.Sunday:
Console.WriteLine("输出0");
break;
case (int) enumWeek.Monday:
Console.WriteLine("输出1");
break;
case (int)enumWeek.mycount:
Console.WriteLine("输出200");
break;
default:
Console.WriteLine("没有输出");
break;
}
int myco = 200;
int total;
Console.WriteLine(enumWeek.mycount); //不明白为什么不输出200而输出mycount;
//total = myco + enumWeek.mycount; //这样会出错
}
}

初学C#,也看了关于枚举的定义,以上代码纯为自己测试。我不明白书上说枚举其实是一个整数类型,但我直接输出Console.WriteLine(enumWeek.mycount)不会输出它的值而是输出mycount,并且我用它直接和其它整型变量相加会出错,但在switch中用就能正确识别,不会出错。这有什么区别吗?为什么会这样?
...全文
121 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowangpeng 2007-07-28
  • 打赏
  • 举报
回复
暈,有人回答過了,就是一個轉的問題嘛
wowangpeng 2007-07-28
  • 打赏
  • 举报
回复
Console.WriteLine(Convert.ToInt32(enumWeek.mycount)); //就可以輸入200了
total = myco + Convert.ToInt32(enumWeek.mycount); //就不會出錯了。 
viena 2007-07-28
  • 打赏
  • 举报
回复
Console.WriteLine((int)enumWeek.mycount); //不明白为什么不输出200而输出mycount;
total = myco + (int)enumWeek.mycount;
viena 2007-07-28
  • 打赏
  • 举报
回复
要数字就加(int)转换一下,就如switch case里面一样
viena 2007-07-28
  • 打赏
  • 举报
回复
枚举内部用整数类型,但不等于它就是整数类型

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧