方法的参数传递机制(C#)

六 方法的参数传递机制

值参数,引用参数,输出参数

 

//参数的传递机制
using System;
class Method
{
    //值参数,传递的是数值本身,不改变外部变量的值
    public static void ValueMethod(int i)
    {
        i++;
    }
    //引用参数,传递的是数据地址,直接对数据进行操作,原值要变化
    //要注意的是string类型,赋值以后原值就不好改变了
    public static void ReferenceMethod(ref int i)
    {
        i++;
    }
    //输出参数,传递的也是地址,但是不同的是操作时一定要给变量赋初值
    public static void OutputMethod(out int i)
    {
        i=0;   //赋初值
        i++;
    }
    static void Main()
    { //对三种传值方式进行测试
        int i=0;         
        ValueMethod(i);
        Console.WriteLine("i="+i);   //输出为0,原值未改变
        int j=0;
        ReferenceMethod(ref j);
        Console.WriteLine("j="+j);   //输出为1,原值+1;
        int k;
        OutputMethod(out k);
        Console.WriteLine("k="+k);   //赋初值为0,输出为1。
    }
}

可变数量的参数

为了将方法声明为可以接受可变数量参数的方法,使用 params 关键字

/*
 * Created by SharpDevelop.
 * User: yangq
 * Date: 2016/8/27
 * Time: 23:57
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
class Method
{
    static int addi(params int[] values) //参数的数量可以变化,以数组的形式存放
    {   //参数的写法为(1)或(1,2,3,4,5)                                 
        //方法是把所有的参数相加,返回和值
        int sum=0;
        foreach(int i in values)
            sum+=i;
        return sum;
    }
    static void Main()
    { 
        Console.WriteLine(addi(1,2,3,4,5)); //输出结果为15.
    }
}

 

posted on 2016-08-28 00:26  天梦Interact  阅读(359)  评论(0编辑  收藏  举报