-
C#结构体(Struct)实例讲解
结构体,作为C#中重要的数据结构之一,是值类型的特殊形式,可以包含不同类型的字段。它在编程中有着广泛的应用,如用于封装数据、提高代码可读性和可维护性等。
结构体可以被定义在类或结构体内部,并且可以包含各种类型的字段,如整数、浮点数、布尔值、字符串等。它的定义方式与类的定义类似,使用“struct”关键字进行声明。
由于结构体是值类型,因此在创建结构体实例时,会创建该结构体的一个副本,而不是引用。这意味着在传递结构体参数时,不会发生引用传递,而是会发生值传递。
与类不同,结构体不支持继承,只能被复制和赋值。它支持默认构造函数,可以使用“new”关键字创建结构体实例。
下面我们通过一个简单的例子来了解结构体的使用:
分辨结构体和类的不同:
* 类是引用类型,而结构体是值类型。
* 类支持继承,而结构体不支持继承。
* 在传递参数时,类使用引用传递,而结构体使用值传递。
* 类可以使用多态性,而结构体不支持多态性。
结构体可以被定义在类或结构体内部,并且可以包含各种类型的字段,如整数、浮点数、布尔值、字符串等。它的定义方式与类的定义类似,使用“struct”关键字进行声明。
由于结构体是值类型,因此在创建结构体实例时,会创建该结构体的一个副本,而不是引用。这意味着在传递结构体参数时,不会发生引用传递,而是会发生值传递。
与类不同,结构体不支持继承,只能被复制和赋值。它支持默认构造函数,可以使用“new”关键字创建结构体实例。
下面我们通过一个简单的例子来了解结构体的使用:
struct Point
{
int x;
int y;
Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
上述代码定义了一个名为“Point”的结构体,包含两个整数字段“x”和“y”,并定义了一个构造函数用于创建该结构体实例。可以使用以下代码来创建和初始化该结构体实例:{
int x;
int y;
Point(int x, int y)
{
this.x = x;
this.y = y;
}
}
Point p1 = new Point(1, 2); // 创建一个Point实例,x为1,y为2
Point p2 = p1; // 将p1复制给p2
p2.x = 3; // 修改p2的x值为3
Console.WriteLine(p1.x); // 输出1,因为p1和p2是两个不同的实例,修改p2不会影响p1
在上述代码中,我们首先使用“new”关键字创建了一个Point结构体实例“p1”,并将其初始化为(1,2)。接着,我们使用“=”运算符将“p1”复制给“p2”,此时发生了值传递,创建了“p2”的一个副本。修改“p2”的值不会影响“p1”,因为它们是两个不同的实例。我们再次使用“new”关键字创建了另一个Point结构体实例“p3”,并输出了一些信息,以帮助理解结构体的性质。Point p2 = p1; // 将p1复制给p2
p2.x = 3; // 修改p2的x值为3
Console.WriteLine(p1.x); // 输出1,因为p1和p2是两个不同的实例,修改p2不会影响p1
分辨结构体和类的不同:
* 类是引用类型,而结构体是值类型。
* 类支持继承,而结构体不支持继承。
* 在传递参数时,类使用引用传递,而结构体使用值传递。
* 类可以使用多态性,而结构体不支持多态性。
https://www.xin3721.com/ArticlecSharp/c47713.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式