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
Impossibile passare un parametro ref o out ai campi di un campo statico in sola lettura 'identificatore' (tranne che in un costruttore statico).
Fields of static readonly field 'identifier' cannot be passed ref or out (except in a static constructor)
Questo errore si verifica quando si passa a una funzione una variabile membro di un campo statico di sola lettura come argomento ref. Questa operazione non è consentita perché i parametri ref possono venire modificati dalla funzione, Per correggere l'errore, rimuovere la parola chiave readonly dal campo oppure non passare i membri del campo di sola lettura alla funzione. È ad esempio possibile creare una variabile temporanea che può essere modificata e passare tale variabile come argomento ref, come descritto di seguito.
Il seguente codice di esempio genera l'errore CS1651:
// CS1651.cs
public struct Inner
{
public int i;
}
class Outer
{
public static readonly Inner inner = new Inner();
}
class D
{
static void f(ref int iref)
{
}
static void Main()
{
f(ref Outer.inner.i); // CS1651
// Try this instead:
// int tmp = Outer.inner.i;
// f(ref tmp);
}
}