⽅法的参数(形参,实参,ref,out,params)参数
⽅法的参数分为形参和实参
形参
全称形式参数
实参
全称实际参数
定义⽅法时在⽅法后⾯()中传⼊的参数为形参,
调⽤⽅法时在⽅法后⾯()中传⼊的参数为实参。
ref引⽤参数
以下代码中⽅法Swap的作⽤的将俩个数字交换。
static void Swap(int a,int b)
{
int temp = a;
a = b;
b = temp;
}
static void Main(string[] args)
{
int a =10;
int b =5;
Swap( a, b);
Console.WriteLine(a +","+ b);
}
⼀般来说我们将a和b传⼊⽅法中,会输出10,5;
但是由于传⼊的是值类型,所有是把a和b赋值到了x和y上,交换的是x和y,⽽a和b没有交换,所有输出的a和b是没有交换的a和b 。
解决这个问题的⽅法就是ref
static void Swap(ref int a,ref int b)
{
int temp = a;
a = b;
b = temp;
}
static void Main(string[] args)
{
int a =10;
int b =5;
Swap(ref a,ref b);
Console.WriteLine(a +","+ b);
}
在形参和实参前加上ref,这样传⼊的实参就成了引⽤类型(引⽤类型另⼀篇博客中讲到过)。
这样a和x,b和y,所操作的就是⼀个值,这样就可以进⾏交换了。
out输出参数
⼀个⽅法使⽤return最多可以返回⼏个结果?
如果想返回多个该怎么做?
public void Cal(int a,int b,out int x,out int y)
{
x = a - b;
y = a + b;
}
myMath.Cal(numOne, numTwo,out resultOne,out resultTwo);
把想要输出的前⾯加上out;
这样就能把X,Y输出出来了
out主要代表通过out修饰的参数,就是⽤来输出的,他不管引⽤,只能放到等号左边来⽤,程序会认定out修饰过得参数是没有值的,只能在⽅法中赋值才可以。
ref代表的就是引⽤,如果想要取值赋值,各种操作,就得⽤ref。
注意:输出参数的形参必须是已经赋过值的
数组参数Params
public void Sum(params int[] a)
{
int result =0;
foreach(int x in a)
writeline方法属于类{
result += x;
}
Console.WriteLine("结果为: "+ result);
}
myMath.Sum(1,2,3,4,5);
注意:数组参数只能使⽤⼀次,⽽且要放到参数列表的最后。
默认值参数
如果⼀个参数⼤部分情况都是⼀个值,可否添加⼀个默认值参数呢?/// <summary>
/// 获取你的年级
/// </summary>
/// <returns>返回你的年级.</returns>
/// <param name="yourAge">你的年龄.</param>
/// <param name="jumpCount">跳过⼏级.</param>
public int GetYourGrade(int yourAge,int jumpCount =0)
{
int grade = yourAge -6+ jumpCount;
grade = grade >0&& grade <13? grade :-1;
return grade;
}
GetYourGrad(3,4);//可以赋值
GetYourGrad(3);//可以不赋值
这样他的掉过⼏级就默认等于0;⽽且不⽤给与赋值.
注意:数组参数只能使⽤⼀次,⽽且要放到参数列表的最后。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论