Je voudrais être en mesure d'attribuer des valeurs à la liste des objets sans les référencer directement:Possible de stocker des références aux objets dans la liste?
exemple Pseudo:
List<int> intList = new List<int> { 0 };
???? intPointer = ref intlist[0];
*intPointer = 1; // I know * isn't possible here, but it is what I'd like to do
Console.WriteLine(intList[0]);
et génèrerait 1
. Je pense que ce n'est pas possible, mais je voulais juste m'assurer que je ne manquais de rien.
En outre, je ne cherche pas un exemple qui utilise unsafe
, je suis curieux de savoir si cela est possible dans le code managé.
Qu'entendez-vous par "sans les référencer directement"? – Groo
Je voudrais savoir ce qu'il y a dans 'list [0]' par le biais d'une autre variable – afuzzyllama
Donc, vous voulez des références à des éléments de tableau individuels? Voir [référence vs types de valeur] (http://www.albahari.com/valuevsreftypes.aspx) en C#. Un type de référence en C# (une instance de n'importe quelle 'class') est toujours passé par référence (* similaire * à un pointeur en C). Par contre, les types de valeur sont toujours ** copiés ** lorsqu'ils sont transmis. Donc, pour les types de valeur (comme 'int',' float', 'struct' et similaires), ce n'est pas possible. Mais si vous en faites une propriété d'un type de référence, vous pourrez obtenir une référence. – Groo