一、枚举
什么是枚举?
枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。也就是一些固定范围的值。
C#枚举是值类型。枚举包含自己的值,且不能继承或传递继承
使用枚举有什么好处?
①节约内存空间。如,比方,现在要往数据表里存储一些信息:1代表苹果,2代表桃子,3代表西瓜,苹果这三个词都是字符串类型,1这三个阿拉伯数字都是char类型,char类型比string类型更节约空间;
②使用方便。想用谁点谁就可以了;
③更规范;
④可以进行类型之间强转换,以不同形式输出(每个符号代表一个整数值,按顺序排列,默认从0开始)。
如何声明枚举?
语法:
[public] enum <枚举类型名> { 值1, 值2 };
枚举值之间的类型转换:
public enum Gender //声明枚举类型 public访问修饰符,有一些固定的范围的值 { 男, 女 } class Program { static void Main(string[] args) { Gender gender = Gender.女; int gender = (int)Gender.女; //enum——>int Gender gender = (Gender )1; //int——>enum string num = gender.ToString(); //string——>enum Gender gender = (Gender)Enum.Parse(typeof(Gender), "女"); //enum——>string Console.WriteLine(num); //显示枚举值 Console.ReadKey(); } }
二、结构体
结构是什么?
它使得一个单一变量可以存储各种数据类型的相关数据。struct关键字来创建
为什么要使用结构体(好处)?
一次性声明多个不同类型的变量。如,如果一个人需要姓名、年龄、性别这个变量,我们就需要声明三次,如果是有成千上万个人的话,难道我们就要声明成千上万个不同的变量吗?这样变量岂不是很冗余。而结构体就减少了这种情况,声明一个结构体,里面可以有不同数据类型的变量
注:结构是值类型,结构成员不能指定为abstract、virtual、protected,结构不支持继承
结构体中的字段不能赋予初始值;结构存储在栈中
声明语句
[public] struct 结构名 { 结构体成员 }
public enum Gender //声明枚举 { 男, //值 女 } public struct Person //声明结构体 { public string _name; //字段,姓名 ,结构体成员 public Gender _gender; //性别 public int _age; //年龄 } static void Main(string[] args) { Person XDperson; //声明XDperson,类型为Person XDperson._name = "小邓"; XDperson._age = 18; XDperson._gender = Gender.男; Person XJperson; //声明XDperson,类型为Person XJperson._name = "小姜"; XJperson._age = 18; XJperson._gender = Gender.女; Console.WriteLine(XDperson._name); //打印XDperson的信息 Console.WriteLine(XDperson._age ); Console.WriteLine(XDperson._gender); Console.WriteLine(); //打印一行空行 Console.WriteLine(XJperson._name); //打印XDperson的信息 Console.WriteLine(XJperson._age); Console.WriteLine(XJperson._gender); Console.ReadKey(); }