相关疑难解决方法(0)

C#中引用类型变量的"ref"有什么用?

我理解如果我传递一个值类型(int,struct等)作为参数(没有ref关键字),该变量的副本将传递给该方法,但如果我使用该ref关键字,则传递对该变量的引用,不是新的.

但是使用引用类型(如类),即使没有ref关键字,也会将引用传递给方法,而不是副本.那么ref关键字与引用类型的用途是什么?


举个例子:

var x = new Foo();
Run Code Online (Sandbox Code Playgroud)

以下有什么区别?

void Bar(Foo y) {
    y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud)

void Bar(ref Foo y) {
    y.Name = "2";
}
Run Code Online (Sandbox Code Playgroud)

c# parameters pass-by-reference pass-by-value

167
推荐指数
6
解决办法
4万
查看次数

为什么ref将用于C#中的数组参数?

我阅读了传递数组的页面使用ref和out(C#编程指南),并想知道为什么我们需要将数组参数定义为ref参数(当它已经是引用类型时).被调用函数中的更改不会反映在调用函数中吗?

c# ref out

6
推荐指数
2
解决办法
4299
查看次数

标签 统计

c# ×2

out ×1

parameters ×1

pass-by-reference ×1

pass-by-value ×1

ref ×1