Beforefieldinit bayrağı ne yapar?
Beforefieldinit bayrağı ne yapar? Benim sınıf IL içine baktığımda bu bayrak aslında ne yaptığını bilmiyorum ama bu bayrak görüyorum?
CEVAP
Bu konuda my article bkz.
Temelde, beforefieldinit
"türü herhangi bir statik alanlar başvurulan önce herhangi bir noktada başlatılabilir." anlamına gelirTeorideo olabilir anlamına gelirçok tembelbaşlatıldı - eğer herhangi bir alanı dokunmaz statik bir yöntem çağrısı, JİT türünü başlatmak gerek yok.
Uygulamadasınıf başlatıldı anlamına gelirdaha öncebaşka türlü olacağını daha - ilk yöntemi başında başlatılması için sorun değilolabilirbunu kullanın. Hangi türleri ile karşılaştırınyokyazın başlatma hemen önce ortaya bulunduğu beforefieldinit
uygulanmışgerçekkullanın.
, Düşün yani:
public static void DoSomething(bool which)
{
if (which)
{
FirstType.Foo();
}
else
{
SecondType.Bar();
}
}
Eğer her iki tür beforefieldinit
uygulanmayacak olan C (#türü statik oluşturucu sürece varsayılan olarak yaparlar) ederlerher ikisi deyöntem başında başlatıldı (genellikle garanti değil). beforefieldinit
ancak o zaman yokbirbaşlatılması onları olacak, bayrağı dayalı.
Bu ortak statik oluşturucu (hatta boş bir!) kullanmak için kullanılır implementing the singleton pattern zaman.
-All_load linker bayrağı ne yapar?...
-ObjC linker bayrağı ne yapar?...
Fpermissive bayrağı ne yapar?...
ENABLE_BİTCODE Güncellemelerinden 7 ne...
@ Ne yapar: (sembol kolon) Makefile?bi...