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、注意,数字不能单独放在枚举里面执行,系统会判错,主要是约束字符串

    愿我有生之年,得见您君临天下。 吾辈必当勤勉,持书仗剑耀中华。
  • 相关阅读:
    Leetcode NO.110 Balanced Binary Tree 平衡二叉树
    Leetcode NO.226 Invert Binary Tree 翻转二叉树
    Leetcode NO.215 Kth Largest Element In An Array 数组中的第K个最大元素
    根据特征的浏览器判断
    Cygwin在打开在当前目录
    【转帖】科学对待 健康养猫 打造快乐孕妇
    解决chrome浏览器安装扩展、应用程序一直处在“检查中”的问题
    对【SQL SERVER 分布式事务解决方案】的心得补充
    关于“点击这里继续访问您选择的百度XXX”
    VBA一例:如何保持文本框焦点
  • 原文地址:https://www.cnblogs.com/bloodPhoenix/p/5635673.html
Copyright © 2011-2022 走看看