主页 > 软件教程

C# ref和out的区别

软件教程 2024-01-20

编写程序过程中,有时会用到out和ref关键字;由于它们有些相似,所以常常会给人一些错觉。要正确的使用它们,清楚的了解它们的区别是必不可少的。

C# ref和out的区别
一、out 和 ref 相同点:它们都是传址的,执行方法后,原来的值都改变了。

二、out 和 ref 不同点:

1、使用ref时,传入的参数必须初始化;而使用out时不用初始化。

2、ref能把参数的值传进方法;而out要把参数清空(即使参数已经赋值也要清空),退出方法时,所有out参数都必须赋值。

具体的实例如下:

using System;
class RefOutTest
{
static void refTest(ref int a, ref int b)
{
a = 10;
b = a;
}

static void outTest(out int a, out int b)
{
//离开这个方法前,必须对 a 和 b 赋值,否则会报错。
a = 10;
b = 20;
}

static void Main()
{
int a = 1, b = 2;
refTest(out a, out b);
Console.WriteLine("a = {0}, b = {1}", a, b);

int x,y;
outTest(out x, out y);
Console.WriteLine("x = {0}, y = {1}", x, y);
}
}

程序执行输出:

a = 10, b = 10

x = 10, y = 20


标签: C#

电脑软硬件教程网 Copyright © 2016-2030 www.computer26.com. Some Rights Reserved.