C#初级——结构体

结构体

结构体是值类型的数据结构,用于组织和存储相关数据,可以存储各种数据类型的相关数据。

结构体定义

struct 结构体名
{
访问类型 数据类型 数据名1;
访问类型 数据类型 数据名2;

......
}

cs 复制代码
        struct Vector2
        {
            public int row;
            public int col;
        }

创建对象

结构体 对象名1 = new 结构体();

或者 结构体 对象名2 = 对象名1;

结构体数据使用

对象名.数据名

示例

结构体不仅可以通过 new 的方法得到一个新的对象,还能直接将旧的对象赋值给新的对象,新的对象不仅会有旧的对象的数据结构还有相关的数据信息。

cs 复制代码
        struct Vector2
        {
            public int row;
            public int col;
        }

        static void Main(string[] args)
        {
            Vector2 pos = new Vector2();
            pos.row = 5;
            pos.col = 6;
            Vector2 pos1 = pos;
            Console.Write(pos1.row);
            pos1.row = 1;
            Console.Write(pos.row);
            Console.Write(pos1.row);
            Console.ReadKey();
        }

结构体与类的不同

在上述代码中,改变其中一个对象中的值的时候,会发现两者的数据其实是互不干扰的,原因是结构是值类型的数据结构,在赋值新的对象的时候实际上是拷贝了一份新的数据和结构 ,与类不同,类是引用类型,类是引用了同一块数据,所以结构体之间的数据是不会互相干扰的。

相关推荐
MY_TEUCK6 小时前
Sealos 平台部署实战指南:结合 Cursor 与版本发布流程
java·人工智能·学习·aigc
2401_873479406 小时前
如何利用IP查询定位识别电商刷单?4个关键指标+工具配置方案
开发语言·tcp/ip·php
我爱cope7 小时前
【从0开始学设计模式-10| 装饰模式】
java·开发语言·设计模式
rockey6277 小时前
AScript函数体系详解
c#·.net·script·eval·expression·function·动态脚本
菜鸟学Python7 小时前
Python生态在悄悄改变:FastAPI全面反超,Django和Flask还行吗?
开发语言·python·django·flask·fastapi
朝新_7 小时前
【Spring AI 】图像与语音模型实战
java·人工智能·spring
RH2312117 小时前
2026.4.16Linux 管道
java·linux·服务器
zmsofts8 小时前
java面试必问13:MyBatis 一级缓存、二级缓存:从原理到脏数据,一篇讲透
java·面试·mybatis
浪浪小洋8 小时前
c++ qt课设定制
开发语言·c++
charlie1145141918 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构