C#-Struct简单的用法

 /*定义Point 里面就只有2个属性 但是我们实际上根本不需要类的全部功能 */


        class Point
        {
            public int x;
            public int y;
        }

这样写就方便多了

 struct Point
        {
            public int x;
            public int y;

            public int X
            {
                get
                {
                    return this.x;
                }
                set
                {
                    this.x = value;
                }
            }

            public Point(int x, int y)
            {   
                //必须把结构中的变量初始化
                this.x = x;
                this.y = y;
            }
        };


初始化结构体


            Point point1 = new Point(10,20);


            //第二种方式
            Point point2;
            point2.x = 10;
            point2.y = 20;

注意事项


               1.结构体没有无参数构造方法 必须得提供一个有参数的构造函数初始化字段
               2.使用new关键字创建结构对象,并且调用构造方法 但是结构也可以不使用new关键字
               如果不使用new关键字 则结构体的字段都是保持未初始化 初始值为0
               3.结构不能继承结构或继承类,所有结构继承System.ValueType[隐士继承]后者继承System.Object
               4.可以实现接口
               5.声明的时候不能初始化结构字段
               6.结构是值类型 不是引用类型 例如A复制B结构 只是复制数据 没有复制引用 
               如果当做参数传递最好前面加引用符号ref
             



C# 结构体(Struct) 为了定义一个结构体,您必须使用 struct 语句。struct 语句为程序定义了一个带有多个成员的新的数据类型。 阅读详情

相关推荐

彻底卸载Ubuntu双系统,并完美回收100G空间给D盘

本文记录了安全卸载Ubuntu双系统并回收磁盘空间的全过程。作者首先通过Windows命令行彻底清除Ubuntu启动项,避免GRUB引导报错;随后在磁盘管理中删除Linux分区,将100G未分配空间合并至相邻的D盘。针对C盘空间不足问题,作者采用Dism++清理系统文件,并将用户文档、聊天记录等迁移至扩容后的D盘。最终实现了引导纯净、空间合理分配的目标,特别强调分区扩展必须遵循"相邻原则",建议通过间接迁移而非直接扩容来优化系统盘空间管理。

2403_85993278的博客 1512

C# 结构体(Struct)精讲

一、结构体的概念 在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。 二、使用结构体的示例 为了定义一个结构体,您必须使用 struct 语句。struct 语句为程序定义了一个带有多个成员的新的数据类型。 1、声明结构体 //Pascal命名规则 struct Per { //里面的一些属性 public string name; public int age; public string sex; };

路虽远,行则必至! 9489

电力抄表协议DL/T645和698.45到底有啥区别?一张图帮你选对协议

本文深入对比了电力抄表协议DL/T645和DL/T698.45的技术差异,从协议架构、报文结构、功能覆盖到实施成本进行全面分析。通过实际案例和数据,揭示698.45协议在通信效率、业务扩展性和长期成本上的优势,并提供清晰的选型决策流程图,帮助工程师根据具体需求选择最适合的电力抄表协议。

weixin_38168696的博客 402

C# Struct结构体里数组长度的指定

本文转载连接: https://www.cnblogs.com/jhlong/p/5842213.html   typedef struct Point{     unsigned short x;     unsigned short y; }mPoint;//点坐标   typedef struct Line{       mPoint p[2];       unsigne...

newbie的博客 8272

231003-四步MacOS-iPadOS设置无线竖屏随航SideCar

新建虚拟屏幕参考文献。

专注机器学习之路 7489

AF3​​​​​​​ Msa、TemplateHit、HitMetadata类解读

Msa:处理 多序列比对 (MSA) 结果,为 AlphaFold3 提供 序列进化信息。 TemplateHit:存储 查询序列与模板结构的比对信息,用于 筛选模板。 HitMetadata:提供 比对模板的 PDB 结构信息,帮助 解析和使用模板数据。

qq_27390023的博客 819

Unity 3D游戏开发 - C#语法基础 | 数组之基本语法

数组的概念 概念 数组是一个存储相同类型元素的固定大小的顺序集合 作用 一次性存储多个相同类型的变量 数组的语法 声明+初始化数组 数据类型[] 数组名 = new 数据类型 [数组长度]; //[]:指定数组的维度,默认是1维数组. //new:创建数组实例  ...

weixin_41232641的博客 982

Exchange Server 2013 运维系列——邮箱配额设置(管理中心)

邮箱配额需要设置三个参数: 1、发出警告限制:表示在向用户发出警告之前的最大存储限制。如果邮箱大小达到或超过指定值,Exchange 将向邮箱用户发送警告消息。 2、禁止发送限制:表示邮箱的“禁止发送”限制。如果邮箱大小达到或超过指定的限制,Exchange 将阻止邮箱用户发送新邮件,并显示一条描述性错误消息。 3、禁止发送和接收限制:表示此邮箱的“禁止发送和接收”限制。如果邮箱大小

白昼的技术专栏 1万+

C#学习——语法——Struct(结构)

结构类型(“structure type”或“struct type”)是一种可封装数据和相关功能的值类型。使用struct关键字定义结构类型。

2026

C#读取和写入excel表数据--手把手教详解

C#读写excel数据详解

如如水的博客 4056

【技能】OpenClaw Memory 与 MemOS 两种 AI 记忆方案深度解析

摘要:本文对比了两种AI记忆系统方案。OpenClaw Memory是轻量级记忆助手,内置SQLite存储,支持语义搜索,部署简单成本低,适合日常对话记忆需求。MemOS是自学习系统,通过Neo4j和Qdrant实现技能自进化,但需部署4套服务,门槛高成本大。建议普通用户选择OpenClaw Memory,技术玩家可逐步尝试MemOS。两种方案各具优势,需根据实际需求选择。

