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 assegnare i membri della proprietà 'nome' di tipo 'tipo' con un inizializzatore di oggetti perché è di un tipo valore.
Members of property 'name' of type 'type' cannot be assigned with an object initializer because it is of a value type.
Questo errore si verifica quando si tenta di utilizzare un inizializzatore di oggetti per inizializzare le proprietà di un tipo struttura che è una proprietà della classe in fase di inizializzazione.
Per correggere l'errore
- Se è necessario inizializzare completamente i campi della proprietà nell'inizializzatore di oggetti, impostare la struttura su un tipo di classe. In caso contrario, inizializzare i membri della struttura in una chiamata al metodo separata dopo avere creato l'oggetto mediante l'inizializzatore di oggetti.
Esempio
Nell'esempio seguente viene generato l'errore CS1918:
// cs1918.cs
public struct MyStruct
{
public int i;
}
public class Test
{
private MyStruct str = new MyStruct();
public MyStruct Str
{
get
{
return str;
}
}
public static int Main()
{
Test t = new Test { Str = { i = 1 } }; // CS1918
return 0;
}
}
Vedere anche
Riferimenti
Inizializzatori di oggetto e di insieme (Guida per programmatori C#)