ILGenerator.DeclareLocal Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
- 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
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.