目录
- 枚举
- 枚举的声明
- 什么时候使用枚举
- 枚举的赋值
- 结构体
- 结构体的使用
- 结构体中的方法
- 总结
枚举
枚举的声明
用enum关键字修饰,加枚举名
enum 枚举名 { 值1, 值2, 值3, ```` }
什么时候使用枚举
在php确定值的数量和值的时候使用枚举,规范程序的开发
枚举的赋值
枚举名 变量名=枚举名.值; Day nowDay = Day.星期一;
结构体
结构体的声明 用struct关键字修饰,加结构体名
结构体的使用
结构体中可以存储不同类型的数据,一般都是每个个体共同拥有一些属性时使用结构体
struct Student { 变量类型 变量名; 变量类型 变量名; }
结构体中的方法
- <1>php如果方法是静态的那么不能使用结构体中非静态的属性
- <2>如果方法是非静态的那么可以使结构体中的静态和非静态的属性
- <3>调用静态方法需要用 "结构体名.方法名" 来调用,非静态方法直接用变量名调用
- <4>调用静态属性需要用 "结构体名.属性名" 来调用,非静态属性直接用变量名调用
代码示例:
using System; using System.Reflection; namespace 第十章枚举和结构体 { #region 枚举 //枚举的声明 用enum关键字修饰,加枚举名 //枚举类型中默认存储的是int类型的,并且后面的值总是前一个值加一; enum Day : int //枚举名后面可以加上限制,但是限制的类型只能是整形 int ,long ,short 等; { 星期一 =0, 星期二 =1, //枚举中的值可以通过等号改变 星期三, 星期四, 星期五, 星期六, 星期日 } #endregion #region 结构体 //结构体的声明 用struct关键字修饰,加结构体名 //结构体中可以存储不同类型的数据,一般都是 struct Student { public string name; public Xingb xingbie; //结构体可以和枚举连用 public int age; public string banji; public bool youden; } enum Xingb { 男, 女 } #endregion class Program { #region 结构体中的方法 //定义一个结构体 struct Teacher { public static string name; public int age; //非静态方法可以使用静态的属性 public void Jieshao() { Console.WriteLine("你好,我是:"+name+"我今年"+age); } //静态方法方法中不能使用非静态的属性 public static void Kecheng() { Console.WriteLine("我教你们语文课程"+name); } } #endregion static void Main(string[] args) { #region 枚举 //小飞经常出去旅游,但是每次出去对日期总是很纠结, //用使用枚举帮小飞随机选择出去旅游的日子 Random _ran = new Random(); //因为枚举时从0开始,后面是前面数字加1,所以取值为 0到7,但不包括7. int _numDay = _ran.Next(0,7); #region 枚举与int类型的相互转换 Day nowDay = Day.星期一; //枚举类型可以转换成int类型 int num = (int)nowDay; //因为枚举类型默认是整数类型,并且第一个值从0开始,所以星期一转换成int 类型值就是0 Console.WriteLine(num); //int转换为枚举类型(在这我们用随机数来确定小飞的出游时间) Day _nowDay1 = (Day)_numDay; //int转换枚举时要注意枚举中的值是否存在 //打印小飞出游的时间 Console.WriteLine(_nowandroidDay1 ); #endregion #region 枚举类型与string类型之间的转换 //将枚举转换成字符串 Day strDay = Day.星期三; //枚举可以使用.ToString();方法 string _strDay1 = strDay.ToString(); Console.WriteLine(_strDaphpy1); //将string类型转换为枚举 //在这我们用上面的随机数,先将随机数转换为string,方便学习string转换为枚举 string _strDay2 = _numDay.ToString(); //string中有个Parse方法可以将string转换为枚举 // 该方法需要两个参数,一个是类型,一个是string类型的变量 //我们需要获取这个枚举类型 这里使用 typeof(类型)方法获取枚举类型 //后面的代码只是将类型转换为枚举,但是我们需要转换为Day类型使用 //所以加了一个强转 Day str3NowDay = (Day)Enum.Parse(typeof(Day),_strDay2); //上面代码中的字符串可以是枚举中的字符串值 如"星期一",如果字符串是数字值,枚举中没有 //该数字值那么不会报错,但是如果是 "星期一"这种类型的值,枚举中没有的话会报异常 //打印出的结果跟上述一样 Console.WriteLine(str3NowDay); #endregion #endregion #region 结构体 //使用结构体首先要声明一个结构体类型 Student stu1; //为结构体赋值,在结构体外赋值结构体中的变量必须是 Public(公开的)修饰的 stu1.name = "张三"; stu1.age = 16; stu1.xingbie = Xingb.男; stu1.banji = "六年级一班"; stu1.youden = false; Student stu2; stu2.name = "李红"; stu2.age = 15; stu2.xingbie = Xingb.女; stu2.banji = "六年级一班"; stu2.youden = true; //打印李红的信息 Console.WriteLine("姓名:"+ stu2.name+"\n年龄:" + ""+ stu2.age+"\n性别:"+ stu2.xingbie+"\n优等生:" + stu2.youden+"\n班级:"+ sKotVcNYtu2.banji); #region 结构体中方法的使用 Teacher ter1; //静态属性和静态方法一样都需要用结构体名调用 Teacher.name = "杨雪"; //非静态属性和方法直接使用变量名调用 ter1.age = 21; ter1.Jieshao(); Teacher.Kecheng(); #endregion #endregion } } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论