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();
        }

结构体与类的不同

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

相关推荐
咖啡八杯11 小时前
GoF设计模式——抽象工厂模式
java·后端·spring·设计模式·抽象工厂模式
Thanks_ks11 小时前
分布式锁:Redis 与 Redisson 的工程实践与避坑指南
java·redis·分布式锁·redisson·微服务架构·并发编程·高可用
xyq202411 小时前
Lua 模块与包
开发语言
掉鱼的猫11 小时前
agentscope-harness vs solon-ai-harness:Java 智能体「马具引擎」的双雄对决
java·openai
RainCity11 小时前
Java Swing 自定义组件库分享(四)
java·笔记·后端
小短腿的代码世界11 小时前
打印不止是QPrinter:深入Qt Print Support框架的内核设计与跨平台输出管道
开发语言·qt
性野喜悲11 小时前
python将excel中的链接转成图片并替换链接展示在excel中【将pdf的第一页插入excel并将对应信息获取到插入签名等位置】
开发语言·python·excel
诙_11 小时前
C++代码实践应用
开发语言·c++
谙弆悕博士11 小时前
【附C语言源码】从零实现命令行贪吃蛇游戏
c语言·开发语言·学习·游戏·游戏程序·小游戏·贪吃蛇
带刺的坐椅11 小时前
agentscope-harness vs solon-ai-harness:Java 智能体「马具引擎」的双雄对决
java·ai·llm·solon·agentscope·harness