zoukankan      html  css  js  c++  java
  • 结构体,枚举类型

    第一部分 结构体(struct)

    结构类型是用户自己定义的一种类型,它由其他类型组合而成的,可包含构造函数、常数、字段、方法、属性、索引器、运算符、事件和嵌套类型的值类型。结构在几个重要方面不同于类;结构为值类型而不是引用类型,而且结构不支持继承。

    用结构的主要思想是用于创建小型的对象,如 Point 和 FileInfo 等等。这可以节省内存,因为没有如类对象所需的那样有额外的引用产生。例如,当声明含有成千上万个对象的数组时,这会引起极大地差异。

    结构体是一个变量组,将一组变量放在一起,其实就是一个自定义的集合,里面可以包含各种类型的数据,用法和集合一样。

    1.定义:

    结构体一般定义在Main 函数上面,位于Class下面,作为一个类;一般情况Struct 定义在Main函数前面,Main函数里面的地方都可以使用,参数前面加上public 表示共用变量。

    格式:

    struct +结构体的名称

    {

     public int +变量名;

    public string +变量名;

    public int +变量名;

    }

    以上就是定义一个结构体的格式,里面包含许多数据类型,如整形int,字符串string,带小数点decimal等;

    如果结构体定义在Main函数中,再能在main函数中使用,参数前面加上public代表共用变量。

    格式:

    struct student

    {

    public int no;

    public string name;

    public int sum;

    }

    2、用法

    1)在main函数外面定义一个struct类型的结构体,在main主函数中使用;

    2)然后为里面的每个元素赋值,结构体名+点+结构体里面变量名称=值。

    3)赋值完成之后进行打印。

    student lch=new student ();//这句是在main函数里定义了一个名为lch的student类型的结构体。

    {

     lch.no=1;

    .

    .

    .

    .

    }

    要点:定义一个jiegouti类型的结构体,有三个结构变量,在主函数中定义一个参数接收结构变量,然后输出name,返回一个字符串。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Collections;
    
    namespace 结构体练习
    {
        class Program
        {
            struct jiegouti
            {
                public int xuehao;
                public string name;
                public double chengji;
            }
    
            static void Main(string[] args)
            {
                //使用结构体
                //输入人数
                //输入姓名,成绩
                //然后存到结构体,放到集合,然后打印
                ArrayList al = new ArrayList();
                Console.WriteLine("请输入学生人数");
                int a = int.Parse(Console.ReadLine());
                for (int i = 0; i < a; i++)
                {
                    jiegouti jgt = new jiegouti();
                    Console.Write("请输入学生学号:");
                    jgt.xuehao = int.Parse(Console.ReadLine());
                    Console.Write("请输入学生姓名:");
                    jgt.name = Console.ReadLine();
                    Console.Write("请输入学生成绩:");
                    jgt.chengji = double.Parse(Console.ReadLine());
                    //al.Add(jgt.xuehao);
                    //al.Add(jgt.name);
                    //al.Add(jgt.chengji);
                    al.Add(jgt );
                }
                Console.WriteLine("输入完毕,请按回车键查看!");
                Console.ReadLine();
                //for (int i = 0; i <= 4 * a - 4; i++)
                //{
                //    Console.WriteLine(al[i]);
                //}
                for (int i = 0; i < a; i++)
                {
                    jiegouti jgt=(jiegouti )al[i];
                    Console.WriteLine("第{0}个学生的学号是{1},姓名是{2},成绩是{3}",(i+1) ,jgt.xuehao ,jgt.name,jgt.chengji );
    
                }
                Console.ReadLine();
            }
        }
    }

    3、结构体类型元素包含结构体类型

    第二部分 枚举类型

    枚举(enum)是值类型的一种特殊形式,它从system.enum 继承而来,并为基础类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个除了char类型外的内置的有符号或者(或无符号)整数类型(如byte、int32和uint64).也可以说,枚举类型时一组常量的集合。

    1、定义:enum...[E]

    枚举类型的默认基础类型为int。默认情况下,第一个枚举数的值为0,后面每个枚举数的值一次递增1.

    class Program
        {
            enum meiju:int //枚举是常量的集合,一般冒号后面不指定数据类型
            {
                one=2,//枚举里面有默认的索引,也可以指定;如索引2,但在控制台中不起作用
                two=1,
                three,//用逗号隔开
                four,//如果等于之前的一个常量,那么就等于这个常量;最后一行的逗号可省略
            }
            
            static void Main(string[] args)
            {
                Console.WriteLine(meiju.one);
                Console.WriteLine(meiju.two);
                Console.WriteLine(meiju.three);
                Console.WriteLine(meiju.four);
                Console.WriteLine("索引号");
                Console.WriteLine((int)meiju.one);
                Console.WriteLine((int)meiju.two);
                Console.WriteLine((int)meiju.three);
                Console.WriteLine((int)meiju.four);
                Console.ReadLine();
            }
        }

    2、用法

    枚举类型可以指定数据类型,也可以不指定

    在定义枚举类型时,可以选择基类型,但可以使用的基类型仅限于 long,int ,short ,和byte

    3、注意,数字不能单独放在枚举里面执行,系统会判错,主要是约束字符串

    愿我有生之年,得见您君临天下。 吾辈必当勤勉,持书仗剑耀中华。
  • 相关阅读:
    xmind 8 readme
    【08】英语词汇速记大全1词根词缀记忆法
    【20180312】2018年03月12日(随想)
    大佬说
    github私有库购买信息
    【01】用构造器创建函数中的小知识
    【01】魔芋使用MDN的一点点经验
    10.12 telnet:远程登录主机
    10.11 arping:发送arp请求
    10.10 traceroute:追踪数据传输路由状况
  • 原文地址:https://www.cnblogs.com/bloodPhoenix/p/5635673.html
Copyright © 2011-2022 走看看