枚举类型:enum关键字用于声明枚举,一种由一组称为枚举列表的命名常量组成的独特类型,Menu是枚举类型每种枚举类型都有基础类型,该类型可以是char以外的任何整型,枚举的默认类型是int类型。只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如: a=sum;b=mon; 是正确的。而: a=0;b=1; 是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换,如: a=(enum weekday)2;其意义是将顺序号为2的枚举元素赋予枚举变量a。枚举类型的一些方法的用法:

  enum Week

    {
        星期日 = 1,
        星期一 = 2,
        星期二 = 4,
        星期三 = 8,
        星期四 = 16,
        星期五 = 32,
        星期六 = 64,
}
在 Main方法中
            Console.WriteLine(Enum.GetName(typeof(Week), 2));//在指定枚举中检索具有指定值的常数的名称,结果为:星期一
            Console.WriteLine("---------------------------");
            foreach (var str in Enum.GetNames(typeof(Week)))//检索指定枚举中常数名称的数组   
            {
                Console.WriteLine(str);//结果为:从星期日到星期六遍历
            }
            Console.WriteLine("---------------------------");
            Console.WriteLine(Enum.GetUnderlyingType(typeof(Week)));//返回指定枚举的基础类型 结果为:枚举 Week的类型,为int32.
            Console.WriteLine("---------------------------");
            foreach (var v in Enum.GetValues(typeof(Week)))//检索指定枚举的基础类型
            {
                Console.WriteLine(v);//结果为:从星期日到星期六遍历
            }
            Console.WriteLine("---------------------------");
            Console.WriteLine(Enum.IsDefined(typeof(Week), 3));//返回指定枚举中是否存在具有指定值的常数的提示  结果为:false(IsDefine为bool类型)
            Console.WriteLine("---------------------------");
            Console.WriteLine((int)(Week)Enum.Parse(typeof(Week), "星期三 ")); //已重载,将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象  结果为8
            Console.WriteLine("---------------------------");
       Console.WriteLine(Enum.ToObject(typeof(Week), 2));//返回设置为指定值、指定枚举类型的实例,结果为 :星期一

字段:普通字段:如果有构造函数,必需在构造函数中初始化,如果没有构造函数,字段则自动初始化。静态字段:常量字段不需要在构造函数中初始化。

结构中,静态字段和常量必需用结构名来调用。
(属性也是变量)
例:
   struct Person
        {
           public const string str = "100aaaaaaaaa";
            public static int I
            {
                get; set;
            }
            public static int Age
            {
                get; set;
            }
       }
                Console.WriteLine(Person .I );
            Console.WriteLine(Person .Age );
            Console.WriteLine(Person .str );