Partilhar via


ILGenerator.DeclareLocal Método

Definição

Declara uma variável local.

Sobrecargas

DeclareLocal(Type, Boolean)

Declara uma variável local do tipo especificado, opcionalmente fixar 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

Declara uma variável local do tipo especificado, opcionalmente fixar o objeto referenciado pela variável.

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

Parâmetros

localType
Type

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

pinned
Boolean

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

Retornos

Um objeto LocalBuilder que representa a variável local.

Exceções

localType é null.

O tipo recipiente foi criado pelo método CreateType().

- ou -

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

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

Comentários

A variável local é criada no escopo lexical atual; por exemplo, se o código estiver sendo emitido em um for loop (For loop no 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

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 objeto Type que representa o tipo da variável local.

Retornos

A variável local declarada.

Exceções

localType é null.

O tipo recipiente foi criado pelo método CreateType().

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

Comentários

A variável local é criada no escopo lexical atual; por exemplo, se o código estiver sendo emitido em um for loop (For loop no 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