c#学习第5课#枚举#结构体#访问修饰符

2021-03-15 17:36发布

枚举

    1、枚举:又称为一一列举,把要取得值列取出来,然后在列取的值里面选择要赋的值

    2、枚举一般定义在类的外面,语法格式:

    3enum 枚举类型名 {1,值2... }

    4enem是关键字,用来定义一个枚举类型的,自定义的类型名字首字母均要大写;

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 类型名

     {

        成员

      }

1public 是访问修饰符,它规定了结构体或者类里面成员的访问权限,结构体里面的变量和方法统一称为结构体的成员,变量称为字段

2public 所修饰的成员,访问不受限制

 

 

            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);

            }

 

访问修饰符

1public表示该成员是公有的,访问不受 限制,即在结构体或者内部和外部均可被访问

2private表示该成员是私有的,只能在结构体或者类的内部被访问

3、在结构体或者类的里面,成员面前不加任何访问修饰符,该成员默认私有。