ILGenerator.DeclareLocal Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Deklariert eine lokale Variable.
Überlädt
DeclareLocal(Type, Boolean) |
Deklariert eine lokale Variable des angegebenen Typs und fixiert optional das Objekt, auf das von der Variablen verwiesen wird. |
DeclareLocal(Type) |
Deklariert eine lokale Variable vom angegebenen Typ. |
DeclareLocal(Type, Boolean)
- Quelle:
- ILGenerator.cs
- Quelle:
- ILGenerator.cs
- Quelle:
- ILGenerator.cs
Deklariert eine lokale Variable des angegebenen Typs und fixiert optional das Objekt, auf das von der Variablen verwiesen wird.
public:
virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public:
abstract System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType, bool pinned);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);
public abstract System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType, bool pinned);
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
Public Overridable Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Public MustOverride Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Parameter
- pinned
- Boolean
true
, um das Objekt im Arbeitsspeicher zu fixieren; andernfalls false
.
Gibt zurück
Ein LocalBuilder-Objekt, das die lokale Variable darstellt.
Ausnahmen
localType
ist null
.
Der enthaltende Typ wurde von der CreateType()-Methode erstellt.
- oder -
Der Methodentext der einschließenden Methode wurde von der CreateMethodBody(Byte[], Int32)-Methode erstellt.
Die Methode, der dieser ILGenerator zugeordnet ist, wird nicht von einem MethodBuilder dargestellt.
Hinweise
Die lokale Variable wird im aktuellen lexikalischen Bereich erstellt. Wenn beispielsweise Code in einer for
Schleife (For
Schleife in Visual Basic) ausgegeben wird, ist der Bereich der Variablen die Schleife.
In unsicherem Code muss ein Objekt angeheftet werden, bevor mit einem nicht verwalteten Zeiger darauf verwiesen werden kann. Während das Objekt, auf das verwiesen wird, angeheftet ist, kann es nicht von der Garbage Collection verschoben werden.
Gilt für:
DeclareLocal(Type)
- Quelle:
- ILGenerator.cs
- Quelle:
- ILGenerator.cs
- Quelle:
- ILGenerator.cs
Deklariert eine lokale Variable vom angegebenen Typ.
public:
virtual System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType);
public:
System::Reflection::Emit::LocalBuilder ^ DeclareLocal(Type ^ localType);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
public System.Reflection.Emit.LocalBuilder DeclareLocal (Type localType);
abstract member DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
member this.DeclareLocal : Type -> System.Reflection.Emit.LocalBuilder
Public Overridable Function DeclareLocal (localType As Type) As LocalBuilder
Public Function DeclareLocal (localType As Type) As LocalBuilder
Parameter
Gibt zurück
Die deklarierte lokale Variable.
Ausnahmen
localType
ist null
.
Der enthaltende Typ wurde von der CreateType()-Methode erstellt.
Beispiele
Im folgenden Codebeispiel wird die Verwendung der DeclareLocal
-Methode veranschaulicht. Dieser Code ist Teil eines größeren Codebeispiels für die LocalBuilder -Klasse.
// Create local variables named myString and myInt.
LocalBuilder^ myLB1 = myMethodIL->DeclareLocal( String::typeid );
myLB1->SetLocalSymInfo( "myString" );
Console::WriteLine( "local 'myString' type is: {0}", myLB1->LocalType );
LocalBuilder^ myLB2 = myMethodIL->DeclareLocal( int::typeid );
myLB2->SetLocalSymInfo( "myInt", 1, 2 );
Console::WriteLine( "local 'myInt' type is: {0}", myLB2->LocalType );
// Create local variables named myString and myInt.
LocalBuilder myLB1 = myMethodIL.DeclareLocal(typeof(string));
myLB1.SetLocalSymInfo("myString");
Console.WriteLine("local 'myString' type is: {0}", myLB1.LocalType);
LocalBuilder myLB2 = myMethodIL.DeclareLocal(typeof(int));
myLB2.SetLocalSymInfo("myInt", 1, 2);
Console.WriteLine("local 'myInt' type is: {0}", myLB2.LocalType);
' Create local variables named myString and myInt.
Dim myLB1 As LocalBuilder = myMethodIL.DeclareLocal(GetType(String))
myLB1.SetLocalSymInfo("myString")
Console.WriteLine("local 'myString' type is: {0}", myLB1.LocalType)
Dim myLB2 As LocalBuilder = myMethodIL.DeclareLocal(GetType(Integer))
myLB2.SetLocalSymInfo("myInt", 1, 2)
Console.WriteLine("local 'myInt' type is: {0}", myLB2.LocalType)
Hinweise
Die lokale Variable wird im aktuellen lexikalischen Bereich erstellt. Wenn beispielsweise Code in einer for
Schleife (For
Schleife in Visual Basic) ausgegeben wird, ist der Bereich der Variablen die Schleife.
Eine lokale Variable, die mit dieser Überladung erstellt wurde, ist nicht angeheftet. Verwenden Sie die Methodenüberladung, um eine angeheftete Variable für die DeclareLocal(Type, Boolean) Verwendung mit nicht verwalteten Zeigern zu erstellen.