***1.*** out参数侧重在一个方法中可以返回多个不同类型的值
out参数要求在定义的方法内部必须为其赋值(传参和调用都要加上out)
public static bool getLogin(string userName,string passWord,out string msg)
{
if (userName == "admin" && passWord == "admin")
{
msg = "登陆成功";
return true;
}
else if (userName == "admin")
{
msg = "密码输入错误";
return false;
}
else if (passWord == "admin")
{
msg = "用户名输入错误";
return false;
}
else
{
msg = "nothing is right";
return false;
}
}
#region out参数:登录板块
Console.WriteLine("Please Write Down Your Username:");
string userName=Console.ReadLine();
Console.WriteLine("Please Write Down Your PassWord:");
string passWord = Console.ReadLine();
string msg;
Utils.getLogin(userName, passWord, out msg);
Console.WriteLine(msg);
Console.ReadKey();
#endregion
***2.***ref参数:能够将一个变量带入一个方法中改变,然后连值带出
ref参数要求在方法外进行赋值
public static void swapTest(ref int param1,ref int param2)
{
int temp = param1;
param1 = param2;
param2 = temp;
}
#region ref参数:交换
int num = 11;
int num2 = 22;
Console.WriteLine("交换前num为{0}",num);
Console.WriteLine("交换前num2为{0}",num2);
Utils.swapTest(ref num, ref num2);
Console.WriteLine(num);
Console.WriteLine(num2);
#endregion
***3.***params可变参数:将实参列表中跟可变参数数组类型一致的元素当作数组元素处理
参数数组必须是形参列表中最后一个参数(唯一性)
public:所有对象都可以访问
private:仅限本类内部访问
protected:仅限本类和子类访问(实例不行)
internal:本项目内范围访问
protected internal:本项目或者子类访问
ected:仅限本类和子类访问(实例不行)
internal:本项目内范围访问
protected internal:本项目或者子类访问