C#中的参数传递

原文地址:http://www.dingos.cn/index.php?topic=2004.0

C#中有四种参数传递的方式。这四种类型的参数是:

n  Value 

n  Out 

n  Ref 

n  Params 

 

1.值参数

C#中这是默认参数类型。如果参数前面没有任何的修饰符它是默认是“值”参数。但使用“值”类型的参数传递给函数的是真实值,这意味着在函数体内改变产生的值不会传递给调用部分。

using System;

class ParameterTest {

    static void MyMethod(int Param1) {

        Param1 = 100;

    }

 

    static void Main() {

        int Myvalue = 5;

        MyMethod(Myvalue);

        Console.WriteLine(Myvalue);

    }

}

上面程序输出5,虽然参数Param1的值在MyMethod方法改变了,但不会传递给调用它的部分,因此值参数仅仅是输入。

 

2.Out 参数 

out”参数仅仅是输出参数意味着他们是从函数中回传值。创建一个“out”参数通过在参数的数据类型前面加上out修饰符。每个“out”参数传递的仅仅是传递给方法一个没有分配的引用。

using System;

class ParameterTest {

    static void MyMethod(out int Param1) {

        Param1 = 100;

    }

 

    static void Main() {

        int Myvalue = 5;

        MyMethod(out Myvalue);

        Console.WriteLine(Myvalue);

    }

}

上面程序输出100,因此“out”参数的值传递会调用部分。

 

注意:

调用部分在参数前必须加上“out”修饰符。

out”参数不能使用函数之前分配给他的值。

在方法返回前,分配给“out”参数一个值。

 

3.Ref参数

ref”参数是输入/输出参数意味着他能够用来传递值给函数也可以从函数将值返回。创建“ref”参数是在参数数据类型前加上ref修饰符。每个“ref”参数传递给函数的是一个有值的引用。

using System;

class ParameterTest {

    static void Mymethod(ref int Param1) {

        Param1 = Param1 + 100;

    }

 

    static void Main() {

        int Myvalue = 5;

        Mymethod(ref Myvalue);

        Console.WriteLine(Myvalue);

    }

}

上面程序输出105,因此“ref”参数扮演着输入/输出的作用。

 

注意:

调用部分在参数前必须加上“ref”修饰符。

在调用方法前必须为“ref”参数分配值。

 

4.Params 参数

params”参数在C#中是非常有用的特点。当传递的参数的个数不确定是可以“params”参数。“params”是一个一维或交错数组。

using System;

class ParameterTest {

    static int Sum(params int[] Param1) {

        int val = 0;

        foreach(int P in Param1) {

            val = val + P;

        }

        return val;

    }

 

    static void Main() {

        Console.WriteLine(Sum(1, 2, 3));

        Console.WriteLine(Sum(1, 2, 3, 4, 5));

    }

}

上面程序输出615

 

注意:

为“params”参数传递的值可以是每个用逗号分隔的值列表,也可以是一个一维数组。

params”参数仅仅是输入参数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜晚回家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值