蓝鸥Unity开发基础二——课时9 方法参数

一、方法参数

定义方法时,在参数列表中定义的参数叫做形参;调用方法时,在参数列表中传递的参数叫做实参;

二、方法参数代码解说一:输出a+b的和

using System;

namespace Lesson_09
{
    public  class  MyClass{
        
    public  int  Sum(int a,int  b){
        return a + b;
    }

    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();
        
            Console.WriteLine (c.Sum(5,12));
        }
    }
}

三、方法参数代码解说二:形参和实参的举例说明

using System;

namespace Lesson_09
{
    public  class  MyClass{
        //定义方法时,参数a和b是形式参数——形参
    public  int  Sum(int a,int  b){
                int a=5;
                int b=12;
                return a + b;
    }

    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();
            //调用方法时,传入的参数5和12是实际参数——实参
            int i = c.Sum (5,12);
        
        }
    }
}

四、方法参数代码解说三,如何把a和b的值进行互换?采用值类型是否可行?请记住值类型系统会自动分配空间

using System;

namespace Lesson_09
{
    public  class  MyClass{

        public  void  Swap(int a,int b){
            
            int temp = a;
            a = b;
            b = temp;
        }

    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();
            int i = 5;
            int j = 12;
            c.Swap (i,j);
            Console.WriteLine ("I="+i);
            Console.WriteLine ("J="+j);    
        }
    }
}

五、方法参数代码解说四:如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数 

namespace Lesson_09
{
    public  class  MyClass{

        public  void  Swap(int a,int b){
            
            int temp = a;
            a = b;
            b = temp;
        }
        public  void  A(int[] arr){
            arr[0]=12;
            
        }

    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();

            int [] a=new int[]{1};
            c.A (a);
            Console.WriteLine (a[0]);    
        }
    }
}

六、引用参数

值类型参数想要达到引用类型参数的效果,需要用到引用修饰符ref

方法参数代码解说五:ref关键字使用

using System;

namespace Lesson_09
{
    public  class  MyClass{

        public  void  Swap(ref int a, ref int b){
            
            int temp = a;
            a = b;
            b = temp;
        }
        //如果想在方法内对参数进行修改来影响外部的值,那么可以使用引用类型的参数
//        public  void  A(int[] arr){
//            arr[0]=12;
            
//        }

    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();

//            int [] a=new int[]{1};
//            c.A (a);
//            Console.WriteLine (a[0]);    
            int i=5;
            int j = 12;
            c.Swap (ref i,ref j);
            Console.WriteLine ("i="+i);
            Console.WriteLine ("j="+j);

        }
    }
}

 

七、输出参数

输出参数:如果想让一个方法返回多个值,可以用输出参数来处理,在参数钱加一个out修饰符

只有一个返回值的代码实例:

using System;

namespace Lesson_09
{
    public  class  MyClass{

        public  int Max(int a,int b,int c){
            
            int max = a;
            if(max<b){
                max = b;
                
            }
            if(max<c){
                max = c;
            }
            return max;
        }


    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();

            int i = 3;
            int j = -4;
            int k = 14;
            Console.WriteLine (c.Max(i,j,k));
        }
    }
}

对比输出最小值:使用out修饰符

using System;

namespace Lesson_09
{
    public  class  MyClass{

        //使用out修饰符来定义输出参数

        public  int Max(int a,int b,int c,out int min){
            //初始化输出参数
            min = 0;
            int m = a;
            if(m>b){
                m = b;
            }
            if(m>c){
                m = c;
            }
            min = m;
            int max = a;
            if(max<b){
                max = b;
                
            }
            if(max<c){
                max = c;
            }
            return max;
        }
            
    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();

            int i = 3;
            int j = -4;
            int k = 14;
            int min = 0;
            int max = c.Max (i, j, k,out min);
            Console.WriteLine ("Min="+min);
        }
    }
}

八、可变参数

可变参数:如果在定义方法时不能确实有多少个参数,我们可以使用可变参数params

using System;

namespace Lesson_09
{
    public  class  MyClass{
        //定义方法时不能确定调用时会传递多少个参数,我们可以使用可变参数
        public int  Sum(params int[] para){
            int s = 0;
            foreach(int i in para){
                s += i;
            }
            return  s;
        }
    }
    class MainClass
    {

        public static void Main (string[] args)
        {
            MyClass c = new MyClass ();
                int s = 0;
                s = c.Sum (1,2,3,5);
                Console.WriteLine (s);
        }
    }
}

UNITY GUISTYLE 更改不生效_System

练习:实现一个方法,能够交换参数的值,能将传递进去的三个参数按照由小到大的顺序进行排序,使用ref实现!



转载于:https://blog.51cto.com/11131960/1842280