Erro do Compilador CS1918
Membros da propriedade 'name' do tipo 'type' não podem ser atribuídos com um inicializador de objeto porque ele é de um tipo de valor.
Esse erro ocorre quando você tenta usar um inicializador de objeto para inicializar as propriedades de um tipo struct que é uma propriedade da classe que está sendo inicializada.
- Se você precisar inicializar totalmente os campos da propriedade no inicializador de objeto, altere o struct para um tipo de classe. Caso contrário, inicialize os membros do struct em uma chamada de método separada depois de criar o objeto usando o inicializador de objeto.
O exemplo a seguir gera o erro 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;
}
}
Colaborar conosco no GitHub
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: