今天简要的说下C#中的两个关键字,ref和out关键字,其实在之前学习java的时候,还真是没接触过这两个东西,刚开始看到,还觉得,C#怎么就那么多关键字,不过了解后,还是蛮简单的,就是引用的方式来传递参数。
1、ref关键字
当值类型和string类型参数要按引用方式传参时,可以通过ref关键字来声明引用参数,无论是形参还是实参,只要希望传递数据的引用,就必须添加ref关键字,下面举例说说这个关键字的用法:
class Program
{
static void Main(string[] args)
{
int a = 1, b = 2;
// int a, b;
exchange(ref a, ref b);
Console.WriteLine("{0},{1}", a, b);
}
static void exchange(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
}
输出结果:2,1
说明:进行该引用的方式传递时,a和b的值必须初始化,你可以试试不要初始化a、b的值,编译器会报错。2、out关键字
out关键字主要用来输出参数,方法中的return语句只能返回一个运算结果,虽然也可以使用引用型的参数返回计算结果,如上所示,但是ref修饰的参数在传参前要求先初始化实参。但是有时参数在传参前无法确定其值,其值只在方法调用后才返回,在传参前确定其值是没有意义的,则C#提供了out关键字。下面举例:
class Program
{
static void Main(string[] args)
{
int a = 10, b = 5;
int sum, product;
calc(a, b, out sum, out product);
Console.WriteLine("和为:{0}, 积为:{1}", sum, product);
}
static void calc(int a, int b, out int sum, out int product)
{
sum = a + b;
product = a * b;
}
}
输出结果是:和为:15, 积为:50
说明:可以看出,通过这种方式就可以完成多个值的返回了。
总结:本次的案例比较简单,两个关键字理解起来也不难,ref在传参前必须初始化,而out在方法调用里面必须赋值,不然编译器都会报错。对于上面有什么错误的,欢迎各位大牛指出,联系方式:229047554@qq.com