当前位置: 首页 > news >正文

建设部网站工程资质扁平化网站设计方案

建设部网站工程资质,扁平化网站设计方案,濮阳网络培训基地,泰安市建设职工培训中心电话网站文章目录 定义结构体实例化结构体结构体的值类型特性结构体和类的区别限制 C# 中的结构体(Struct)是一种值类型数据结构,用于封装不同或相同类型的数据成一个单一的实体。结构体非常适合用来表示轻量级的对象,比如坐标点、颜色值或…

文章目录

  • 定义结构体
  • 实例化结构体
  • 结构体的值类型特性
  • 结构体和类的区别
  • 限制


C# 中的结构体(Struct)是一种值类型数据结构,用于封装不同或相同类型的数据成一个单一的实体。结构体非常适合用来表示轻量级的对象,比如坐标点、颜色值或者复杂的数值类型,因为它们不需要额外的堆分配(与类相比),这可以提高性能。

下面是使用结构体的一些基本概念:

定义结构体

结构体通过 struct 关键字来定义。一个结构体可以包含字段、方法、属性、索引器、运算符、事件和构造函数。
在VS2022中定义结构体和定义类一样,也是右键添加类,文件产生后把class改为struct即可,例如下面定义了一个Point结构体:

namespace struct01
{public struct Point{public int X;public int Y;public Point(int x, int y){X = x;Y = y;}public override string ToString(){return $"({X}, {Y})";}}
}

实例化结构体

结构体可以通过默认构造函数(无参数的构造函数)或者自定义的构造函数来实例化:

// 默认构造函数
Point p1 = new Point();// 自定义构造函数
Point p2 = new Point(10, 20);

结构体的值类型特性

由于结构体是值类型,当一个结构体实例分配给另一个变量时,其值会被复制。这意味着两个变量将引用两个独立的数据副本。

 Point p3 = new Point(30, 31);Point p4 = p3; // p4 是 p3 的副本p3.X = 303;     // 结构体是值类型,只修改了 p3 的 X 值,p4 的 X 值不变Console.WriteLine($"p4.X: {p4.X}");

在上面代码中,因为结构体是值类型,修改了 p3 的 X 值,p4 的 X 值不变。
C#中类是引用类型,例如下面的类CPoint:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace struct01
{internal class CPoint{public int X;public int Y;public CPoint(int x, int y){X = x;Y = y;}public override string ToString(){return $"({X}, {Y})";}}
}

声明类对象

CPoint cPoint = new CPoint(100, 200);
CPoint cPoint1 = cPoint;cPoint1.X = 101;  // 类是引用类型,cPoint1 是 cPoint 的引用,修改 cPoint1 的 X 值,cPoint 的 X 值也会改变Console.WriteLine($"cPoint.X: {cPoint.X}");

类是引用类型,cPoint1 是 cPoint 的引用,修改 cPoint1 的 X 值,cPoint 的 X 值也会改变。

Main函数全部代码如下:

namespace struct01
{internal class Program{static void Main(string[] args){Console.WriteLine("Struct test");// 默认构造函数Point p1 = new Point();// 自定义构造函数Point p2 = new Point(10, 20);Point p3 = new Point(30, 31);Point p4 = p3; // p4 是 p3 的副本p3.X = 303;     // 结构体是值类型,只修改了 p3 的 X 值,p4 的 X 值不变Console.WriteLine($"p4.X: {p4.X}");CPoint cPoint = new CPoint(100, 200);CPoint cPoint1 = cPoint;cPoint1.X = 101;  // 类是引用类型,cPoint1 是 cPoint 的引用,修改 cPoint1 的 X 值,cPoint 的 X 值也会改变Console.WriteLine($"cPoint.X: {cPoint.X}");}}
}

运行结果如下:
Struct test
p4.X: 30
cPoint.X: 101

结构体和类的区别

结构体是值类型,而类是引用类型。
结构体不支持继承,而类支持。
结构体的实例可以在不使用 new 关键字的情况下创建,这会导致其所有字段被默认初始化,而类的实例必须使用 new。
结构体通常用于较小的数据结构,类适用于较大的复杂对象。
结构体的使用场景:

当你想要封装一小组相关的变量时。
当你知道数据量不大,且不需要扩展的时候。
当性能是一个重要因素,且你希望减少GC(垃圾回收)的压力时。

限制

结构体不能有默认的(无参)构造函数。
结构体不能继承其他的结构体或类,并且不能作为基础结构体或类。
结构体成员不能指定为 abstract, virtual, 或 protected.
使用结构体的一个关键点就是要理解值类型与引用类型的区别。值类型存储在栈上,而引用类型存储在堆上,这影响了性能和资源的使用。适当地使用结构体可以提高应用程序的性能。

http://www.yayakq.cn/news/664815/

相关文章:

  • 网站建设广州wordpress 获取page别名
  • 怎么做wp网站wordpress首页缩略图大小
  • 怎么样将网站内容做的漂亮自己做网站 需要哪些
  • 网站 会员系统 织梦wordpress网站转移
  • 国外怎么做网站seo公司哪家好
  • 安卓内核级优化神器优化大师有必要花钱吗
  • 做目录的网站网站制作哪家大
  • 网站开发工资一般多少源码制作网站教程
  • 备案名称和网站名称不一致接单网官网
  • 网站建设要什么软件有哪些中国培训网官网
  • 百度输入法seo搜索引擎优化心得体会
  • 网站制作 客户刁难wordpress自动发布插件
  • 想做个网站宝安设计公司
  • 低价手机网站建设网络做网站
  • 怎么做网站扫描网页微信版扫描确认登录后无法显示此页
  • 如何做网站效果图计算机网络技术就业方向及前景
  • 单位网站建设维护情况报告自适应网站 seo怎么做
  • 建设导航网站建设厅官方网站职称
  • 唐山中小企业网站制作信息查询系统
  • 苏州网站建设系统哪家好电子商务网站建设与维护 书
  • 网站系统安全防护体系建设方案 下载网站梦打开又提示无法访问
  • 如何自建网站做淘客wordpress 需要php
  • 公众号免费模板网站女生零基础可以学什么技术
  • 公司做网站需要准备什么漳浦网站设计
  • 卫浴响应式外贸网站建设软件开发模型图
  • 制作网页网站的软件是陕西省领导班子一览表
  • 淘宝客网站能用淘宝图标做标志吗西宁做网站君博先进
  • 网站怎么提升关键词排名房地产销售额
  • 做结婚视频储存网站杭州网站建设方案服务公司
  • 自适应企业建站企业马可波罗网