Obtenir une référence à un tableau struct within
Je veux modifier un champ d'une structure qui est à l'intérieur d'un tableau sans avoir à définir toute la structure. Dans l'exemple ci-dessous, je tiens à mettre un champ de l'élément 543 dans le tableau. Je ne veux pas avoir à copier l'ensemble des élément (parce que la copie MassiveStruct serait nuire à la performance).
class P
{
struct S
{
public int a;
public MassiveStruct b;
}
void f(ref S s)
{
s.a = 3;
}
public static void Main()
{
S[] s = new S[1000];
f(ref s[543]); //Error: An object reference is required for the non-static field, method, or property
}
}
Est-il un moyen de le faire en C#? Ou dois-je toujours copier toute la structure de tableau, modifier la copie, puis placez la copie modifiée de retour dans un tableau.
source d'informationauteur kaalus | 2011-08-20
Vous devez vous connecter pour publier un commentaire.
Le seul problème, c'est que vous essayez d'appeler un instance méthode à partir d'une méthode statique, sans une instance de
P
.Faire
f
une méthode statique (ou de créer une instance deP
sur lequel l'appeler) et ça va être bien. Il est tout au sujet de la lecture de l'erreur de compilateur 🙂Cela dit, je voudrais fortement vous conseillons de: