ILGenerator.DeclareLocal Metod

Definition

Deklarerar en lokal variabel.

Överlagringar

Name Description
DeclareLocal(Type, Boolean)

Deklarerar en lokal variabel av den angivna typen, om du vill fästa det objekt som variabeln refererar till.

DeclareLocal(Type)

Deklarerar en lokal variabel av den angivna typen.

DeclareLocal(Type, Boolean)

Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs

Deklarerar en lokal variabel av den angivna typen, om du vill fästa det objekt som variabeln refererar till.

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

Parametrar

localType
Type

Ett Type objekt som representerar typen av den lokala variabeln.

pinned
Boolean

trueför att fästa objektet i minnet; annars . false

Returer

Ett LocalBuilder objekt som representerar den lokala variabeln.

Undantag

localType är null.

Den innehållande typen har skapats av CreateType() metoden.

-eller-

Metodtexten för den omslutande metoden har skapats av CreateMethodBody(Byte[], Int32) metoden.

Metoden som detta ILGenerator är associerat med representeras inte av en MethodBuilder.

Kommentarer

Den lokala variabeln skapas i det aktuella lexikala omfånget. Om kod till exempel genereras i en for-loop (For-loop i Visual Basic) är variabelns omfång loop.

I osäker kod måste ett objekt fästas innan det kan refereras till av en ohanterad pekare. Även om det refererade objektet är fäst kan det inte flyttas av skräpinsamling.

Gäller för

DeclareLocal(Type)

Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs
Källa:
ILGenerator.cs

Deklarerar en lokal variabel av den angivna typen.

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

Parametrar

localType
Type

Ett Type objekt som representerar typen av den lokala variabeln.

Returer

Den deklarerade lokala variabeln.

Undantag

localType är null.

Den innehållande typen har skapats av CreateType() metoden.

Exempel

I följande kodexempel visas hur metoden används DeclareLocal . Den här koden är en del av ett större kodexempel för LocalBuilder klassen.

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

Kommentarer

Den lokala variabeln skapas i det aktuella lexikala omfånget. Om kod till exempel genereras i en for-loop (For-loop i Visual Basic) är variabelns omfång loop.

En lokal variabel som skapats med den här överbelastningen är inte fäst. Om du vill skapa en fäst variabel för användning med ohanterade pekare använder du DeclareLocal(Type, Boolean) metodens överlagring.

Gäller för