一、函数
返回多个值 同个类型返回数组 不同类型多个值 out参数 在形参后面加上out
/*int num2 = 2;
static bool isPrime(int num,out int num1)
{
num1 = 1;//定义out参数后面变量 在函数内部必须赋值
return true;
}
isPrime(10, out num2); //将num1的值赋给num2=num1
Console.WriteLine(num2);*/
/* Console.WriteLine("请输入用户名");
string name = Console.ReadLine();
Console.WriteLine("请输入密码");
string pwd = Console.ReadLine();
string msg;
static bool isLogin(string name,string pwd,out string msg2)
{
if(name=="admin"&&pwd=="1234")
{
msg2 = "登录成功";
return true;
}
else if(name == "admin" && pwd != "1234")
{
msg2 = "密码出错";
}
else if (name != "admin" && pwd == "1234")
{
msg2 = "用户名出错";
}
else
{
msg2 = "用户名密码出错";
}
return false;
}
isLogin(name, pwd, out msg);
Console.WriteLine(msg);*/
ref 同样还是将函数中的变量的值带出来 不一样的是在函数中可以不用赋初值 外部接收的变量需要赋初始值
/* Console.WriteLine("请输入阶数");
int num = Convert.ToInt32(Console.ReadLine());
static int getNum(int num)
{
if (num == 1) return 1;
if (num == 2) return 2;
return getNum(num - 1) + getNum(num - 2);
}
Console.WriteLine(getNum(num));*/
Console.WriteLine("请输入盘子数");
int n = Convert.ToInt32(Console.ReadLine());
static void hanoi(int n,string start,string middle,string end)
{
if(n==1)
{
Console.WriteLine("从{0}经过{1}移到{2]",start,middle,end);
return;
}
hanoi(n - 1, start, end, middle);//将n-1个盘子移到中间的柱子上
hanoi(1,start, middle, end);
//剩n-1个盘子
hanoi(n - 1, middle, start, end);
}
hanoi(3, "A", "B", "C");
二、常量 const 关键字
const int num = 1;
三、枚举类型 enum
/enum Role //遵循大驼峰命名法 { 神仙,射手=10,坦克,法师,战士,辅助,刺客 //每个枚举的名字都对应着一个编号 }/
/* enum Day
{
周一,周二,周三,周四,周五,周六,周日
}*/
enum State
{
OnLine,OffLine,Busy
}
static void Main(string[] args)
{
/* Role role = Role.射手;
string strRole = Convert.ToString(role);//枚举类型的名字可以转换成字符串
int intRole = Convert.ToInt32(role);//可以转成整数
//字符串转成枚举类型的值
Role strRole2 = (Role)Enum.Parse(typeof(Role),"射手");
if(strRole2==Role.战士)
{
Console.WriteLine("防御加10");
}
Console.WriteLine(role);
Console.WriteLine(strRole + 1);
Console.WriteLine(intRole);*/
Console.Write("请输入状态编号");
string strNum = Console.ReadLine();
switch(strNum)
{
case "1":
Console.WriteLine(State.OnLine);
break;
case "2":
Console.WriteLine(State.OffLine);
break;
case "3":
Console.WriteLine(State.Busy);
break;
default:
Console.WriteLine("无状态");
break;
}