CS1917 de erro do compilador

Mensagem de erro

Membros do campo 'nome' tipo 'nome do struct' somente leitura não podem ser atribuídos a um inicializador de objeto porque ele é de um tipo de valor.

Campos somente leitura que são tipos de valor podem ser atribuídos apenas em um construtor.

Para corrigir este erro

  • Alterar o struct para um tipo de classe.

  • Inicialize a estrutura com um construtor.

Exemplo

O código a seguir gera CS1917:

// cs1917.cs
class CS1917
{
    public struct TestStruct
    {
        public int i;
    }
    public class C
    {
        public readonly TestStruct str = new TestStruct();
        public static int Main()
        {
            C c = new C { str = { i = 1 } }; // CS1917
            return 0;
        }
    }
}