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

我已经读过.NET支持返回引用,但是C#不支持。有特殊原因吗?为什么我不能做这样的事情:


static ref int Max(ref int x, ref int y) 

  if (x > y) 

    return ref x; 

  else 

    return ref y; 


繁星点点滴滴
浏览 556回答 3
3回答

白衣染霜花

您正在谈论的是返回对值类型的引用的方法。我知道的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#的所有原因,但我认为简短的答案可能是:没有它,我们可以相处得很好。
打开App,查看更多内容
随时随地看视频慕课网APP