我已经读过.NET支持返回引用,但是C#不支持。有特殊原因吗?为什么我不能做这样的事情:static ref int Max(ref int x, ref int y) { if (x > y) return ref x; else return ref y; }
3 回答
慕斯王
TA贡献1864条经验 获得超2个赞
您正在谈论的是返回对值类型的引用的方法。我知道的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#的所有原因,但我认为简短的答案可能是:没有它,我们可以相处得很好。
- 3 回答
- 0 关注
- 287 浏览
添加回答
举报
0/150
提交
取消