首页 > 编程语言 >C#-02 传入参数的一些用法2

C#-02 传入参数的一些用法2

时间:2022-09-22 09:47:26浏览次数:50  
标签:02 返回 Console C# Class 用法 int ref Cale

C#_02 参数应用2

一、关于 “ref” 局部变量和 “ref” 返回

  • 在前面已经明白了 ref 关键词传递一个对象引用给方法调用,这样在方法中对对象修改过后返回后依然可见,而 ref 返回却相反,它允许你将引用发送到方法外,然后在调用的上下文使用这一引用。而与之相关的是ref局部变量,先从ref局部变量开学习
  • 下面先从 ref 局部变量开始:
    • 它允许一个变量是另一个变量的别名
    • 对任意一个变量的修改都会反映到另一个上
    • 创建别名语法: ref int y = ref x;(在这里y是x的别名)
  • 代码示例:
    Class Program
    {
        Static Void Main()
        {
            int x = 5;
            ref int y = ref x;
            Console.WriteLine($” x : {x} , y : {y} ”);
            y=7;
            Console.WriteLine($” x : {x} , y : {y} ”);
            X=9;
            Console.WriteLine($” x : {x} , y : {y} ”);
            //输出结果为     
            //5   5
            //7   7
            //9   9
        } 
    }
  • 但是别名功能并不是 ref 局部变量的一个常见用途,实际上它经常与 ref 返回一起使用,ref 返回提供了一种方法使得方法返回值返回变量引用而非变量值
  • 具体用法:会使用两次 ref 关键词
    • 一次是位于方法返回类型声明之前
    • 二次是在 return 关键词之后,被返回对象之前
  • 代码示例:
    Class Simple
    {
        private int x = 50;
        public ref int RefGet()
        {
            return ref x;
        }
        public void Display()
        {
            Console.WriteLine($”Value : {x}”);
        }
    }
    Class Program
    {
        Static Void Main()
        {
            Simple s = new Simple();
            s.Display();
            ref int q=s.RefGet();
            q+=2;
            s.Display();
            //运行结果为 value:50
            //          value:52
        } 
    }
  • 这里另一个比较经典的例子就是返回 MAX ,在返回时想要返回最大值的引用而非最大值的值,这里就可以使用 ref
  • 代码示例(缩略)
    Class Max
    {
        Public ref int GetMax(ref int x,ref int y)
        {
            return ref x>ref y;
        }
    }
    Class Program
    {
        Static void Main()
        {
            int x=20,y=10;
            Max D = new Max();
            ref int max = D.GetMax(ref x,ref y);
            max++;
            Console.WriteLine($”max : {max}”);
        }
    }
    

二、命名参数

  • C#允许我们使用命名参数,只要显式指定名字,就可以按任意顺序在方法调用中列出参数

  • 格式:(这里 a ,b ,c 是三个形参)

    • c.Cale(c:2,a:5,b:4);
  • 代码示例:

    Class Program
    {
        public int Cale(int a, int b, int c)
        {
            return a+c*b; 
        }
        static void Main()
        {
            int r1=Cale(c:4,a:2,b:4);
            int r2=Cale(a:2,c:4,b:4);
            int r3=Cale(2,c:4,b:4);
        }
    }

三、可选参数:(没什么可说的)

  • 在方法中提供默认值
  • 示例:
    public int Cale(int a,int b,int c=3)
    {
        return a+b*c;
    }
    Static void Main()
    {
        int a=2,b=4,c=4;
        Console.WriteLine($” {Cale(a,b)}   {Cale(a,b,c)} ”);
    }
    

标签:02,返回,Console,C#,Class,用法,int,ref,Cale
From: https://www.cnblogs.com/bzxf/p/16718069.html

相关文章