一.out关键字的使用和注意事项
1.out关键字的定义
- 返回同个类型的值,我们可以返回一个数组来解决多个同类型返回值的需求
- 但是返回多个不同类型的值的时候,我们可以使用out参数
注意:out参数在内部必须要给其赋值,在使用out关键字的时候,要确保函数能够正确的返回out定义的值,要全方位考虑好,并且定义了out的变量,必须在函数内进行赋值。
2.out关键字的案例,实现验证用户输入的用户名和密码
static bool Login(string usename, string password,out string msg)
//在使用out关键字的时候,要确保函数能够正确的返回out定义的值,要全方位考虑好
{
if(usename == "admin" && password == "123456")
{
msg = "登录成功";
return true;
}else if(usename == "admin" && password != "123456")
{
msg = "密码错误";
}else if (usename != "admin" && password == "123456")
{
msg = "用户名错误";
}else
{
msg = "用户名密码错误";
}
return false;
}
//调用,执行函数
Login(usename, password, out msg);
//输出验证信息
Console.WriteLine(msg);
总结:简单来说,out修饰的变量,在函数内进行赋值的时候,就会调用函数的时候,在函数内赋值的值就会被带出来,如果没有out修饰的变量的话,你直接赋值的话是改变不了原来定义的值的。并且要确保out的值能够被返回。
一.ref参数的使用和注意事项
- 作用:给形参前面加一个ref,可以将外部变量带入到函数中进行赋值改变,然后将改变后的值在传出来赋值给传进来的变量名,ref参数要求变量外部必须赋值,方法内部可以不赋值
总结out和ref的区别: 1.相同之处: 都可以改变外部的变量的值,在函数内进行赋值都可以把值给带出来。
2.不同之处:
out可以不定义初始值,但是在函数里面必须确保要赋值,要保证有值返回
ref是必须要赋初始值的,函数内部可用可不用赋值。