ILGenerator.DeclareLocal Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Deklaruje zmienną lokalną.
Przeciążenia
DeclareLocal(Type, Boolean) |
Deklaruje zmienną lokalną określonego typu, opcjonalnie przypinając obiekt, do której odwołuje się zmienna. |
DeclareLocal(Type) |
Deklaruje zmienną lokalną określonego typu. |
DeclareLocal(Type, Boolean)
- Źródło:
- ILGenerator.cs
- Źródło:
- ILGenerator.cs
- Źródło:
- ILGenerator.cs
Deklaruje zmienną lokalną określonego typu, opcjonalnie przypinając obiekt, do której odwołuje się zmienna.
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
aby przypiąć obiekt w pamięci; w przeciwnym razie , false
.
Zwraca
LocalBuilder Obiekt reprezentujący zmienną lokalną.
Wyjątki
localType
to null
.
Typ zawierający został utworzony przez metodę CreateType() .
-lub-
Treść metody otaczającej została utworzona przez metodę CreateMethodBody(Byte[], Int32) .
Metoda, z którą jest skojarzona ILGenerator , nie jest reprezentowana przez element MethodBuilder.
Uwagi
Zmienna lokalna jest tworzona w bieżącym zakresie leksykalnym; na przykład jeśli kod jest emitowany w for
pętli (For
pętla w języku Visual Basic), zakres zmiennej to pętla.
W niebezpiecznym kodzie obiekt musi zostać przypięty, zanim będzie można odwoływać się do niego za pomocą niezarządzanego wskaźnika. Obiekt, do którego odwołuje się odwołanie, jest przypięty, ale nie może zostać przeniesiony przez odzyskiwanie pamięci.
Dotyczy
DeclareLocal(Type)
- Źródło:
- ILGenerator.cs
- Źródło:
- ILGenerator.cs
- Źródło:
- ILGenerator.cs
Deklaruje zmienną lokalną określonego 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
Zwraca
Zadeklarowana zmienna lokalna.
Wyjątki
localType
to null
.
Typ zawierający został utworzony przez metodę CreateType() .
Przykłady
W poniższym przykładzie kodu pokazano użycie DeclareLocal
metody . Ten kod jest częścią większego przykładu LocalBuilder kodu dla klasy .
// 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)
Uwagi
Zmienna lokalna jest tworzona w bieżącym zakresie leksykalnym; na przykład jeśli kod jest emitowany w for
pętli (For
pętla w języku Visual Basic), zakres zmiennej to pętla.
Zmienna lokalna utworzona z tym przeciążeniem nie jest przypięta. Aby utworzyć przypiętą zmienną do użycia ze wskaźnikami niezarządzanymi, użyj DeclareLocal(Type, Boolean) przeciążenia metody.