Params、ref、out讲解

本文详细介绍了C#中params参数的特性、语法使用、实例演示,包括params参数列表的用途、如何在代码中正确应用params参数,以及与ref和out关键字的区别和使用场景。通过具体的代码实例,深入浅出地解释了params参数在方法调用中的作用和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

params可以包含任意多的参数,可以是0个可以是多个,它并没有数量限制,并不像泛型委托中的最多只能有16个输入参数。

我们在使用params参数列表的形式,如果有多个参数只能把params这个参数放到最后,前面放其他参数。

params的参数可以是大括号内的值,也可以是一个特定类型的数组。

params的实例一代码如下,eg:

1 string str = "fabcd";
2 string[] ss = str.Split('a', 'b');
3 foreach (var a in ss)
4 {
5     Console.WriteLine(a);
6 }
7 Test("1", "2", "3");
8 //Test(new string[] { "1", "2", "3" });//都是可以的
9 Console.Read();

params的实例二代码如下,eg:

static string Add(params int[] paraInts)//如果有多个参数params一定要放在最后一个位置上。
{
    int sum = 0;
    foreach (var paraInt in paraInts)
    {
        sum += paraInt;
    }
    return sum.ToString();
}
//调用代码
Console.WriteLine(Add(1, 23, 4, 6, 6, 7, 7));//等价于下面的方式
Console.WriteLine(Add(new int[] { 1, 23, 4, 6, 6, 7, 7 }));

ref和out

ref在使用变量之前必须为变量赋值,ref使用的情况就是需要把外面的值传递到方法内参与运算,如工资奖金、迟到扣钱等奖惩制度,都需要转第一个salary进去,然后参与运算,这个时候我们就需要使用ref。使用ref的时候,在方法内可以使用ref 传递过来的变量也可以不使用。


out必须在方法里面为变量赋初值,即时方法外赋值了也是无效的。我们在方法内必须使用out 传递过来的变量因为我们要为它赋初值之后才可以,否则报错。


当用户登录系统的时候,如果用户名是admin,密码是8888的时候才提示登录成功,并且返回一个true,否则提示用户名或者密码错误,返回一个false。这个时候我们设计方法的时候最好使用out(当然使用ref也可以实现),而不是使用ref,虽然ref也能实现,但是我们希望的是变量值必须是方法内赋值的而不是外面赋值。所以我们希望使用out参数而不是ref。

//方法一和方法二或者方法三组合都可以算作多个重载,但是不可以同时出现方法二和方法三因为他们都是传递地址的,只能算一个。
static void M2(int i)
{
    //方法一
}
//static void M2(ref int i)
//{
//方法二
//}
static void M2(out int i)
{
    i = 100;
    //方法三
}

 

转载于:https://www.cnblogs.com/shoushangdeyu/p/4450574.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值