介绍params、ref、out这三个关键字的用法及不同之处是C#入门必备的知识。下面我们分别介绍一下这三个关键字的用法以及示例说明。
params
params关键字用于表示方法传入参数的个数可能是可变的,具体用法是将类型后加上“params”关键字,如下:
public void Add(params int[] numbers)
{
int sum = 0;
for (int i = 0; i < numbers.Length; i++)
{
sum += numbers[i];
}
Console.WriteLine("The sum is "+sum);
}
下面是Add方法的调用方式:
Add(); // 输出The sum is 0
Add(1); //输出The sum is 1
Add(1,2,3); //输出The sum is 6
Add(2,3,4,5,6); //输出The sum is 20
从上面可以看出,在调用方法时,可以不传入任何参数,也可以传入一到多个参数。使用params关键字时需要注意以下几点:
- params关键字必须放在方法定义的最后一个参数
- 一个方法中只能有一个params关键字
- 如果传入的数组长度为0,则不会创建任何数组实例
ref
ref关键字用于指示参数是一个引用类型,并确保参数传入的值同调用者可能拥有的引用指向的值是相同的。在修改参数时,会修改引用类型指向的值。下面举一个示例:
public void RefMethod(ref int number)
{
number = number + 1;
}
下面是RefMethod方法的调用方式:
int value = 0;
RefMethod(ref value);
Console.WriteLine(value); //输出1
从上面代码块可以看出,RefMethod方法有一个参数number使用了ref关键字,表示该参数是一个引用类型。调用方法时使用了ref关键字,确保了该参数传入的值同调用者可能拥有的引用指向的值是相同的。在方法体内部将number的值加一,这时候value的值从0变成了1。
out
out关键字用于指示参数是一个输出型参数,传入参数的值不会被使用,但是必须在方法体内部对其进行一次赋值。其作用与ref关键字类似,不同之处在于ref关键字在使用前必须被初始化,而out关键字不需要。下面举一个示例:
public void OutMethod(out int number)
{
number = 1;
}
下面是OutMethod方法的调用方式:
int value;
OutMethod(out value);
Console.WriteLine(value); //输出1
从上面代码块可以看出,OutMethod方法有一个参数number使用了out关键字,表示该参数是一个输出型参数。调用方法时使用了out关键字,此时value尚未初始化(没有赋值),但仍可传递给函数。在方法体内部将number的值设为1,此时value的值从未被分配到一个值的0变成了1。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C#中三个关键字params,Ref,out - Python技术站