OpCodes.Tailcall 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.
Gerçek çağrı yönergesi yürütülmeden önce geçerli yöntemin yığın çerçevesinin kaldırılmasını sağlayan bir sonekli yöntem çağrı yönergesi gerçekleştirir.
public: static initonly System::Reflection::Emit::OpCode Tailcall;
public static readonly System.Reflection.Emit.OpCode Tailcall;
staticval mutable Tailcall : System.Reflection.Emit.OpCode
Public Shared ReadOnly Tailcall 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 |
---|---|---|
FE 14 | Kuyruk. | Sonraki çağrı geçerli yöntemleri sonlandırır |
Bu yönerge için tanımlanmış bir yığın geçişi davranışı yoktur.
Ön ek yönergesi tail
, bir Call, Calliveya Callvirt yönergesinin hemen öncesinde olmalıdır. Çağrı yönergesi yürütülmeden önce geçerli yöntemin yığın çerçevesinin kaldırılması gerektiğini gösterir. Ayrıca, aşağıdaki çağrıdan döndürülen değerin de geçerli yöntem tarafından döndürülen değer olduğunu ve bu nedenle çağrının çapraz yöntem atlamasına dönüştürülebileceğini belirtir.
Aşağıdaki çağrı tarafından aktarılan bağımsız değişkenler dışında yığın boş olmalıdır. Çağrı yönergesini izleyen yönerge bir ret olmalıdır. Bu nedenle tek geçerli kod dizisi (veya calli
) callvirt
olur tail. call
. Doğru Microsoft Ara Dil (MSIL) yönergeleri yönergeye call
dallanmamalıdır, ancak sonraki Retile dallanabilir.
Denetim güvenilmeyen koddan güvenilen koda aktarıldığında geçerli çerçeve atılamaz, çünkü bu durum kod kimliği güvenliğini tehlikeye atacak. Bu nedenle .NET Framework güvenlik denetimleri, standart Call bir yönerge bırakarak yoksayılmaya neden tail
olabilir. Benzer şekilde, çağrı döndürüldükten sonra eşitlenmiş bir bölgenin çıkışının gerçekleşmesine izin vermek için, tail
eşitlenmiş olarak işaretlenmiş bir yöntemden çıkmak için kullanıldığında ön ek yoksayılır.
Aşağıdaki Emit yöntem aşırı yüklemesi opcode'unu tail
kullanabilir: