上一篇博客我介绍了ref参数,其实ref参数和out参数可以对比学习
什么是out参数
out:输出参数。
out参数注意事项:
- 传入到方法前可以不用先赋值(Main函数中可先不用赋值)
- 在方法内部,必须要有给参数赋值的语句。
验证注意事项
我们先写一个参数类型为int的方法函数,方法内部先不写任何东西:
public static void TestFunc(int num1)
{
}
而我们加上out参数以后会出现什么不同的地方,如下图:
很显然这就验证了使用out参数的时候,在方法内部必须要有给参数赋值的语句。
接着我们在方法内对num1赋值,报错消失
我们知道在ref关键字中如果不对参数赋初始值会报错,但是out关键字就不会。
我们试着写一个用out参数调用方法的函数:
static void Main(string[] args)
{
int n1;//声明一个整型数据n1,但先不对其进行赋值
TestFunc(out n1);//通过out参数对其方法进行调用
Console.WriteLine("调用之后n1="+n1);
Console.ReadKey();
}
public static void TestFunc(out int num1)//out关键字中在方法内部必须有对该参数的赋值语句
{
num1 = 100;
}
最后输出结果:
虽然我们在主函数中没有对n1初始化,但是通过out关键字我们为n1返回了一个数值。
拓展:
假如我们在main中给参数赋了值,在方法中也对该参数赋了值会出现什么状况呐?一起来看看~~
static void Main(string[] args)
{
int n1=200;//在调用方法前对n1初始化
Console.WriteLine("调用之前n1=" + n1);
TestFunc(out n1);//使用out关键字
Console.WriteLine("调用之后n1="+n1);
Console.ReadKey();
}
public static void TestFunc(out int num1)
{
num1 = 100;
}
最后输出结果:
没错你没有看错,使用out关键字后它亲die都不认识了,hhhhhhhhhh~~
言归正传即使在调用方法前对参数进行初始化,调用方法之后还是会更改变量的值,所以没有必要在使用out参数调用时还对参数进行初始化。
每天进步一点点! |