ILGenerator.DeclareLocal Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- 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
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.