方法的参数(形参,实参,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)    
    { 
        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;而且不用给与赋值.
注意:数组参数只能使用一次,而且要放到参数列表的最后。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值