如何:了解向方法传递结构和向方法传递类引用之间的区别(C# 编程指南)
2010-08-29 13:02
381 查看
本示例演示在向方法传递结构时,传递的是该结构的副本,而在传递类实例时,传递的是一个引用。
本示例的输出表明:当向 ClassTaker 方法传递类实例时,只更改类字段的值。但是向 StructTaker 方法传递结构实例并不更改结构字段。这是因为向 StructTaker 方法传递的是结构的副本,而向 ClassTaker 方法传递的是对类的引用。
示例
本示例的输出表明:当向 ClassTaker 方法传递类实例时,只更改类字段的值。但是向 StructTaker 方法传递结构实例并不更改结构字段。这是因为向 StructTaker 方法传递的是结构的副本,而向 ClassTaker 方法传递的是对类的引用。
示例
class TheClass { public string willIChange; } struct TheStruct { public string willIChange; } class TestClassAndStruct { static void ClassTaker(TheClass c) { c.willIChange = "Changed"; } static void StructTaker(TheStruct s) { s.willIChange = "Changed"; } static void Main() { TheClass testClass = new TheClass(); TheStruct testStruct = new TheStruct(); testClass.willIChange = "Not Changed"; testStruct.willIChange = "Not Changed"; ClassTaker(testClass); StructTaker(testStruct); Console.WriteLine("Class field = {0}", testClass.willIChange); Console.WriteLine("Struct field = {0}", testStruct.willIChange); // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } /* Output: Class field = Changed Struct field = Not Changed */
相关文章推荐
- 了解向方法传递结构和向方法传递类引用之间的区别(C# 编程指南)
- C#学习基本概念之类与结构--向方法传递结构与类引用之间的区别
- 向方法传递结构和向方法传递引用之间的区别 总结
- C#之方法传递结构和类之间的区别学习案例
- 传递引用类型参数(C# 编程指南)
- 如何:实现和调用自定义扩展方法(C# 编程指南)
- 第2章 Java编程基础——FAQ2.14 变量之间传值时可分为值传递和引用传递, 那么它们有何区别?
- 如何:使用 Split 方法分析字符串(C# 编程指南)
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- C++ 模板和 C# 泛型之间的区别(C# 编程指南)
- 如何:使用 Split 方法分析字符串(C# 编程指南)
- 传递引用类型参数(C# 编程指南)
- c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- c#方法中调用参数的值传递方式和引用传递方式,以及ref与out的区别
- 理解C#中参数的值和引用以及传递结构和类引用的区别
- 如何:重写 ToString 方法(C# 编程指南)
- C#/C++ 模板和 C# 泛型之间的区别(C# 编程指南
- 泛型方法(C# 编程指南)