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

为什么C#不支持返回引用?

为什么C#不支持返回引用?

繁星点点滴滴 2019-10-25 13:12:59
我已经读过.NET支持返回引用,但是C#不支持。有特殊原因吗?为什么我不能做这样的事情:static ref int Max(ref int x, ref int y) {   if (x > y)     return ref x;   else     return ref y; } 
查看完整描述

3 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

您正在谈论的是返回对值类型的引用的方法。我知道的C#中唯一的内置示例是值类型的数组访问器:


public struct Point

{

    public int X { get; set; }

    public int Y { get; set; }

}

现在创建该结构的数组:


var points = new Point[10];

points[0].X = 1;

points[0].Y = 2;

在这种情况下points[0],数组索引器将返回对struct的引用。不可能编写具有相同的“返回引用”行为的自己的索引器(例如,用于自定义集合)。


我没有设计C#语言,所以我不知道不支持C#的所有原因,但我认为简短的答案可能是:没有它,我们可以相处得很好。


查看完整回答
反对 回复 2019-10-25
  • 3 回答
  • 0 关注
  • 551 浏览

添加回答

举报

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