为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕雪6442864 2019-08-12 11:19:23
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]);


查看完整回答
反对 回复 2019-08-12
?
慕容森

TA贡献1853条经验 获得超18个赞

引用参数不传递函数成员调用中使用的变量的值 - 它们使用变量本身。不是在函数成员声明中为变量创建新的存储位置,而是使用相同的存储位置,因此函数成员中的变量值和引用参数的值将始终相同。引用参数需要ref修饰符作为声明和调用的一部分 - 这意味着当你通过引用传递某些东西时它总是很清楚。

查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 766 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信