Share via


ILGenerator.DeclareLocal Metode

Definisi

Mendeklarasikan variabel lokal.

Overload

DeclareLocal(Type, Boolean)

Mendeklarasikan variabel lokal dari jenis yang ditentukan, secara opsional menyematkan objek yang dirujuk oleh variabel .

DeclareLocal(Type)

Mendeklarasikan variabel lokal dari jenis yang ditentukan.

DeclareLocal(Type, Boolean)

Sumber:
ILGenerator.cs
Sumber:
ILGenerator.cs
Sumber:
ILGenerator.cs

Mendeklarasikan variabel lokal dari jenis yang ditentukan, secara opsional menyematkan objek yang dirujuk oleh variabel .

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

Parameter

localType
Type

Objek Type yang mewakili jenis variabel lokal.

pinned
Boolean

true untuk menyematkan objek dalam memori; jika tidak, false.

Mengembalikan

Objek LocalBuilder yang mewakili variabel lokal.

Pengecualian

localTypeadalah null.

Jenis yang berisi telah dibuat oleh CreateType() metode .

-atau-

Isi metode metode penutup telah dibuat oleh CreateMethodBody(Byte[], Int32) metode .

Metode yang terkait dengan ini ILGenerator tidak diwakili oleh MethodBuilder.

Keterangan

Variabel lokal dibuat dalam cakupan leksikal saat ini; misalnya, jika kode dipancarkan dalam perulangan for (For perulangan di Visual Basic), cakupan variabel adalah perulangan.

Dalam kode yang tidak aman, objek harus disematkan sebelum dapat dirujuk oleh penunjuk yang tidak dikelola. Saat objek yang direferensikan disematkan, objek tidak dapat dipindahkan oleh pengumpulan sampah.

Berlaku untuk

DeclareLocal(Type)

Sumber:
ILGenerator.cs
Sumber:
ILGenerator.cs
Sumber:
ILGenerator.cs

Mendeklarasikan variabel lokal dari jenis yang ditentukan.

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

Parameter

localType
Type

Objek Type yang mewakili jenis variabel lokal.

Mengembalikan

Variabel lokal yang dideklarasikan.

Pengecualian

localTypeadalah null.

Jenis yang berisi telah dibuat oleh CreateType() metode .

Contoh

Contoh kode berikut menunjukkan penggunaan DeclareLocal metode . Kode ini adalah bagian dari contoh kode yang lebih besar untuk LocalBuilder kelas .

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

Keterangan

Variabel lokal dibuat dalam cakupan leksikal saat ini; misalnya, jika kode dipancarkan dalam perulangan for (For perulangan di Visual Basic), cakupan variabel adalah perulangan.

Variabel lokal yang dibuat dengan kelebihan beban ini tidak disematkan. Untuk membuat variabel yang disematkan untuk digunakan dengan pointer yang tidak dikelola, gunakan DeclareLocal(Type, Boolean) metode kelebihan beban.

Berlaku untuk