OpCodes.Newobj Alan
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Değerlendirme yığınına bir nesne başvurusu (tür O
) göndererek yeni bir nesne veya değer türünün yeni bir örneğini oluşturur.
public: static initonly System::Reflection::Emit::OpCode Newobj;
public static readonly System.Reflection.Emit.OpCode Newobj;
staticval mutable Newobj : System.Reflection.Emit.OpCode
Public Shared ReadOnly Newobj As OpCode
Alan Değeri
Açıklamalar
Aşağıdaki tabloda yönergenin onaltılık ve Microsoft Ara Dili (MSIL) derleme biçimi ve kısa başvuru özeti listelenmiştir:
Biçimlendir | Derleme Biçimi | Description |
---|---|---|
73 <T > |
newobj ctor |
Başlatılmamış bir nesne veya değer türü ayırır ve oluşturucu yöntemini ctor çağırır. |
Sıralı sırada yığın geçiş davranışı şu şekildedir:
aracılığıyla
argn
bağımsız değişkenlerarg1
sırayla yığına gönderilir.argn
aracılığıylaarg1
bağımsız değişkenler yığından çıkarılır ve nesne oluşturma için öğesinector
geçirilir.Yeni nesneye başvuru yığına gönderilir.
Yönerge, newobj
yeni bir nesne veya değer türünün yeni bir örneğini oluşturur.
Ctor
çağrılacak oluşturucunun adını, sınıfını ve imzasını gösteren bir meta veri belirtecidir ( methodref
veya methoddef
oluşturucu olarak işaretlenmelidir).
yönergesi newobj
ile ctor
ilişkilendirilmiş sınıfının yeni bir örneğini ayırır ve yeni örnekteki tüm alanları 0'a (uygun türde) veya null başvurulara uygun şekilde başlatır. Ardından, yeni oluşturulan örnekle birlikte verilen bağımsız değişkenlerle oluşturucuyu ctor
çağırır. Oluşturucu çağrıldıktan sonra, şimdi başlatılan nesne başvurusu (tür O
) yığına gönderilir.
Oluşturucunun bakış açısından başlatılmamış nesne 0 bağımsız değişkenidir ve newobj'ye geçirilen diğer bağımsız değişkenler sırayla ilerler.
Tüm sıfır tabanlı, tek boyutlu diziler kullanılarak oluşturulur Newarr, kullanılarak oluşturulmaz newobj
. Öte yandan, diğer tüm diziler (birden fazla boyut veya bir boyutlu ancak sıfır tabanlı değil) kullanılarak newobj
oluşturulur.
Değer türleri genellikle kullanılarak newobj
oluşturulmaz. Bunlar genellikle bağımsız değişkenler veya yerel değişkenler olarak (sıfır tabanlı, newarr
tek boyutlu diziler için) veya nesne alanları olarak ayrılır. Ayrıldıktan sonra kullanılarak Initobjbaşlatılırlar. Ancak yönerge, newobj
yığında bir değer türünün yeni bir örneğini oluşturmak için kullanılabilir. Bu örnek daha sonra bağımsız değişken olarak geçirilebilir, yerelde depolanır ve bu şekilde devam eder.
OutOfMemoryException isteği karşılamak için yeterli bellek yoksa oluşturulur.
MissingMethodException belirtilen ada, sınıfa ve imzaya sahip bir oluşturucu yöntemi ctor
bulunamazsa oluşturulur. Bu durum genellikle Microsoft Ara Dil (MSIL) yönergeleri çalışma zamanında değil yerel koda dönüştürüldüğünde algılanır.
Aşağıdaki Emit yöntem aşırı yüklemesi, opcode'unu newobj
kullanabilir: