Teilen über


ILGenerator.DeclareLocal Methode

Definition

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

localType
Type

Ein Type-Objekt, das den Typ der lokalen Variablen darstellt.

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

localType
Type

Ein Type-Objekt, das den Typ der lokalen Variablen darstellt.

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.

Gilt für: