OpCodes.Calli Alan

Tanım

Değerlendirme yığınında belirtilen yöntemini çağırır (bir giriş noktasına işaretçi olarak), çağırma kuralı tarafından açıklanan bağımsız değişkenlerle.

public: static initonly System::Reflection::Emit::OpCode Calli;
public static readonly System.Reflection.Emit.OpCode Calli;
 staticval mutable Calli : System.Reflection.Emit.OpCode
Public Shared ReadOnly Calli 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:

Format Derleme Biçimi Açıklama
29 <T> Calli callSiteDescr Çağırma kuralı tarafından açıklanan bağımsız değişkenlerle işaret edilen yöntemini çağırır.

Sıralı sırada yığın geçiş davranışı şöyledir:

  1. aracılığıyla arg1 yöntem bağımsız değişkenleri argN yığına gönderilir.

  2. Yöntem giriş işaretçisi yığına gönderilir.

  3. aracılığıyla arg1 yöntem bağımsız değişkenleri argN ve yöntem giriş işaretçisi yığından çıkarılır; yöntem çağrısı gerçekleştirilir. Tamamlandığında, çağıran yöntemi tarafından bir dönüş değeri oluşturulur ve çağırana gönderilir.

  4. Dönüş değeri yığına gönderilir.

Yönerge, calli aracılığıyla arg1bağımsız değişkenleriyle argN yöntem giriş işaretçisini çağırır. Bu bağımsız değişkenlerin türleri, belirli çağırma kuralı (callSiteDesc ) tarafından açıklanmıştır. Denetimi calli aktarmadan önce geçerli yöntem durumunun serbest bırakılacağını belirtmek için yönergenin önüne hemen bir tail ön ek (Tailcall) eklenebilir. Çağrı denetimi kaynak yöntemden daha yüksek bir güven yöntemine aktaracaksa yığın çerçevesi serbest bırakılmaz; bunun yerine yürütme, sağlanmamış gibi tail sessizce devam eder.

Yöntem giriş işaretçisinin, çağırma kuralı tarafından açıklanan bağımsız değişkenlerle (tek başına imza için meta veri belirteci) meşru olarak çağrılabilen yerel koda (hedef makinenin) belirli bir işaretçisi olduğu varsayılır. Böyle bir işaretçi veya Ldftn yönergeleri kullanılarak Ldvirtftn oluşturulabilir veya yerel koddan geçirilebilir.

Çağırma kuralı dinamik olarak denetlenmediğinden, hedef gerçekten belirtilen çağrı kuralını kullanmıyorsa yönerge calli kullanan kod düzgün çalışmaz.

Bağımsız değişkenler, yığına soldan sağa sırada yerleştirilir. Diğer bir ifadeyle, ilk bağımsız değişken hesaplanır ve yığına yerleştirilir, sonra ikinci bağımsız değişken, sonra da gerekli tüm bağımsız değişkenler azalan sırada yığının üstünde olana kadar üçüncü bağımsız değişkendir. Bir örnek veya sanal yöntem için bağımsız değişken oluşturma kod dizisi, kullanıcı tarafından görünen bağımsız değişkenlerden herhangi birinin önüne bu örnek başvurusunun (null başvuru olmaması gerekir) göndermesi gerekir.

SecurityException sistem güvenliği çağırana çağrılan yönteme erişim vermezse oluşturulabilir. Güvenlik denetimi, Microsoft Ara Dil (MSIL) yönergeleri çalışma zamanında değil yerel koda dönüştürüldüğünde oluşabilir.

EmitCalli Aşağıdaki yöntemler yığında yönerge calli gerçekleştirmek için kullanılabilir. Yönergeyi calli doğrudan yığına yerleştirmek için sınıfını kullanmak Emit yerine aşağıdaki yöntemler aracılığıyla çağrılmalıdır.

Şunlara uygulanır