Sdílet prostřednictvím


ILGenerator.DeclareLocal Metoda

Definice

Deklaruje místní proměnnou.

Přetížení

DeclareLocal(Type, Boolean)

Deklaruje místní proměnnou zadaného typu a volitelně připne objekt, na který proměnná odkazuje.

DeclareLocal(Type)

Deklaruje místní proměnnou zadaného typu.

DeclareLocal(Type, Boolean)

Zdroj:
ILGenerator.cs
Zdroj:
ILGenerator.cs
Zdroj:
ILGenerator.cs

Deklaruje místní proměnnou zadaného typu a volitelně připne objekt, na který proměnná odkazuje.

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

Parametry

localType
Type

Objekt Type , který představuje typ místní proměnné.

pinned
Boolean

truepřipnout objekt do paměti; v opačném případě . false

Návraty

Objekt LocalBuilder , který představuje místní proměnnou.

Výjimky

localType je null.

Obsahující typ byl vytvořen metodou CreateType() .

-nebo-

Tělo metody ohraničující metody bylo vytvořeno metodou CreateMethodBody(Byte[], Int32) .

Metoda, ke které je přidružená ILGenerator , není reprezentována MethodBuilder.

Poznámky

Místní proměnná je vytvořena v aktuálním lexikálním oboru; Pokud se například kód vysílá ve smyčce for (For smyčka v jazyce Visual Basic), oborem proměnné je smyčka.

V nebezpečném kódu musí být objekt připnutý, aby na něj mohl odkazovat nespravovaný ukazatel. Když je odkazovaný objekt připnutý, nelze ho přesunout uvolňováním paměti.

Platí pro

DeclareLocal(Type)

Zdroj:
ILGenerator.cs
Zdroj:
ILGenerator.cs
Zdroj:
ILGenerator.cs

Deklaruje místní proměnnou zadaného typu.

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

Parametry

localType
Type

Objekt Type , který představuje typ místní proměnné.

Návraty

Deklarovaná místní proměnná.

Výjimky

localType je null.

Obsahující typ byl vytvořen metodou CreateType() .

Příklady

Následující příklad kódu ukazuje použití DeclareLocal metody . Tento kód je součástí většího příkladu LocalBuilder kódu pro třídu .

// 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)

Poznámky

Místní proměnná je vytvořena v aktuálním lexikálním oboru; Pokud se například kód vysílá ve smyčce for (For smyčka v jazyce Visual Basic), oborem proměnné je smyčka.

Místní proměnná vytvořená s tímto přetížením není připnutá. Pokud chcete vytvořit připnutou proměnnou pro použití s nespravovanými ukazateli, použijte DeclareLocal(Type, Boolean) přetížení metody.

Platí pro