值类型与引用类型传递的艺术
1. 值类型参数按值传递
2. 引用类型参数按值传递
3. 值类型参数按引用传递
4. 引用类型参数按引用传递
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //示例1.值类型按值传递,操作的是该值类型实际的一份拷贝 6 int a = 20; 7 Add(a);//传递的是在堆栈上面a的一份拷贝 8 Console.WriteLine(a); 9 10 //示例2.引用类型按值传递,操作的是该引用类型对象的引用地址(但是该引用还是按值传递的),所以会影响改变原来对象 11 Animal Robbit = new Animal(); 12 AddRef(Robbit); 13 //按值传递总结:都是传递的值,值类型传递的是值类型 “值”的拷贝 引用类型:传递的是对象的引用地址 14 15 16 17 18 //示例3.值类型的按引用传递:传递的是其实际值的地址,相对于操作的是值类型在堆栈上面的那块内存 19 int i = 33; 20 ChangeInt(ref i); 21 Console.WriteLine(i.ToString()); 22 //示例4.引用类型按引用传递,传递的是对象引用的引用 23 string str = "WOW"; 24 ChangeRef(ref str); 25 Console.WriteLine(str); 26 Console.ReadKey(); 27 28 //按引用传递总结:是传递参数的地址, 29 30 } 31 32 static void ChangeRef(ref string astr) 33 { 34 astr = "hello word"; 35 } 36 37 static void ChangeInt(ref int i) 38 { 39 i = 22; 40 41 } 42 static void AddRef(Animal robbit) 43 { 44 robbit.eye = 3; 45 Console.WriteLine(robbit.eye); 46 } 47 static void Add(int i) 48 { 49 i = 200; 50 } 51 } 52 53 public class Animal 54 { 55 public int eye = 2; 56 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库