我已經(jīng)讀過.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條經(jīng)驗 獲得超2個贊
您正在談?wù)摰氖欠祷貙χ殿愋偷囊玫姆椒?。我知道的C#中唯一的內(nèi)置示例是值類型的數(shù)組訪問器:
public struct Point
{
public int X { get; set; }
public int Y { get; set; }
}
現(xiàn)在創(chuàng)建該結(jié)構(gòu)的數(shù)組:
var points = new Point[10];
points[0].X = 1;
points[0].Y = 2;
在這種情況下points[0],數(shù)組索引器將返回對struct的引用。不可能編寫具有相同的“返回引用”行為的自己的索引器(例如,用于自定義集合)。
我沒有設(shè)計C#語言,所以我不知道不支持C#的所有原因,但我認為簡短的答案可能是:沒有它,我們可以相處得很好。
- 3 回答
- 0 關(guān)注
- 302 瀏覽
添加回答
舉報
0/150
提交
取消