ILGenerator.DeclareLocal Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- pinned
- Boolean
true
př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
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.