Share via


ILGenerator.DeclareLocal Yöntem

Tanım

Yerel bir değişken bildirir.

Aşırı Yüklemeler

DeclareLocal(Type, Boolean)

İsteğe bağlı olarak değişken tarafından başvuruda bulunılan nesneyi sabitleyerek belirtilen türde bir yerel değişken bildirir.

DeclareLocal(Type)

Belirtilen türde bir yerel değişken bildirir.

DeclareLocal(Type, Boolean)

Kaynak:
ILGenerator.cs
Kaynak:
ILGenerator.cs
Kaynak:
ILGenerator.cs

İsteğe bağlı olarak değişken tarafından başvuruda bulunılan nesneyi sabitleyerek belirtilen türde bir yerel değişken bildirir.

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

Parametreler

localType
Type

Type Yerel değişkenin türünü temsil eden nesne.

pinned
Boolean

true nesneyi belleğe sabitlemek için; aksi takdirde , false.

Döndürülenler

LocalBuilder Yerel değişkeni temsil eden bir nesne.

Özel durumlar

localType, null değeridir.

İçeren tür yöntemi tarafından CreateType() oluşturulmuştur.

-veya-

Kapsayan yöntemin yöntem gövdesi yöntemi tarafından CreateMethodBody(Byte[], Int32) oluşturulmuştur.

Bunun ILGenerator ilişkilendirildiği yöntem bir MethodBuilderile temsil edilmez.

Açıklamalar

Yerel değişken geçerli sözcük temelli kapsamda oluşturulur; Örneğin, bir döngüde for kod yayılıyorsa (For Visual Basic'te döngü), değişkenin kapsamı döngüdür.

Güvenli olmayan kodda, yönetilmeyen bir işaretçi tarafından başvurulabilmesi için önce nesne sabitlenmelidir. Başvurulan nesne sabitlenmiş olsa da, çöp toplama tarafından taşınamaz.

Şunlara uygulanır

DeclareLocal(Type)

Kaynak:
ILGenerator.cs
Kaynak:
ILGenerator.cs
Kaynak:
ILGenerator.cs

Belirtilen türde bir yerel değişken bildirir.

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

Parametreler

localType
Type

Type Yerel değişkenin türünü temsil eden nesne.

Döndürülenler

Bildirilen yerel değişken.

Özel durumlar

localType, null değeridir.

İçeren tür yöntemi tarafından CreateType() oluşturulmuştur.

Örnekler

Aşağıdaki kod örneği yönteminin DeclareLocal kullanımını gösterir. Bu kod, sınıfı için daha büyük bir kod örneğinin LocalBuilder bir parçasıdır.

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

Açıklamalar

Yerel değişken geçerli sözcük temelli kapsamda oluşturulur; Örneğin, bir döngüde for kod yayılıyorsa (For Visual Basic'te döngü), değişkenin kapsamı döngüdür.

Bu aşırı yüklemeyle oluşturulan yerel değişken sabitlenmez. Yönetilmeyen işaretçilerle kullanmak üzere sabitlenmiş bir değişken oluşturmak için yöntem aşırı yüklemesini DeclareLocal(Type, Boolean) kullanın.

Şunlara uygulanır