İngilizce dilinde oku

Aracılığıyla paylaş


Derleyici Hatası CS0459

Salt okunur bir yerel değişkenin adresi alınamıyor

C# dilinde salt okunur yerel değişkenler oluşturan üç yaygın senaryo vardır: foreach, usingve fixed. Bu durumların her birinde salt okunur yerel değişkene yazmanıza veya adresini almanıza izin verilmez. Bu hata, derleyici salt okunur bir yerel değişkenin adresini almaya çalıştığınızı fark ettiğinde oluşturulur.

Örnek

Aşağıdaki örnek, bir döngüde ve fixed deyim bloğunda foreach salt okunur bir yerel değişkenin adresini almaya çalışıldığında CS0459 oluşturur:

// 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;
}

Not

Roslyn derleyicisi güncelleştirildi ve bu derleyici hatası Visual Studio 2017 sürüm 15.5'den başlayarak kaldırıldı, bu nedenle önceki kod bu sürüm ve sonraki sürümlerle başarıyla derlenecekti.