Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
I membri del campo readonly 'identificatore' non possono essere passati a un parametro ref o out (tranne che in un costruttore).
Members of readonly field 'identifier' cannot be passed ref or out (except in a constructor)
Questo errore si verifica quando si passa a una funzione una variabile membro di un campo readonly come argomento ref o out. Questa operazione non è consentita perché i parametri ref e out possono venire modificati dalla funzione. Per correggere l'errore, rimuovere la parola chiave readonly dal campo oppure non passare i membri del campo readonly alla funzione. È ad esempio possibile creare una variabile temporanea che può essere modificata e passare tale variabile sotto forma di argomento ref, come descritto di seguito.
Esempio
Il seguente codice di esempio genera l'errore CS1649:
// CS1649.cs
public struct Inner
{
public int i;
}
class Outer
{
public readonly Inner inner = new Inner();
}
class D
{
static void f(ref int iref)
{
}
static void Main()
{
Outer outer = new Outer();
f(ref outer.inner.i); // CS1649
// Try this code instead:
// int tmp = outer.inner.i;
// f(ref tmp);
}
}