十、 out ref参数
函数 return只返回了一个值,返回多个同类型的值使用 数组
返回多个不同类型的值 out参数 ref参数
static bool[] check(int num,out int num1,out string str)
{
bool[] isPrime = { true, false};
num1 = 23;
str = "是一个字符串";
return isPrime;
}
/*-------------------------函数分割线-------------------------------------*/
int num2 = 13;
string str;
check(12,out num2,out str);//out 参数的意义是 函数内部变量发生变化后 将会把变化后的值带出来给num2
Console.WriteLine(str);
登录
static bool login(string name,string password,out string msg)
{ //out 参数不能赋默认值
if (name != "abc")
{
msg = "用户名错误";
return false;
}
else if (password != "123")
{
msg = "密码错误";
return false;
}
else
{
msg = "成功";
return true;
}
}
/*-------------------------函数分割线-------------------------------------*/
string msg;
login("abc", "123",out msg);
Console.WriteLine(msg);
ref 会将函数中的变量带出来改变外部变量的值,并且ref参数的变量在函数中可以不用赋值
int n = 1;
static void getNum(ref int n1)
{
n1 = 3;
Console.WriteLine(n1);
}
/*-------------------------函数分割线-------------------------------------*/
getNum(ref n);
Console.WriteLine(n);
十一、枚举
//枚举类型
enum Role //大驼峰命名法
{
射手, 法师, 坦克=10, 战士 //填写值,逗号隔开,每个值对应一个编号,从0开始
}
enum Week
{
周一,周二,周三,周四,周五,周六,周天
}
enum QQstatue
{
Online=1,Offline,Busy
}
//创建一个枚举类型变量
Role role = Role.法师;
Console.WriteLine((int)(role)); //枚举类型中的值都可以转化为整数
Console.WriteLine(Convert.ToString(role)); //枚举类型中的值都可以转化为字符串
Week day = Week.周三;
//字符串转化为枚举类型
Week week = (Week)Enum.Parse(typeof(Week), "周三");//如果在枚举类型中有对应编号的值,那么转换为的枚举值就是对应编号的值,如果没有
Console.WriteLine(week);
String strNum = "1";
switch (strNum)
{
case "1":
Console.WriteLine(QQstatue.Online);
break;
case "2":
Console.WriteLine(QQstatue.Offline);
break;
case "3":
Console.WriteLine(QQstatue.Busy);
break;
default:
break;
}
//遍历枚举
foreach (string i in Enum.GetNames(typeof(Week)))//遍历名字
{
Console.WriteLine(i);
}
foreach (int i in Enum.GetValues(typeof(Week)))//遍历值
{
Console.WriteLine(i);
}