Kesalahan Pengompilasi CS1918

Anggota properti 'nama' dari jenis 'jenis' tidak dapat ditetapkan dengan penginisialisasi objek karena merupakan jenis nilai.

Kesalahan ini terjadi saat Anda mencoba menggunakan penginisialisasi objek untuk menginisialisasi properti jenis struct yang merupakan properti kelas yang sedang diinisialisasi.

Untuk memperbaiki kesalahan ini

  1. Jika Anda harus sepenuhnya menginisialisasi bidang properti di penginisialisasi objek, ubah struct menjadi jenis kelas. Jika tidak, inisialisasi anggota struct dalam panggilan metode terpisah setelah Anda membuat objek dengan menggunakan penginisialisasi objek.

Contoh

Contoh berikut menghasilkan 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;  
    }  
}  

Lihat juga