Partager via


Erreur du compilateur CS1655

Mise à jour : novembre 2007

Message d'erreur

Impossible de passer les champs de 'variable' en tant qu'argument ref ou out, car il s'agit d'un 'type de variable readonly'
Cannot pass fields of 'variable' as a ref or out argument because it is a 'readonly variable type'

Cette erreur se produit si vous tentez de passer un membre de variable foreach, une variable using ou une variable fixed à une fonction en tant qu'argument ref ou out. Ces variables sont considérées en lecture seule dans ces contextes ;  cela n'est donc pas autorisé.

L'exemple suivant génère l'erreur CS1655 :

// CS1655.cs
struct S 
{
   public int i;
}

class CMain
{
  static void f(ref int iref)
  {
  }
  
  public static void Main()
  {
     S[] sa = new S[10];
     foreach(S s in sa)
     {
        CMain.f(ref s.i);  // CS1655
     }
  }
}