ILGenerator.DeclareLocal Método

Definição

Declara uma variável local.

Sobrecargas

Name Description
DeclareLocal(Type, Boolean)

Declara uma variável local do tipo especificado, opcionalmente fixando o objeto referido pela variável.

DeclareLocal(Type)

Declara uma variável local do tipo especificado.

DeclareLocal(Type, Boolean)

Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs

Declara uma variável local do tipo especificado, opcionalmente fixando o objeto referido pela variável.

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

Parâmetros

localType
Type

Um Type objeto que representa o tipo da variável local.

pinned
Boolean

true fixar o objeto na memória; caso contrário, false.

Devoluções

Um LocalBuilder objeto que representa a variável local.

Exceções

localType é null.

O tipo de contenção foi criado pelo CreateType() método.

-ou-

O corpo do método de encerramento foi criado pelo CreateMethodBody(Byte[], Int32) método.

O método com que isto ILGenerator está associado não é representado por um MethodBuilder.

Observações

A variável local é criada no âmbito lexical atual; Por exemplo, se o código estiver a ser emitido num ciclo ( em Visual Basic), o âmbito da variável é o ciclo.

No código inseguro, um objeto deve ser fixado antes de poder ser referido por um ponteiro não gerido. Enquanto o objeto referenciado estiver fixado, não pode ser movido por recolha de lixo.

Aplica-se a

DeclareLocal(Type)

Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs
Origem:
ILGenerator.cs

Declara uma variável local do tipo especificado.

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

Parâmetros

localType
Type

Um Type objeto que representa o tipo da variável local.

Devoluções

A variável local declarada.

Exceções

localType é null.

O tipo de contenção foi criado pelo CreateType() método.

Exemplos

O exemplo de código seguinte demonstra a utilização do DeclareLocal método. Este código faz parte de um exemplo de código maior para a LocalBuilder classe.

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

Observações

A variável local é criada no âmbito lexical atual; Por exemplo, se o código estiver a ser emitido num ciclo ( em Visual Basic), o âmbito da variável é o ciclo.

Uma variável local criada com esta sobrecarga não é fixada. Para criar uma variável fixada para usar com ponteiros não geridos, use o DeclareLocal(Type, Boolean) método overload.

Aplica-se a