c#方法的重载:参数中Out和ref的使用

方法的重载:
方法名相同但是参数不同,参数的类型个数不同,类型也不相同;
方法的重载和返回值无关,和参数的类型和个数有关;

返回多个值,相同类型

static void Main(string[] args)
        {
            int[] num ={32,3,23,2,3,23, };
            int[] arraynum=Array(num);
            Console.WriteLine("最大值为{0}:",arraynum[0]);
            Console.WriteLine("最小值为{0}",arraynum[1]);
            Console.WriteLine("总和为{0}", arraynum[2]);
            Console.ReadKey();

        }
        public static int[] Array(int[] nums)
        {
            int[] array = new int[3];
            array[0] = int.MinValue;
            array[1] = int.MaxValue;
            array[2] = 0;
              for(int i=0;i<nums.Length;i++)
            {
                if (nums[i] > array[0])
                {
                    array[0] = nums[i];
                }
                if (nums[i] <array[1])
                {
                    array[1] = nums[i];
                }
                array[2] = array[2] + nums[i];
            }

            return array;

第二种表示方法:

    
        public static int Arrausum(int[]numbers,out int max,out int min)
        {
               max = int.MinValue;
            min = int.MaxValue;
            int sum = 0;
            for (int i=0;i<numbers.Length;i++)
            {
                if (numbers[i]>max)
                {
                    max = numbers[i];
                }
                if (numbers[i]<min)
                {
                    min = numbers[i];
                }
                sum += numbers[i];
            }
            return sum ;
            

返回两种不同数据类型的值, 参数中使用out在该方法内必须给变量进行赋值,在方法外可以不对变量进行赋值

 static void Main(string[] args)
        {
            int num1;
            int num2 = 39;
            int num = Add(out num1, num2);
        }
        public static int Add(out int num1, int num2)  //out 修饰方法的参数是指将这个方法中的参数传到方法外边,在方法中必须给参数进行赋值,在方法外部 可以不给参数赋值
        {
            num1 = 90;
            return num1 + 10;

        }

在使用ref时必须给变量进行赋值,在方法内可以不用赋值

 static void Main(string[] args)
        {
            int num1=25;
            int num2 = 39;
            int num = Add(ref num1,ref  num2);
            Console.WriteLine("{0},{1}", num, num1);
            Console.ReadKey();
        }
        public static int Add(ref  int num1, ref  int num2)  //使用ref必须给变量赋初值,out 方法吧方法的值传出,但是ref既可以将值传出又可以将值传入
        {
           
            return num1 + 10;

        }

拼接字符串练习

 string[] names = { "sdf", "sahfdkasd", "usdfg" };
            string st =Changename(names);
            Console.WriteLine(st);
            Console.ReadKey();

            
        }
        public static string  Changename(string []names )
        {
            string name="";
          
            for (int i =0;i<names.Length -1;i++)
            {
               name = name+names[i]+ "|";
                
            }
            return name+names [names.Length-1];
        }

游戏第一横行和第一竖行的书写


        public static int[] map = new int[100];//声明一个长度为100的数组用来画地图
        public static int[] playerpos = new int[] { 0, 0 };//存玩家


        static void Main(string[] args)
        {

            ShowUi();
            Console.ReadKey();

        }
         public static void  ShowUi()
        {
            Console.WriteLine("********************************");
            Console.WriteLine("*                              *");
            Console.WriteLine("*   超级骑士飞行棋   1.02.03   *");
            Console.WriteLine("*                              *");
            Console.WriteLine("********************************");
        }
        /// <summary>
        /// 初始化地图
        /// </summary>
        public static void Initmap()
        {
            int[] Luckturn = { 4, 34, 5, 64, 43 };
            int[] LandMine = { 76, 2, 45, 75 };
            int[] pause = { 3, 15, 53, 74 };
            int[] time = { 85, 23, 40, 68 };
            for (int i=0; i<Luckturn .Length;i++)
            {
                map[Luckturn[i]] = 1;
            }
            for (int i = 0; i < LandMine.Length; i++)
            {
                map[LandMine[i]] = 2;
            }
            for (int i = 0; i < pause.Length; i++)
            {
                map[pause[i]] = 3;
            }
            for (int i = 0; i < time.Length; i++)
            {
                map[time[i]] = 4;
            }
;
        }
        /// <summary>
        /// 画第一竖行
        /// </summary>
        public static void Drowmap()
        {
            for(int i=0; i<=29;i++)
            {
                if (playerpos[0] == playerpos[1] && playerpos[0] == i) //如果AB在同一坐标上就画《》
                {
                    Console.Write("<>");
                }
                else if(playerpos [0]==i)//如果玩家A在地图上就画A
                {
                    Console.Write("A");
                }
                 else if (playerpos[1]==i) //如果玩家B在地图上就画B
                {
                    Console.Write("B");
                 }
                else
                {
                    switch (map [i]) //如果玩家A和玩家B不在一起也不在这个坐标上就画该显示地图图标
                    {
                        case 0: Console.Write ("□");break;
                        case 1:Console.Write("◎");break;
                        case 2:Console.Write("★");break;
                        case 3:Console.Write("▲");break;
                        case 4:Console.Write("卍");break;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值