枚举
1、枚举:又称为一一列举,把要取得值列取出来,然后在列取的值里面选择要赋的值
2、枚举一般定义在类的外面,语法格式:
3、enum 枚举类型名 {值1,值2... }
4、enem是关键字,用来定义一个枚举类型的,自定义的类型名字首字母均要大写;
5、系统会给枚举值赋一个默认的int类型的值,第一个枚举值为零,第二个为1,以此类推因此枚举值和int类型的值之间可以互相转换
6、可以根据解决问题的实际需求,人为更改枚举值
enum Sex
{
男,女
}
7、练习:定义一年四季的枚举;定义人的动作的枚举
enum Season {
spring=1,summer,autumn,winter
}
enum PLayerStatus {
举手,抬脚,伸胳膊,瞪眼,踢
}
enum GameZT {
开始游戏=1,暂停游戏,结束游戏
}
Sex sex = Sex.男;
枚举有自注释的作用
Season season3 = Season.autumn;
Season season1 = Season.spring;
PLayerStatus cai = PLayerStatus.伸胳膊;
把一个枚举值转换成int
Console.WriteLine((int)Sex.男 );
Console.WriteLine((Season)3);
Console.WriteLine("请输入数字");
int count = int.Parse(Console.ReadLine());
Season season = (Season)count;
switch (count) {
case 1: Console.WriteLine("春天");
break;
case 2: Console.WriteLine("夏天");
break;
case 3: Console.WriteLine("秋天");
break;
case 4: Console.WriteLine("冬天");
break;
}
结构体语法格式
struct 类型名
{
成员
}
1、public 是访问修饰符,它规定了结构体或者类里面成员的访问权限,结构体里面的变量和方法统一称为结构体的成员,变量称为字段
2、public 所修饰的成员,访问不受限制
Personlnfo zhangsan;
3、使用点运算符,点出结构体或者类里面的成员
zhangsan.name = "zhangsan";
zhangsan.age = 20;
zhangsan.sec = Sex.男;
zhangsan.address = "beijing";
Personlnfo lisi;
lisi.address="hebei";
lisi.name = "lisi";
lisi.sec = Sex.男;
lisi.age = 25;
4、结构体作为一个整体,不能直接参与运算
Personlnfo[] infos = {zhangsan,lisi };
for (int i = 0; i < infos.Length; i++)
{
Console.WriteLine("{0},{1},{2},{3}", infos[i].name, infos[i].sec, infos[i].age,infos[i].address);
}
struct Personlnfo {
public string name;
public Sex sec;
public int age;
public string address;
}
5、练习
5.1、定义一个学生结构体,学生包括,姓名,学号,年龄,分数。
5.2、找出分数最高的那个学生,并打印全部信息。
5.3、把所有学生按照年龄排序。
struct Student {
public string name;
public string xuehao;
public int age;
public int fenshu;
}
Student st1;
st1.name = "st1";
st1.age = 20;
st1.xuehao = "001";
st1.fenshu = 90;
Student st2;
st2.name = "st2";
st2.age = 25;
st2.xuehao = "002";
st2.fenshu = 45;
Student st3;
st3.name = "st3";
st3.age = 65;
st3.xuehao = "003";
st3.fenshu = 85;
Student st4;
st4.name = "st4";
st4.age = 12;
st4.xuehao = "004";
st4.fenshu = 78;
Student st5;
st5.name = "st5";
st5.age = 23;
st5.xuehao = "005";
st5.fenshu = 98;
Student[] st = { st1, st2, st3, st4, st5 };
Student maxscroe=st[0] ;
for (int i = 0; i < st.Length; i++)
{
if (maxscroe.fenshu<st[i].fenshu)
{
maxscroe = st[i];
}
}
Console.WriteLine("成绩最高的人的信息{0},{1},{2},{3}", maxscroe.name, maxscroe.age, maxscroe.xuehao, maxscroe.fenshu);
Student st6;
for (int i = 0; i < st.Length; i++)
{
for (int j = 0; j < i; j++)
{
if (st[i].age<st[j].age)
{
st6 = st[i];
st[i] = st[j];
st[j] = st6;
}
}
}
foreach (var item in st)
{
Console.WriteLine("{0},{1},{2},{3}", item.name, item.age, item.xuehao, item.fenshu);
}
访问修饰符
1、public表示该成员是公有的,访问不受 限制,即在结构体或者内部和外部均可被访问
2、private表示该成员是私有的,只能在结构体或者类的内部被访问
3、在结构体或者类的里面,成员面前不加任何访问修饰符,该成员默认私有。