C#之out,ref关键字

在C#中,咱们会见到out,ref关键字,这跟java很不同,接下来,咱们就来了解一番,java

1,out关键字spa

  概念:一个带有输出参数的的方法(方法的的参数有被out关键字修饰),有义务在方法退出的时候给这个参数一个恰当的赋值,若是没有,方法编译会报错。设计

  例子:伪代码以下string

  static void doMethod(int y,out int ans) it

  {编译

    ans = y*2;//被关键字out修饰的参数ans被赋值变量

  }引用

  static void main(string args[]){方法

      int ans;static

      doMethod(90,out ans);//调用带输出参数的方法,也必须使用out关键字修饰

  }

上面的例子说明,用输出参数返回一个数的一半,看似没有发现out的意义,实际上设计者设计out关键字是有一个颇有用的用途的:那就是咱们经过out关键字,能够在一个方法中一次就输出多个返回值,以下

  static void doMethod(out string name,out int age,out char sex)

  {

    name = "张三";

    age = "30";

    sex = '1';  

  }

2,ref关键字

  ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所作的任何更改都将反映在该变量中。 

  static void Main(string[] args)
  {
    int x = 1;
    int y = 1;
    doSome(ref x);
    doSome(y);
    Console.Write(x+"");
    Console.Write(y + "");

  }
  static void doSome(ref int x)
  {
    x = 10;
  }
  static void doSome( int x)
  {
    x = 10;
  }

以上伪代码可看出,ref关键字是对变量的引用进行改变,因此doSome(ref int x)输出10,doSome(int x)输出1,另外能够看出,重载时,ref修饰和不修饰的的签名被认为是不一样的,重载能够成功。

相关文章
相关标签/搜索