文章目录
- 结构体的定义和使用
- 实例
- 类和结构体的关系
|
结构体与类相似,通常用来封装小型的相关变量组,例如,学生的学号、姓名、性别、年龄等。结构是一种值类型,通常创建结构要比创建类的速度快。如果需要一些紧凑循环,需要在其中创建大量的新数据结构,则应考虑结构体而不是类。
结构体的定义和使用
在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;}}}
运行结果:
类和结构体的关系
类和结构体都是创建对象的模板,都可以包含构造函数、常数、字段、方法、属性、索引器和运算符等成员。二者区别如下:
- 结构体是值类型,类是引用类型,在内存中结构体是储存在堆栈上的值类型,类是储存在堆上的引用类型。
- 结构的构造函数和类的构造函数不同,结构不能包含显式的无参构造函数,结构成员会自动初始化为他的默认值。结构不能包含以下形式的初始值设定类:base(参数列表)
- 对于结构体中的实例字段成员,不能在声明时初始化。
- 声明了结构体类型后,可以使用new运算符创建构造对象,也可以不使用new关键字。如果不使用new,那么在初始化所有字段前,字段将保持未赋值状态且对象不可用。
- 结构体不支持继承,即一个结构体不能从另一个结构或类继承,而且不能作为一个类的基类。
- 博主简介:
- 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
- 帮忙点个赞吧。哈哈。