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

结构体与类的不同

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

相关推荐
m0_56491492几秒前
Altium Designer,AD如何修改原理图右下角图纸标题栏?如何自定义标题栏?自定义原理图模版的使用方法
java·服务器·前端
飞升不如收破烂~几秒前
# Spring Boot 跨域请求未到达后端问题排查记录
java·spring boot·后端
AllData公司负责人1 分钟前
【亲测好用】数据集成管理能力演示
java·大数据·数据库·开源
brevity_souls3 分钟前
SQL Server 窗口函数简介
开发语言·javascript·数据库
阿蒙Amon6 分钟前
C#每日面试题-值传递和引用传递的区别
java·面试·c#
aloha_7897 分钟前
乐信面试准备
java·spring boot·python·面试·职场和发展·maven
火云洞红孩儿13 分钟前
零基础:100个小案例玩转Python软件开发!第六节:英语教学软件
开发语言·python
Knight_AL17 分钟前
Spring Boot 多模块项目中优雅实现自动配置(基于 AutoConfiguration.imports)
java·spring boot·mybatis
短剑重铸之日21 分钟前
《RocketMQ研读》面试篇
java·后端·面试·职场和发展·rocketmq
AI殉道师24 分钟前
FastScheduler:让 Python 定时任务变得优雅简单
开发语言·python