使用关键字const修饰即可:
创建枚举变量方式:
[public] enum Gender { man, woman, male, female } [public] enum QqState { Online=4, Offline=2, Busy=30, QMe=1 } //[public] 表示可选
Remark:枚举类型需要放置在命令空间或者类里面,不能放在Main函数里面,大多放在命令空间里
将枚举类型强制转换成为int类型,需要注意int类型和枚举类型是相互兼容的,所以可以通过强制类型转换的语法互相转换
当转换一个枚举中没有的值的时候,不会抛出异常,而是 直接将数字显示出来
Gender gender = Gender.man; Console.WriteLine(gender); int num0 = (int)Gender.man; Console.WriteLine(num0); int num1 = (int)Gender.woman; Console.WriteLine(num1); int num2 = (int)Gender.male; Console.WriteLine(num2); Console.WriteLine((int)Gender.female); //如果在枚举中设置了枚举变量的值,如这里将在枚举中设置 man=3,于是强转后man=3,后面几个则依次+1,即woman=4
如果将int转为枚举类型时,枚举类型的大小包含这个int的值,则对应转换成该枚举变量,int的值在枚举类型大小值之外,则仍然是原来的int的值的大小
int n1 = 4; Gender gender = (Gender)n1; Console.WriteLine(n1); Console.WriteLine(gender);
枚举类型与string类型的转换,注意任何类型都可以转换成为string类型,利用ToString去转
Gender gender = Gender.woman; Console.WriteLine(gender.ToString());
前面介绍了Convert.ToInt32(), int.parse() ,int.TryParse()
如果字符串在枚举里没有对应的转换对象,对于整数而言直接返回数字,对于字符串(小数在这里也是字符串)程序不会中断但会在结果中显示没有找到
string s = "asddfas"; Gender gender2 = (Gender)Enum.Parse(typeof(Gender), s); Console.WriteLine(gender2);
Remark :当手动给枚举指定数值时,可以任意指定枚举变量对应的数值
Q :选择您的QQ状态
A :
namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("请选择您的QQ状态,1-Online,2-Offline,3-Busy,4-QMe"); string str= Console.ReadLine(); switch (str) { case "1": QqState s1 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s1); break; case "2": QqState s2 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s2); break; case "30": QqState s3 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s3); break; case "4": QqState s4 = (QqState)Enum.Parse(typeof(QqState), str); Console.WriteLine(s4); break; } #endregion } } public enum QqState { Online=1, Offline, Busy, QMe } }
结构可以帮助我们一次性声明多个不同类型的变量,放在命令空间里
语法:
[public] struct nameofStruct(结构名) { 成员; } public struct Person { string name; int age; char gender; }
using System; namespace ConsoleApp1 { public struct Mycolor { public int _red; public int _green; public int _blue; } class hello { static void Main(string[] args) { //定义一个结构叫Mycolor,有三个成员变量,分别定义为int类型的red,green,blue //声明一个Mycolor类型的变量,并对其成员赋值,是其表示一个红色 Mycolor mc; mc._red = 255; mc._blue = 0; mc._green = 0; } } }
using System; //using system.collections.generic; //using system.linq; //using system.text; //using system.threading.tasks; namespace ConsoleApp1 { public struct Person { //使用 _ 是为了区分字段和变量 public string _name;//字段,可以存很多值,不叫变量(只能存储一个值) public int _age; public Gender _gender; } public enum Gender { 男, 女 } class Program { static void Main(string[] args) { Person zsPerson; zsPerson._name = "张三"; zsPerson._age = 18; zsPerson._gender = Gender.男; Person lsPerson; lsPerson._name = "李四"; lsPerson._age = 19; lsPerson._gender = Gender.女; } } }