Yerel Türü Arabirimi (Visual Basic Başvurusu)

Visual Basic derleyicisi, yan As tümcesi olmadan bildirilen yerel değişkenlerin veri türlerini belirlemek için tür çıkarımı kullanır. Derleyici, başlatma ifadesinin türünden değişkenin türünü çıkartır. Bu, aşağıdaki örnekte gösterildiği gibi bir türü açıkça belirtmeksizin değişkenleri bildirmenizi sağlar. Bildirimlerin sonucu olarak, hem hem num2 de num1 tamsayı olarak kesin olarak yazılır.

Public Sub inferenceExample()

    ' Using explicit typing.
    Dim num1 As Integer = 3

    ' Using local type inference.
    Dim num2 = 3

End Sub

Not

Önceki örnekte olarak yazılmasını Integeristemiyorsanız num2 veya Dim num4 As Double = 3gibi Dim num3 As Object = 3 bir bildirim kullanarak başka bir tür belirtebilirsiniz.

Not

Tür çıkarımı yalnızca statik olmayan yerel değişkenler için kullanılabilir; sınıf alanlarının, özelliklerin veya işlevlerin türünü belirlemek için kullanılamaz.

Yerel tür çıkarımı yordam düzeyinde uygulanır. Modülleri modül düzeyinde (bir sınıf, yapı, modül veya arabirim içinde) bildirmek için kullanılamaz, ancak yordam veya blok içinde bildirilemez. Önceki örnekte bir yordamda yerel değişken yerine sınıfın bir alanı varsanum2, bildirim ile Option Strict hataya neden olur ve ile off Option Strict olarak Object sınıflandırılırnum2. Benzer şekilde, yerel tür çıkarımı olarak Staticbildirilen yordam düzeyi değişkenleri için geçerli değildir.

Tür Çıkarımı ile Geç Bağlama Karşılaştırması

Tür çıkarımı kullanan kod, geç bağlamayı kullanan koda benzer. Ancak, tür çıkarımı değişkeni olarak bırakmak yerine kesin olarak Objectyazar. Derleyici, erken bağlanan kod üretmek üzere derleme zamanında değişkenin türünü belirlemek için değişkenin başlatıcısını kullanır. Önceki örnekte, num2gibi num1, olarak Integeryazıldı.

Erken bağlanan değişkenlerin davranışı, türün yalnızca çalışma zamanında bilindiği geç bağlı değişkenlerden farklıdır. Türün erken bilinmesi, derleyicinin yürütmeden önce sorunları tanımlamasına, belleği hassas bir şekilde ayırmasına ve diğer iyileştirmeleri gerçekleştirmesine olanak tanır. Erken bağlama, Visual Basic tümleşik geliştirme ortamının (IDE) bir nesnenin üyeleri hakkında IntelliSense Yardımı sağlamasına da olanak tanır. Erken bağlama da performans için tercih edilir. Bunun nedeni, geç bağlı değişkende depolanan tüm verilerin türü Objectolarak sarmalanması ve çalışma zamanında türün üyelerine erişmenin programı yavaşlatmasıdır.

Örnekler

Tür çıkarımı, bir yerel değişken yan As tümcesi olmadan bildirildiğinde ve başlatıldığında oluşur. Derleyici, değişkenin türü olarak atanan ilk değerin türünü kullanır. Örneğin, aşağıdaki kod satırlarının her biri türünde Stringbir değişken bildirir.

' Using explicit typing.
Dim name1 As String = "Springfield"

' Using local type inference.
Dim name2 = "Springfield"

Aşağıdaki kod, bir tamsayı dizisi oluşturmanın iki eşdeğer yolunu gösterir.

' Using explicit typing.
Dim someNumbers1() As Integer = New Integer() {4, 18, 11, 9, 8, 0, 5}

' Using local type inference.
Dim someNumbers2 = New Integer() {4, 18, 11, 9, 8, 0, 5}

Bir döngü denetim değişkeninin türünü belirlemek için tür çıkarımı kullanmak uygundur. Aşağıdaki kodda, derleyici bunun önceki örnekten bir tamsayı dizisi olduğu için someNumbers2 olduğunu çıkarsar.numberInteger

Dim total = 0
For Each number In someNumbers2
    total += number
Next

Aşağıdaki örnekte gösterildiği gibi, kaynak adının türünü oluşturmak için deyimlerde Using yerel tür çıkarımı kullanılabilir.

Using proc = New System.Diagnostics.Process
    ' Insert code to work with the resource.
End Using

Bir değişkenin türü, aşağıdaki örnekte gösterildiği gibi işlevlerin dönüş değerlerinden de çıkarılabilir. Hem hem de pList1pList2 işlem dizileridir çünkü Process.GetProcesses bir dizi işlem döndürür.

' Using explicit typing.
Dim pList1() As Process = Process.GetProcesses()

' Using local type inference.
Dim pList2 = Process.GetProcesses()

Seçenek Çıkar

Option Infer , belirli bir dosyada yerel tür çıkarımına izin verilip verilmeyeceğini belirtmenizi sağlar. Seçeneği etkinleştirmek veya engellemek için dosyanın başlangıcına aşağıdaki deyimlerden birini yazın.

Option Infer On

Option Infer Off

Kodunuzda için Option Infer bir değer belirtmezseniz, derleyici varsayılanı olur Option Infer On.

Bir dosyada için ayarlanan Option Infer değer, IDE'de veya komut satırında ayarlanan değerle çakişiyorsa, dosyadaki değerin önceliği vardır.

Daha fazla bilgi için bkz. Option Infer Deyimi ve Derleme Sayfası, Project Tasarım Aracı (Visual Basic).

Ayrıca bkz.