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í
| 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
- 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
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.