OpCodes.Newobj Alan

Tanım

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 Dil (MSIL) derleme biçiminin yanı sıra kısa bir 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:

  1. aracılığıyla argn bağımsız değişkenler arg1 sırayla yığına gönderilir.

  2. argn aracılığıyla arg1 bağımsız değişkenler yığından çıkarılır ve nesne oluşturma için öğesine ctor geçirilir.

  3. 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 ( methodrefmethoddef oluşturucu olarak işaretlenmesi gereken veya).

Yönerge, newobj ile ctor ilişkilendirilmiş sınıfı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 Newarroluşturulur, 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 newobjoluşturulur.

Değer türleri genellikle kullanılarak newobjoluşturulmaz. Bunlar genellikle (sıfır tabanlı, newarr tek boyutlu diziler için) kullanılarak veya nesne alanları olarak bağımsız değişkenler veya yerel değişkenler 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, yerel olarak depolanabilir ve bu şekilde devam edebilir.

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:

Şunlara uygulanır