海兰 199

关于C#中Struct的拷贝

摘自:https://www.jianshu.com/p/7a3d703cf57f 为什么写这么一篇鸡肋文章? 其实关于浅拷贝、深拷贝,struct结构体,网络上已然有太多大作可以拜读。作者们都恨不得连这些东西的祖宗十八代都淘换出来。 而作为一个程序,总有不知不觉脑子钻进牛角尖的时候。作者今天在考虑结构体内部成员的拷贝相关问题的时候,写了两个例子,却无意间因为基础的赋值语句、以及多想到...

芒果儿 6645

时频分析之短时傅里叶变换(STFT)

本文利用MATLAB自带的spectrogram函数对信号做短时傅里叶变换。首先介绍了短时傅里叶变换(STFT)的背景及意义;其次,对spectrogram函数的用法以及变量的含义做了详细的解释;最后,利用MATLAB编写程序实现了信号的STFT。

总结论文中的算法并给出论文的复现代码 7万+

struct用法_C#语言struct结构体适用场景和注意事项

点击上方蓝字关注我们!C#中struct结构体是一个特殊的存在,值类型栈内拷贝。struct和class定义上有些相似,区别主要是值类型和引用类型的区别。Winform中涉及到本地代码的地方大量使用了struct,这很大程度上是为了代码移植的需要,不能作为我们写代码的规范参考。我们有时感觉结构比较简单的类改为struct可能会提高性能,但这种感觉在绝大多数情况下其实是错误的。那么我们自己...

weixin_39866774的博客 1907

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C#中struct可以继承吗?

【图灵图书推荐】.NET 设计规范                           ASP.NET 2.0电子商务开发实战         微软.NET开发团队经验结晶!                                        一站式ASP.NET实战教程《.NET 2.0模式开发实战》一书出版后,不少读者对书中1.4.1的标题“class与struc

书 人 事 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

C# struct 结构体

参考:https://blog.youkuaiyun.com/zeroflamy/article/details/52081462https://www.w3cschool.cn/csharp/csharp-struct.html 1、C# 结构的特点 1. C#中struct结构体是一个特殊的存在,值类型、栈内拷贝(值类型栈内拷贝决定了struct许多使用特点类似int)。 2. C# 中的结构与传统...

gubaofu的博客 2462

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C#重点问题之Struct和Class的异同

介绍struct和class的相同点和不同点, 以及值类型和引用类型的基础原理和概念等.

木头圈 2820

C#中结构(Struct)

结构(struct)是 C# 中一种值类型数据结构,用于封装小型相关数据。它与类(class)类似,可包含字段、属性、方法等成员,但本质是值类型(存储在栈上),而类是引用类型(存储在堆上)。核心特点值类型,赋值时直接复制数据(而非引用);适合存储小型、简单的数据(如坐标、颜色、日期等);不能被继承(密封类型),但可实现接口。// 基本语法访问修饰符 struct 结构名 : 接口1, 接口2...// 成员(字段、属性、方法、构造函数等)示例:定义一个表示二维坐标的结构。

m0_57417006的博客 1559

C# Struct的内存对齐

前言 内存对齐的方式有三种,测试需要引用命名空间using System.Runtime.InteropServices; namespace System.Runtime.InteropServices { [ComVisible(true)] public enum LayoutKind { Sequential = 0, Explicit = 2, Auto = 3 } } 一、LayoutKind.Sequential

asitini的博客 2910

编程小知识之 struct 构造函数(C#)

本文简单介绍了 C# 中 struct 构造函数的一些知识~ struct(结构) 类型在 C# 中属于值类型(value type),其构造函数有一些限制: struct 有参构造函数中必须为所有成员(包括自动实现的属性,后面对于这点的说明从略)赋值 举个例子: public struct Value { public int Value1 { get; } privat...

tkokof1的专栏 1万+

C# record struct、record class、struct、class 区别 异同

C# record struct、record class、struct、class 区别 异同

qq_34677276的博客 985

C#中struct跟class的异同之处

class 是“可以做的事情”的抽象,而 struct 是“数据”的抽象。绝大多数情况下,你应该优先选择 class。只有在满足上述 struct 的使用场景时,才考虑使用它来优化性能。

m0_61358548的博客 1431

Struct Examples in C#

Struct Examples in C#From:http://dotnetperls.com/struct-examplesby Sam Allen - Updated July 9, 2009Problem. You want to use structs to improve the performance and clarity of your code. Struc

Gary-Blog 901

C# struct, class的区别

特性class(引用类型)struct(值类型)内存分配堆栈生命周期管理垃圾回收器管理自动销毁(超出作用域时销毁)是否支持继承支持继承不支持继承默认值null所有字段初始化为零值是否实现接口可以实现多个接口可以实现多个接口赋值与传递传递引用(引用类型)传递值(复制数据)适用场景适用于较复杂的对象,涉及共享数据和继承的场景适用于小型数据结构,要求高效的复制与传递的场景内存效率内存分配较慢,需要垃圾回收内存分配较快,不涉及垃圾回收在选择使用class还是struct。

qq_41328432的博客 1522

C# class和struct的区别和用法

class 是引用类型,structs是值类型既然class是引用类型,class可以设为null。但是我们不能将struct设为null,因为它是值类型。struct AStruct{int aField;}class  AClass{int aField;}class MainClass{public static void Main(){AClass b = null; // No error.AStruct s = null; // Error [ Cannot convert null to 'A

零点 971
上一篇: python-str方法使用
下一篇: JS-拖拽-碰撞-封装
Jones_qing
博客等级 码龄12年 0粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值