- C#方法调用传递的参数分四类:
- 默认的值参数(value parameter); //传递复制品
- 引用参数(reference parameter),关键字"ref";//传递引用指针
- 输出参数(output parameter),关键字"out"。//方法返回一个以上的返回值时使用
- 数组参数(array parameter),关键字"params"
- 引用参数与输出参数的区别:
“引用参数”与“输出参数”非常相似。out修饰符ref修饰符有很相似的地方:传址。事实上保留字“ref”和“out”本身在中间语言里的实现是一模一样的。但C#中的ref参数与out参数还是有区别的:- ref参数必须在进入方法之前得到赋值;
- out参数则必须在离开方法之前得到赋值。需要记住输出参数与通常的函数返回值有一定的区别:函数返回值往往存在堆栈里,在返回时弹出;而输出参数需要用户预先制定存储位置,也就是用户需要提前声明变量--当然也可以初始化。
using System;
class Test //拆分姓名
{
static void ResoluteName(string fullname,out string firstname,out string lastname)
{
string[] strArray=fullname.Split(new char[]{' '});
firstname=strArray[0];
lastname=strArray[1];
}
public static void Main()
{
//string MyName="Cornfield Lee";
Console.WriteLine("Enter Your Name:");
string MyName = Console.ReadLine();
string MyFirstName,MyLastName;ResoluteName(MyName,out MyFirstName,out MyLastName);
Console.WriteLine("My first name: {0}, My last name: {1}",
MyFirstName, MyLastName);
}
}
- 数组参数(关键字"params")
using System;
class Test //合计所有整数值
{
static int Sum(params int[] args)
{
int s=0;
foreach(int n in args)
{
s+=n;
}
return s;
}
static void Main()
{
int[] var=new int[]{1,2,3,4,5};
Console.WriteLine("The Sum:"+Sum(var));//传数组变量
Console.WriteLine("The Sum:"+Sum(10,20,30,40,50));//传能够隐式转化为数组的参数
}
}
注意以下两个规定:- 数组参数只能是一维的;
- 如果有多个输入参数,就只允许一个输入参数是params参数,而且它必须是参数表中的最后一个。
浙公网安备 33010602011771号