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 berikut menghasilkan CS0459 ketika upaya dilakukan untuk mengambil alamat variabel lokal baca-saja dalam perulangan foreach
dan dalam blok pernyataan fixed
:
// 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.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: