ILGenerator.DeclareLocal Método

Definição

Declara uma variável local.

Sobrecargas

Nome Description
DeclareLocal(Type, Boolean)

Declara uma variável local do tipo especificado, opcionalmente fixando o objeto referenciado 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 referenciado 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 para fixar o objeto na memória; caso contrário, false.

Retornos

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 delimitado foi criado pelo CreateMethodBody(Byte[], Int32) método.

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

Comentários

A variável local é criada no escopo léxico atual; por exemplo, se o código estiver sendo emitido em um loop for (loop For em Visual Basic), o escopo da variável será o loop.

Em código não seguro, um objeto deve ser fixado antes de ser referenciado por um ponteiro não gerenciado. Embora o objeto referenciado esteja fixado, ele não pode ser movido pela coleta 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.

Retornos

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 a seguir demonstra o uso do DeclareLocal método. Esse 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)

Comentários

A variável local é criada no escopo léxico atual; por exemplo, se o código estiver sendo emitido em um loop for (loop For em Visual Basic), o escopo da variável será o loop.

Uma variável local criada com essa sobrecarga não está fixada. Para criar uma variável fixada para uso com ponteiros não gerenciados, use a sobrecarga do DeclareLocal(Type, Boolean) método.

Aplica-se a