深入理解C#之 参数传递 ref out params【转】
2012-06-26 18:24
477 查看
在讲C#参数传递之前,我们先简单讨论下 c#中值类型和引用类型的定义以及区别,有助于我们更好的理解参数传递。
我们从内存的角度来简单讨论下值类型和引用类型的区别。我们都知道值类型存储在栈上,引用类型分别在栈和托管堆上。如下图:
View Code
string 类型我们都知道是我们最常用的一种引用类型,那么sting类型的参数传递会是什么样的呢,我们可以自己试验一下,会发现string是很特殊的一个引用类型。后续我会继续讲解关于string类型。 不正之处 欢迎指正!
我们从内存的角度来简单讨论下值类型和引用类型的区别。我们都知道值类型存储在栈上,引用类型分别在栈和托管堆上。如下图:
View Code
// cs_params.cs using System; public class MyClass { public static void UseParams(params int[] list) { for (int i = 0 ; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } public static void UseParams2(params object[] list) { for (int i = 0 ; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } static void Main() { UseParams(1, 2, 3); UseParams2(1, 'a', "test"); // An array of objects can also be passed, as long as // the array type matches the method being called. int[] myarray = new int[3] {10,11,12}; UseParams(myarray); } }
string 类型我们都知道是我们最常用的一种引用类型,那么sting类型的参数传递会是什么样的呢,我们可以自己试验一下,会发现string是很特殊的一个引用类型。后续我会继续讲解关于string类型。 不正之处 欢迎指正!
相关文章推荐
- 深入理解C#之 参数传递 ref out params
- 深入理解C#之 参数传递 ref out params
- C# 运用params修饰符来实现变长参数传递
- 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解
- c#方法中调用参数的值传递方式和引用传递方式以及ref与out的区别深入解析
- 通过内存模型深入理解参数传递方式
- C#方法的参数 Ref Out Params 4种类型的参数
- C# params传递多个参数
- C# 参数传递、引用传递的一些个人理解
- params数据来源和参数传递的一点小理解
- 我理解c#(一): 参数传递和变量复制之间的关系
- 【GoLang】深入理解slice len cap什么算法? 参数传递有啥蹊跷?
- C# 运用params修饰符来实现变长参数传递的方法
- C#方法的参数 Ref Out Params 4种类型的参数
- c#引用参数传递的深入剖析
- 前端周报:前端面试题及答案总结;JavaScript参数传递的深入理解
- 深入理解python中函数传递参数是值传递还是引用传递
- 深入理解参数传递
- C#.NET学习笔记---C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- C#中有关于:按 值 和 引用 传递参数 的理解