一、

二、
三、代码例子
1.新建 PointClass.cs
namespace StructAndClass
{
internal class PointClass
{
public PointClass(int x, int y)
{
X = x;
Y = y;
}
public int X { get; set; }
public int Y { get; set; }
}
}
2.新建 PointStruct.cs
namespace StructAndClass
{
internal struct PointStruct
{
public int X { get; set; }
public int Y { get; set; }
public PointStruct(int x, int y)
{
X = x;
Y = y;
}
}
}
3.Program.cs
using System;
namespace StructAndClass
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine("PointStruct =====");
var pStruct = new PointStruct(10, 10);
Console.WriteLine("初始值:x={0},y={1}", pStruct.X, pStruct.Y);
ModifyPointStruct(pStruct);
Console.WriteLine("调用 ModifyPointStruct() 后的值:x={0},y={1}", pStruct.X, pStruct.Y);
Console.WriteLine();
Console.WriteLine("PointClass =====");
var pClass = new PointClass(10, 10);
Console.WriteLine("初始值:x={0},y={1}", pClass.X, pClass.Y);
ModifyPointClass(pClass);
Console.WriteLine("调用 ModifyPointClass() 后的值:x={0},y={1}", pClass.X, pClass.Y);
Console.Read();
}
private static void ModifyPointStruct(PointStruct point)
{
Console.WriteLine("调用方法:ModifyPointStruct");
point.X = 20;
point.Y = 20;
Console.WriteLine("修改成的值:x={0}, y={1}", point.X, point.Y);
}
private static void ModifyPointClass(PointClass point)
{
Console.WriteLine("调用方法:ModifyPointClass");
point.X = 20;
point.Y = 20;
Console.WriteLine("修改成的值:x={0}, y={1}", point.X, point.Y);
}
}
}
4.结果:
【解析】
ModifyPointStruct(PointStruct point) 调用时修改的只是结构副本,所以原来的结构并没有发生变化;
ModifyPointClass(PointClass point) 调用时所修改的对象是原对象,因为参数传递过来的是一个引用地址,这地址指向原对象
四、总结
结构是值类型并在堆栈中传递,每次使用方法进行修改的都只是结构副本;
至于类,传递的是内存地址的引用,修改的就是初始值
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# C#
# 结构
# 类
# 区别
# 轻松学习C#的结构和类
# C#基础语法:结构和类区别详解
# C#中类与结构的区别实例分析
# C#枚举类型与结构类型实例解析
# 基于c# 类、接口、结构的联系与区别详解
# 深入c# 类和结构的区别总结详解
# c#结构和类的相关介绍
# C#类和结构详解
# 的是
# 这是
# 并在
# 数据结构
# 较小
# 类中
# 堆中
# class
# brush
# cs
# pre
# csharp
# internal
# StructAndClass
# namespace
# public
# PointClass
# li
# nbsp
# strong
相关文章:
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
TestNG的testng.xml配置文件怎么写
代购小票制作网站有哪些,购物小票的简要说明?
h5在线制作网站电脑版下载,h5网页制作软件?
网站制作服务平台,有什么网站可以发布本地服务信息?
网站专业制作公司有哪些,做一个公司网站要多少钱?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
网站网页制作专业公司,怎样制作自己的网页?
建站之星导航菜单设置与功能模块配置全攻略
宝塔建站教程:一键部署配置流程与SEO优化实战指南
网站制作公司,橙子建站是合法的吗?
,巨量百应是干嘛的?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
如何在新浪SAE免费搭建个人博客?
建站之星如何修改网站生成路径?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星后台密码遗忘?如何快速找回?
已有域名能否直接搭建网站?
javascript基本数据类型及类型检测常用方法小结
大学网站设计制作软件有哪些,如何将网站制作成自己app?
重庆市网站制作公司,重庆招聘网站哪个好?
电脑免费海报制作网站推荐,招聘海报哪个网站多?
如何快速搭建高效服务器建站系统?
如何解决ASP生成WAP建站中文乱码问题?
如何彻底删除建站之星生成的Banner?
如何在万网自助建站平台快速创建网站?
股票网站制作软件,网上股票怎么开户?
网站图片在线制作软件,怎么在图片上做链接?
建站之星如何取消后台验证码生成?
如何选择香港主机高效搭建外贸独立站?
建站org新手必看:2024最新搭建流程与模板选择技巧
nginx修改上传文件大小限制的方法
建站之星后台密码遗忘或太弱?如何重置与强化?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何做静态网页,sublimetext3.0制作静态网页?
如何快速搭建高效香港服务器网站?
制作宣传网站的软件,小红书可以宣传网站吗?
宝塔Windows建站如何避免显示默认IIS页面?
如何快速查询域名建站关键信息?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
公司门户网站制作流程,华为官网怎么做?
建设网站制作价格,怎样建立自己的公司网站?
模具网站制作流程,如何找模具客户?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何快速启动建站代理加盟业务?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何快速使用云服务器搭建个人网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。