Derleyici Hatası CS0212
Sabit bir deyim başlatıcısının içinde yalnızca sabitlenmemiş ifadenin adresini alabilirsiniz
Daha fazla bilgi için bkz . Güvenli Olmayan Kod ve İşaretçiler.
Aşağıdaki örnekte, düzeltilmemiş bir ifadenin adresini alma gösterilmektedir. Aşağıdaki örnek CS0212 oluşturur.
// CS0212a.cs
// compile with: /unsafe /target:library
public class A {
public int iField = 5;
unsafe public void M() {
A a = new A();
int* ptr = &a.iField; // CS0212
}
// OK
unsafe public void M2() {
A a = new A();
fixed (int* ptr = &a.iField) {}
}
}
Aşağıdaki örnek ayrıca CS0212 oluşturur ve hatanın nasıl çözüleceğini gösterir:
// CS0212b.cs
// compile with: /unsafe /target:library
using System;
public class MyClass
{
unsafe public void M()
{
// Null-terminated ASCII characters in an sbyte array
sbyte[] sbArr1 = new sbyte[] { 0x41, 0x42, 0x43, 0x00 };
sbyte* pAsciiUpper = &sbArr1[0]; // CS0212
// To resolve this error, delete the previous line and
// uncomment the following code:
// fixed (sbyte* pAsciiUpper = sbArr1)
// {
// String szAsciiUpper = new String(pAsciiUpper);
// }
}
}
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin: