CallingConventions Enumeráció
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy metódus érvényes hívási konvencióit határozza meg.
Ez a felsorolás támogatja a tagértékek bitenkénti kombinációját.
public enum class CallingConventions
[System.Flags]
public enum CallingConventions
[System.Flags]
[System.Serializable]
public enum CallingConventions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CallingConventions
[<System.Flags>]
type CallingConventions =
[<System.Flags>]
[<System.Serializable>]
type CallingConventions =
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CallingConventions =
Public Enum CallingConventions
- Öröklődés
- Attribútumok
Mezők
| Name | Érték | Description |
|---|---|---|
| Standard | 1 | A közös nyelvi futtatókörnyezet által meghatározott alapértelmezett hívási konvenciót adja meg. Használja ezt a hívási konvenciót statikus metódusokhoz. Például a virtuális metódusok használata |
| VarArgs | 2 | Változó argumentumokkal rendelkező metódusok meghívási konvenciójának megadása. |
| Any | 3 | Megadja, hogy a hívási |
| HasThis | 32 | Egy példányt vagy virtuális metódust határoz meg (nem statikus metódust). Futtatáskor a rendszer az úgynevezett metódust első argumentumként (mutatóként |
| ExplicitThis | 64 | Azt adja meg, hogy az aláírás egy függvénymutató aláírása, amely egy példányra vagy virtuális metódusra irányuló hívást jelöl (nem statikus metódust). Ha |
Példák
using System;
using System.Reflection;
using System.Security;
public class MyClass3
{
public MyClass3(int i) { }
public static void Main()
{
try
{
Type myType = typeof(MyClass3);
Type[] types = new Type[1];
types[0] = typeof(int);
// Get the public instance constructor that takes an integer parameter.
ConstructorInfo constructorInfoObj = myType.GetConstructor(
BindingFlags.Instance | BindingFlags.Public, null,
CallingConventions.HasThis, types, null);
if (constructorInfoObj != null)
{
Console.WriteLine("The constructor of MyClass3 that is a public " +
"instance method and takes an integer as a parameter is: ");
Console.WriteLine(constructorInfoObj.ToString());
}
else
{
Console.WriteLine("The constructor of MyClass3 that is a public instance " +
"method and takes an integer as a parameter is not available.");
}
}
catch (ArgumentNullException e)
{
Console.WriteLine("ArgumentNullException: " + e.Message);
}
catch (ArgumentException e)
{
Console.WriteLine("ArgumentException: " + e.Message);
}
catch (SecurityException e)
{
Console.WriteLine("SecurityException: " + e.Message);
}
catch (Exception e)
{
Console.WriteLine("Exception: " + e.Message);
}
}
}
Public Class MyClass1
Public Sub New(ByVal i As Integer)
End Sub
Public Shared Sub Main()
Try
Dim myType As Type = GetType(MyClass1)
Dim types(0) As Type
types(0) = GetType(Integer)
' Get the public instance constructor that takes an integer parameter.
Dim constructorInfoObj As ConstructorInfo = _
myType.GetConstructor(BindingFlags.Instance Or _
BindingFlags.Public, Nothing, _
CallingConventions.HasThis, types, Nothing)
If Not (constructorInfoObj Is Nothing) Then
Console.WriteLine("The constructor of MyClass1 that " + _
"is a public instance method and takes an " + _
"integer as a parameter is: ")
Console.WriteLine(constructorInfoObj.ToString())
Else
Console.WriteLine("The constructor MyClass1 that " + _
"is a public instance method and takes an " + _
"integer as a parameter is not available.")
End If
Catch e As ArgumentNullException
Console.WriteLine("ArgumentNullException: " + e.Message)
Catch e As ArgumentException
Console.WriteLine("ArgumentException: " + e.Message)
Catch e As SecurityException
Console.WriteLine("SecurityException: " + e.Message)
Catch e As Exception
Console.WriteLine("Exception: " + e.Message)
End Try
End Sub
End Class
Megjegyzések
A natív hívási konvenció a lefordított metódusoknak átadott argumentumok sorrendjét és elrendezését szabályozó szabályok halmaza. Azt is szabályozza, hogyan adja át a visszatérési értéket, milyen regiszterek használhatók argumentumokhoz, és hogy a hívott vagy a hívó metódus eltávolítja-e az argumentumokat a veremből.