关于C# enum用法

问题一
public class EnumTest
{
enum Days { Sat = 0, Sun, Mon, Tue, Wed, Thu, Fri };

static void Main()
{
int x = (int)Days.Sun; int y = (int)Days.Fri;
Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
}
}

-------------------------------------------------------

Console.WriteLine("Sun = {0}", x);
Console.WriteLine("Fri = {0}", y);

Console.WriteLine("Sun = "+x);
Console.WriteLine("Fri = "+y);

这两种结果一样,但是搞不懂"Sun = {0}"中的"{0}"是什么意思?请高手指教

问题二
在此例中,使用了基类选项来声明成员类型是 long 的 enum。注意,即使枚举的基础类型是 long,枚举成员仍然必须使用强制转换显式转换为 long 类型。

public class EnumTest
{
enum Range : long { Max = 2147483648L, Min = 255L };
static void Main()
{
long x = (long)Range.Max; long y = (long)Range.Min;
Console.WriteLine("Max = {0}", x);
Console.WriteLine("Min = {0}", y);
}

}

-----------------------------------------

enum Range : long 里面的":"是什么意思??

刚开始学习请大家指教,感谢!

  C#中enum å…³é”®å­—用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。

  通常情况下,是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它, ä½†æ˜¯ï¼Œè¿˜å¯ä»¥å°†æžšä¸¾åµŒå¥—在类或结构中。

  1、默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递增(0,12,3...),因此以下两个代码定义是等价的:

enum TrafficLight
{
Green,
Yellow,
Red
}
enum TrafficLight
{
Green = 0,
Yellow = 1,
Red = 2
}

  2、enum枚举类型的变量的名字不能相同,但是值可以相同,例如:

enum TrafficLight
{
Green = 0,
Yellow = 1,     // Duplicate value, OK 
Red = 1         // Duplicate value, OK 
}


  3、如果enum中的部分成员显式定义了值,而部分没有;那么没有定义值的成员还是会按照上一个成员的值来递增赋值,例如:


enum LoopType
{
None,          // value is 0  
Daily,         // value is 1  
Weekly = 7,
Monthly,       // value is 8  
Yeayly,        // value is 9  
DayGap = 15,         
WeekGap,       // value is 16  
MonthGap,      // value is 17  
YearGap        // value is 18  
}

  4、enum枚举成员可以用来作为位标志,同时支持位的操作(位与,位或等等),例如:

enum CardDeckSettings : uint
{
SingleDeck = 0x01,      // Bit 0
LargePictures = 0x02,   // Bit 1
FancyNumbers = 0x04,    // Bit 2
Animation = 0x08        // Bit 3    
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-02-16
Console.WriteLine("Sun = {0}", x);
{0}是用来对输出字符串进行格式化的,
在字符串中用{}括起一个索引值,(从0开始的整型数值)表示这个位置上的字符是后接参数的值.
这一句中字符串"Sun = {0}"后以逗号分隔,紧随其后的就是参数值,多个参数值之前以逗号分隔.
如Console.WriteLine("{0}和{1}是好朋友!", "我","你");

enum Range : long{ Max = 2147483648L, Min = 255L };
这一句指定了玫举类型Range 的值是取值范围在147483648~255之间的所有long类型的数值本回答被提问者采纳

关于C# enum用法
C#中enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它, 但是,还可以将枚举嵌套在类或结构中。1、默认情况下,枚举中的第一个变量被赋值为0,其他的变量的值按定义的顺序来递...

C#中的枚举怎么使用
- 简单枚举:如Day枚举,不能组合。- 标志枚举:如WindowStyle枚举,用于按位组合,需指定[Flags]属性。通过以上方式,C#枚举有助于代码组织和逻辑控制,根据具体需求灵活选择和使用。

C# 中的“智能枚举”:如何在枚举中增加行为
在C#中,枚举(enum)是用于定义一组固定的整数值类型的有效方法。让我们从枚举的基本用法开始回顾,包括如何定义和使用枚举,以及枚举在设计模式中的应用。下面是一个典型的枚举示例,它定义了一个表示一周中的每一天的枚举:csharp public enum Weekday { Monday, Tuesday, Wednesday, Thursday, Friday...

C#中的枚举怎么使用
访问修辞符 enum 枚举名:基础类型{枚举成员}基础类型必须能够表示该枚举中定义的所有枚举数值。枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。(2)枚举成员枚举成员是该枚举类型的...

C#什么是枚举呢?
enum Num { x1=5,x2,x3,x4 };enum strig x=x3;此时, 枚举变量x实际上是7。枚举类型变量的赋值和使用 枚举类型在使用中有以下规定:1. 枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。例如对枚举weekday的元素再作以下赋值: sun=5;mon=2;sun=mon; 都是错误的。2. 枚举元素...

c#中枚举的作用是什么?
在代码中使用Enum枚举类型,可以将以前笨拙的代码变得优雅简单。枚举在C\/C++\/c#中,是一个被命名的整型常数的集合,枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。 本回答由电脑网络分类达人 郭强推荐 举报| 答案纠错 | 评论 0 15 ...

C#中的常量有哪些类型呢?
const 常量在编译时就已经确定了值,而 readonly 常量的值是在运行时确定,所以 readonly 常量可以基于其他实例字段或属性的值进行初始化。enum 类型则是一种特殊的整数类型,用于将一组相关的常量组织为一个枚举。#define 符号常量通常用于控制编译时应该包含哪些代码。总之,在 C# 中,可以使用各种类型...

c# 设计一个遍历一个类所有enum的方法
TypeB = 1,[System.ComponentModel.Description("C类型")]TypeC = 2,} 接着遍历其枚举名的方法是 foreach (var name in Enum.GetNames(typeof(EMyType))){ Console.WriteLine(name);} 接着遍历其枚举名与枚举值的方法是 foreach (var value in Enum.GetValues(typeof(EMyType))){ Console....

c#枚举类型到底怎么用,看了很多书,还没懂,求大神详解
public enum CustomerKind { Normal = 90, Vip = 80, SuperVip = 70, InActive = 100 }完全可以使用VIP,SuperVip来代替这些数字。在调用的时候也不用担心一不小心就输错了数字,把80输成了8。代码则变成了 A.Rank=(int)CustomerKind.Vip;...

C#中的枚举类型继承int类型有什么好处?
1. 在C#中,枚举类型可以继承自整数类型,这允许枚举的值直接映射到整数值。例如:```csharp public enum Role { Student = 1,Worker = 2,Male = 4,Female = 8 } ```2. 通过整数映射,可以使用位或(`||`)操作符来组合枚举值。这样的操作在二进制中表示为位的或(OR)操作。例如,`...

相似回答