C# 关于结构体的使用
2023-12-16 19:03:48
1、定义:
使用关键字:struct
语法:
struct StructName
{
// 成员声明
}
其中,StructName为结构体的名称。
结构体可定义字段、属性、方法和构造函数等成员,如:
struct Person
{
public string Name;
public int Age;
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
2、使用:
先声明结构体示例,使用new关键字,然后就可以初始化里面的字段、访问结构体成员、调用结构体方法,如:
using System;
using System.Text;
//结构体定义
struct Person
{
public string Name;
public int Age;
public void PrintInfo()
{
Console.WriteLine($"Name: {Name}, Age: {Age}");
}
}
//主程中使用
public class test
{
public static void Main(string[] args)
{
//声明实例,因结构体是值类型,所以实例化的person为结构体变量。
Person person = new Person();
//初始化
person.Name = "John";
person.Age = 30;
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
//结构体方法调用
person.PrintInfo();
}
}
通过结构体的定义与使用,我们会发现它和类很相似,?但是它们是有很大区别的:
- 结构体是值类型,它在栈上分配内存,并且在赋值或传递时会创建副本,意思就是当你将一个结构体赋值给另一个结构体变量时,它会创建一个新的副本。而类是引用类型,它在堆上分配内存,变量存储的是对实例的引用,当你将一个类赋值给另一个类变量时,它们引用的是同一个实例。
- 由于堆空间大,栈空间小,所以导致类的访问速度慢,结构体的访问速度快。所以对于小型、不可变、轻量级的对象,比如坐标、日期、颜色使用结构体会更好,而具有大量逻辑数据或者复杂行为和状态或者需频繁复制的,则使用类更为合适。
- 结构体默认具有一个无参数的公共构造函数,该构造函数自动初始化结构体的字段为默认值,而类默认具有一个无参数的隐式公共构造函数,假如需要定义自己的构造函数,必须显式地定义一个无参数的构造函数。
- 结构体默认是不可变的,即结构体的字段在创建后不能更改,而类是可变的,我们可以在类的实例上修改字段和属性的值。
- 结构体不支持继承,而类支持继承,所以在定义抽象对象或者多级对象时,使用类为最佳选择。
文章来源:https://blog.csdn.net/mr_five55/article/details/134937390
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!