2009-02-27 14 views

cevap

16

Sabit ifade, unsafe modifier bağlamında kullanılır. Güvenli olmayan, normal C# işlemlerinin dışındaki işaretçi aritmetiğini (örneğin: düşük düzeyli API çağrısı) kullanmaya başladığınızı bildirir. fixed bildirimi, bellek toplayıcısını yerinde kilitlemek için kullanılır, böylece çöp toplayıcı hala kullanılmakta iken yeniden tahsis etmeyecektir. Sabit beyanı güvenli olmayan bağlam dışında kullanamazsınız. sabit deyimi gördüğünde, derleyici bunu bilmesi gerekir kod bloğu/yöntem güvensiz olduğunu belirtmek için açık bir ihtiyaç var neden

Örnek

public static void PointyMethod(char[] array) 
{ 
    unsafe 
    { 
     fixed (char *p = array) 
     { 
      for (int i=0; i<array.Length; i++) 
      { 
       System.Console.Write(*(p+i)); 
      } 
     } 
    } 
} 
+0

beni merak ediyor. – arul

+0

true, ancak bağlam, yani Yöntem, yazı tipi veya kod bloğu gibi bir sonuca ulaşamayacağına inanıyorum. Ancak bu sadece bir tahmin. – cgreeno

+0

Derleyici, herhangi bir değerindeyse, sabit ifadeyi güvenli olmayan deyim ile otomatik olarak doldurabilir. Belki güvenli olmayan kodun kaputunun altında başka operasyonlar da vardır, bu da genel 'güvenli' kodun yavaş çalışmasını sağlayabilir, kim bilir. – arul

İlgili konular