Baca dalam bahasa Inggris

Bagikan melalui


Kesalahan Pengompilasi CS0459

Tidak dapat mengambil alamat variabel lokal baca-saja

Ada tiga skenario umum dalam bahasa C# yang menghasilkan variabel lokal baca-saja: foreach, using, dan fixed. Dalam setiap kasus ini, Anda tidak diizinkan untuk menulis ke variabel lokal baca-saja, atau untuk mengambil alamatnya. Kesalahan ini dihasilkan ketika pengompilasi menyadari bahwa Anda mencoba mengambil alamat variabel lokal baca-saja.

Contoh

Contoh berikut menghasilkan CS0459 ketika upaya dilakukan untuk mengambil alamat variabel lokal baca-saja dalam perulangan foreach dan dalam blok pernyataan fixed:

C#
// CS0459.cs
// compile with: /unsafe

class Program
{
    public unsafe void M1()
    {
        int[] ints = new int[] { 1, 2, 3 };
        foreach (int i in ints)
        {
            int *j = &i;  // CS0459
        }

        fixed (int *i = &_i)
        {
            int **j = &i;  // CS0459
        }
    }

    private int _i = 0;
}

Catatan

Pengompilasi Roslyn diperbarui dan kesalahan pengompilasi ini telah dihapus sejak Visual Studio 2017 versi 15.5, sehingga kode sebelumnya akan berhasil dikompilasi dengan versi ini dan yang lebih baru.