public ref int GetData()
{
var myDataStructure = new MyDataStructure();
return ref myDataStructure.Data;
}
public class MyDataStructure
{
private int _data;
public ref int Data => ref _data;
}
Cette opération utilise la nouvelle fonction de retour de réf. de C#7. Après le retour de GetData(), qu'est-ce qui est conservé en mémoire ? L'instance complète de MyDataStructure ? Ou seulement le nombre entier ?
Si l'instance de MyDataStructure est conservée en mémoire, parce que quelqu'un détient une référence à un champ de cette instance, pourquoi ne peut-elle pas s être gardé en mémoire dans cet exemple :
public ref string GetString()
{
string s = "a";
return ref s;
}