Erro do compilador CS1918
Os membros da propriedade 'name' do tipo 'type' não podem ser atribuídos com um inicializador de objeto porque é de um tipo de valor.
Este erro ocorre quando você tenta usar um inicializador de objeto para inicializar as propriedades de um tipo struct que é em si uma propriedade da classe que está sendo inicializada.
- Se você precisar inicializar totalmente os campos da propriedade no inicializador do objeto, altere a struct para um tipo de classe. Caso contrário, inicialize os membros struct em uma chamada de método separada depois de criar o objeto usando o inicializador de objeto.
O exemplo a seguir gera 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;
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: