博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# ref和out关键字
阅读量:1982 次
发布时间:2019-04-27

本文共 560 字,大约阅读时间需要 1 分钟。

ref和out关键字初解
    参数可以通过引用和值传递给方法。通过引用传递给方法的变量可以有调用它的方法作自由改变,所作的修改会影响原来的变量的值;在C#中,除非特别说明,所有的参数都是值传递。
这是默认情况,也可以使用ref关键字,迫使值参数通过引用传递给方法,则给方法对变量所作的修改都会影响原来对象的值。在定义该方法时把该参数定义为ref后,在调用该方法时,还需要添加ref关键字。
static void myFun(int x,ref int y)
{
    y = x;
}
//调用该方法
myFun(x,ref y);
    有时为了从一个函数中返回多个值,我们需要使用out关键字,把输出值赋给通过引用传递给方法的变量(也就是参数)。但C#要求变量再被引用的前必须初始化。在调用该方法时,还需要添加out关键字。
static void myFun(out int y)
{
    y = 10; //在这里进行初始化
}
//
//调用该方法
public static int Main()
{
    int i;
    myFun(out i);
    Console.Writeline(i);
    return 0;
}
从上面的例子我们可以看出,out关键字和ref的不同点主要在:使用out关键字时,必须在方法体内为变量提供初始值。  

转载地址:http://vtgpf.baihongyu.com/

你可能感兴趣的文章
CodeForces - 456C Boredom (dp)
查看>>
CodeForces - 960B Minimize the error (思维,贪心)
查看>>
AtCoder Beginner Contest 112 D - Partition(思维 数论)
查看>>
CodeForces - 97B Superset (思维/分治/构造)
查看>>
CodeForces - 675A Infinite Sequence(简单数论 细节)
查看>>
ACM 2017沈阳区域赛 Heron and His Triangle (找规律 Java大数)
查看>>
CodeForces - 1042B Vitamins (思维)
查看>>
ACM 2013 长沙区域赛 Alice's Print Service (二分 思维)
查看>>
ACM 2013 长沙区域赛 Collision (几何)
查看>>
CodeForces - 1064A Make a triangle! (简单模拟)
查看>>
CodeForces - 1064B Equations of Mathematical Magic(打表找规律)
查看>>
51Nod - 1183 编辑距离 (dp)
查看>>
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
查看>>
反向传播&梯度下降 的直观理解程序(numpy)
查看>>
ACM 2017 南宁区域赛 Rake it in(对抗搜索)
查看>>
CodeForces - 931B World Cup (思维 模拟)
查看>>
CodeForces - 996D Suit and Tie (暴力)
查看>>
ACM 2017 香港区域赛 E - Base Station Sites(二分)
查看>>
ACM 2018 青岛区域赛 J-Books (模拟)
查看>>
ACM 2016 沈阳区域赛 E - Counting Cliques (dfs)
查看>>