VR引擎第八课

66 阅读2分钟

一、函数

返回多个值 同个类型返回数组 不同类型多个值 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;
        }