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 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:
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
methoddef
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 newobj
oluşturulur.
Değer türleri genellikle kullanılarak newobj
oluş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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin