您的位置:首页 > 编程语言 > C#

深入理解C#之 参数传递 ref out params【转】

2012-06-26 18:24 477 查看
在讲C#参数传递之前,我们先简单讨论下 c#中值类型和引用类型的定义以及区别,有助于我们更好的理解参数传递。

我们从内存的角度来简单讨论下值类型和引用类型的区别。我们都知道值类型存储在栈上,引用类型分别在栈和托管堆上。如下图:

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类型。 不正之处 欢迎指正!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: