【发布时间】:2018-07-28 05:14:50
【问题描述】:
public ref int GetData()
{
var myDataStructure = new MyDataStructure();
return ref myDataStructure.Data;
}
public class MyDataStructure
{
private int _data;
public ref int Data => ref _data;
}
这使用了新的 C#7 引用返回功能。 GetData() 返回后,内存中保存了什么?完整的 MyDataStructure 实例?还是只有整数?
如果 MyDataStructure 实例保存在内存中,因为有人持有对该实例的某个字段的引用,那么在这个示例中,为什么 s 不能保存在内存中:
public ref string GetString()
{
string s = "a";
return ref s;
}
【问题讨论】: