ILGenerator.DeclareLocal Metoda

Definice

Deklaruje místní proměnnou.

Přetížení

Name Description
DeclareLocal(Type, Boolean)

Deklaruje místní proměnnou zadaného typu a volitelně připne objekt odkazovaný proměnnou.

DeclareLocal(Type)

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

DeclareLocal(Type, Boolean)

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

Deklaruje místní proměnnou zadaného typu a volitelně připne objekt odkazovaný proměnnou.

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);
public virtual System.Reflection.Emit.LocalBuilder DeclareLocal(Type localType, bool pinned);
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
abstract member DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
override this.DeclareLocal : Type * bool -> System.Reflection.Emit.LocalBuilder
Public MustOverride Function DeclareLocal (localType As Type, pinned As Boolean) As LocalBuilder
Public Overridable 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řipnutí objektu v 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.

Metoda vytvořila CreateType() typ obsahující.

nebo

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

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

Poznámky

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

V nebezpečném kódu musí být objekt připnut před odkazem na nespravovaný ukazatel. Zatímco je odkazovaný objekt připnutý, nelze jej přesunout uvolněním paměti.

Platí pro

DeclareLocal(Type)

Zdroj:
ILGenerator.cs
Zdroj:
ILGenerator.cs
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.

Metoda vytvořila CreateType() typ obsahující.

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(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á se vytvoří v aktuálním lexikálním oboru; Pokud je například kód vygenerován ve smyčce for (For smyčka v Visual Basic), rozsah proměnné je smyčka.

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

Platí pro