arasındaki fark nedir? .NET'de neden belleği kilitlemenin 2 farklı yolu vardır? Onların arasındaki fark ne?Sabit ve Güvensiz
4
A
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));
}
}
}
}
beni merak ediyor. – arul
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
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