C#中引用类型变量的“ref”有什么用?我理解如果我传递一个值类型(int,struct等)作为参数(没有ref关键字),该变量的副本将传递给该方法,但如果我使用该ref关键字,则传递对该变量的引用,不是新的。但是使用引用类型(如类),即使没有ref关键字,也会将引用传递给方法,而不是副本。那么ref关键字与引用类型的用途是什么?举个例子:var x = new Foo();以下有什么区别?void Bar(Foo y) {
y.Name = "2";}和void Bar(ref Foo y) {
y.Name = "2";}
3 回答
白衣非少年
TA贡献1155条经验 获得超0个赞
在某些情况下,您希望修改实际引用而不是指向的对象:
void Swap<T>(ref T x, ref T y) { T t = x; x = y; y = t;}var test = new[] { "0", "1" };Swap(ref test[0], ref test[1]);
慕容森
TA贡献1853条经验 获得超18个赞
引用参数不传递函数成员调用中使用的变量的值 - 它们使用变量本身。不是在函数成员声明中为变量创建新的存储位置,而是使用相同的存储位置,因此函数成员中的变量值和引用参数的值将始终相同。引用参数需要ref修饰符作为声明和调用的一部分 - 这意味着当你通过引用传递某些东西时它总是很清楚。
- 3 回答
- 0 关注
- 766 浏览
添加回答
举报
0/150
提交
取消