MINI类-结构体

  • 博主写作不容易,孩子需要您鼓励
  • 万水千山总是情 , 先点个赞行不行

结构体与类相似,通常用来封装小型的相关变量组,例如,学生的学号、姓名、性别、年龄等。结构是一种值类型,通常创建结构要比创建类的速度快。如果需要一些紧凑循环,需要在其中创建大量的新数据结构,则应考虑结构体而不是类。

结构体的定义和使用

在C#中,可以将结构看成轻量级的类。定义结构的定义类相似,采用struct进行定义,每个struct类型数据可以是常量、变量、构造函数、方法和属性等成员。

  • 语法格式如下:
  • <访问修饰符> struct 结构名
        {
                //结构体定义
        }
    

    使用结构通过声明结构体变量或使用new来实例化结构体对象,然后通过“结构体变量.结构成员名”“结构对象.结构成员”的方式来使用结构。

    实例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace test
    {
        class Program
        {
            static void Main(string[] args)
            {
                Student Stu1;
                Stu1.stuNum = "14031403";
                Stu1.stuName = "小明";
                Stu1.stuAge = 19;
                Stu1.stuClass = 1;
                Stu1.stuGrade = 12;
    
    
                Console.WriteLine("结构体演示");
                Console.WriteLine("学生 " + Stu1.stuName .ToString()+":");
                Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);
    
                Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);
                Console.WriteLine("调用结构体方法演示");
                Console.WriteLine("学生 " + Stu1.stuName .ToString() + ":");
                Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);
    
                Student stu2 = new Student("14081408", "小王", 18, 3, 12);
                Console.WriteLine("调用结构体构造函数演示");
                Console.WriteLine("学生 " + stu2.stuName .ToString() + ":");
                Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);
    
                Console.ReadKey();
            }
        }
        public struct Student                   //定义结构体Student
        {
            public String stuNum;               //定义结构成员表示学生学号
            public String stuName;              //定义结构成员表示学生名字
            public int stuAge;                  //定义结构成员表示学生年龄
            public int stuClass;                //定义结构成员表示学生班级
            public int stuGrade;                //定义结构成员表示学生年级
            public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade)
            {                                   //结构体的构造函数,用参数给成员赋值
                this.stuNum = stuNum;
                this.stuName = stuName;
                this.stuAge = stuAge;
                this.stuClass = stuClass;
                this.stuGrade = stuGrade;
            }
            public void ChengeStudentInf(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade)
            {                                   //结构体的方法函数,用参数改变成员的值
                this.stuNum = stuNum;
                this.stuName = stuName;
                this.stuAge = stuAge;
                this.stuClass = stuClass;
                this.stuGrade = stuGrade;
            }
    
    
        }
        
    }
    

    运行结果:
    在这里插入图片描述

    类和结构体的关系

    类和结构体都是创建对象的模板,都可以包含构造函数、常数、字段、方法、属性、索引器和运算符等成员。二者区别如下:

    1. 结构体是值类型,类是引用类型,在内存中结构体是储存在堆栈上的值类型,类是储存在堆上的引用类型。
    2. 结构的构造函数和类的构造函数不同,结构不能包含显式的无参构造函数,结构成员会自动初始化为他的默认值。结构不能包含以下形式的初始值设定类:base(参数列表)
    3. 对于结构体中的实例字段成员,不能在声明时初始化。
    4. 声明了结构体类型后,可以使用new运算符创建构造对象,也可以不使用new关键字。如果不使用new,那么在初始化所有字段前,字段将保持未赋值状态且对象不可用。
    5. 结构体不支持继承,即一个结构体不能从另一个结构或类继承,而且不能作为一个类的基类。
    • 博主简介:
    • 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
    • 帮忙点个赞吧。哈哈。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值