Aracılığıyla paylaş


Option Infer Deyimi

Yerel tür çıkarımı değişkenleri bildirmek içinde kullanılmasına olanak tanır.

Option Infer { On | Off }

Bölümler

Terim

Tanım

On

İsteğe bağlı.Yerel tür çıkarımı sağlar.

Off

İsteğe bağlı.Yerel tür çıkarımı devre dışı bırakır.

Notlar

Ayarlanacak Option Infer bir dosya türü Option Infer On veya Option Infer Off önce başka bir kaynak kod dosyasının üst.Değeri için ayarlarsanız Option Infer IDE veya komut satırında ayarlanan değere sahip bir dosya çakışmaları içinde dosyasındaki değer önceliği vardır.

Ayarladığınızda Option Infer için On, yerel değişkenleri açıkça bir veri türü bildirmeden bildirebilirsiniz.Derleyici kendi başlatma ifadesinin türünden bir değişken veri türü öğesinin.

Aşağıdaki çizimde, Option Infer açıktır.Değişken bildiriminde Dim someVar = 2 bir tamsayı olarak tür çıkarımı tarafından bildirilir.

Seçeneği Çıkarsamak açıkken IntelliSense

Bildirimin IntelliSense görünümü.

Aşağıdaki çizimde, Option Infer devre dışı.Değişken bildiriminde Dim someVar = 2 olarak bildirilen bir Object tür çıkarımı tarafından.Bu örnekte, Option Explicit ayarı ayarı devre dışı üzerinde Derleme Sayfası, Proje Tasarımcısı (Visual Basic).

Seçeneği gerçekleştirip devre dışı olduğunda IntelliSense

Bildirimin IntelliSense görünümü.

[!NOT]

Ne zaman bir değişken bildirilmiş olarak bir Object, program çalışırken çalışma zamanı türünü değiştirebilirsiniz.Visual Basicçağrılır işlemi gerçekleştiren paketleme ve kutudan çıkarma arasında dönüştürmek için bir Object ve yürütme yavaş yapar bir değer türü.Kutulama hakkında daha fazla bilgi için bkz Visual Basic Dil Belirtimi.

Tür çıkarımı yordam düzeyinde geçerlidir ve sınıf, yapı, modül veya arabirim yordam dışında geçerli değildir.

Ek bilgi için bkz Yerel Türü Arabirimi (Visual Basic Başvurusu).

Bir seçenek Çıkarsamak olduğunda bildirimi mevcut değil

Kaynak kodu içermiyorsa bir Option Infer deyimi, seçeneği Çıkarsamak ayarlama Derleme Sayfası, Proje Tasarımcısı (Visual Basic) kullanılır.Komut satırı derleyici kullanılırsa, /optioninfer derleyici seçeneği kullanılır.

IDE'de seçeneği Çıkarsamak ayarlamak için

  1. Çözüm Gezgini'nde bir proje seçin.Üzerinde proje menüsünde tıklatın özellikleri.Daha fazla bilgi için bkz. Introduction to the Project Designer.

  2. Tıklatın derleme sekmesi.

  3. Değer kümesinde seçeneği çıkarsamak kutusu.

Yeni bir proje oluşturduğunuzda seçeneği Çıkarsamak ayarlama derleme sekmesi ayarı seçeneği Çıkarsamak ayarlarken VB varsayılanları iletişim kutusu.Erişim için VB varsayılanları iletişim kutusundaki Araçları menüsünde tıklatın seçenekleri.İçindeki seçenekleri iletişim kutusunda, genişletme proje ve çözümve ardından VB varsayılanları.İlk varsayılan ayarı VB varsayılanları olan On.

Komut satırında seçeneği Çıkarsamak ayarlamak için

Varsayılan veri türleri ve değerleri

Aşağıdaki tablo veri türü ve Başlatıcı belirtmenin çeşitli birleşimleri sonuçlarını açıklayan bir Dim bildirimi.

Belirtilen veri türü?

Belirtilen başlatıcı?

Örnek

Sonuç

Hayır

Hayır

Dim qty

Varsa Option Strict olan kapalı (varsayılan), değişken ayarlamak Nothing.

Varsa Option Strict olan şeylere, bir derleme zamanı hatası meydana gelir.

Hayır

Evet

Dim qty = 5

Varsa Option Infer (varsayılan), değişken veri alır Başlatıcı türü olduğunda.Bkz. Yerel Türü Arabirimi (Visual Basic Başvurusu).

Varsa Option Infer kapalıdır ve Option Strict kapalıysa, değişken veri türü alan Object.

Varsa Option Infer kapalıdır ve Option Strict olan şeylere, bir derleme zamanı hatası meydana gelir.

Evet

Hayır

Dim qty As Integer

Değişken veri türü için varsayılan değer için başlatılır.Daha fazla bilgi için bkz. Dim Deyimi (Visual Basic).

Evet

Evet

Dim qty As Integer = 5

Başlatıcı veri türü belirtilen veri türüne dönüştürülebilir değilse, bir derleme zamanı hatası meydana gelir.

Örnek

Aşağıdaki örnekler gösterir nasıl Option Infer ifade yerel tür çıkarımı etkinleştirir.

' Enable Option Infer before trying these examples. 

' Variable num is an Integer. 
Dim num = 5

' Variable dbl is a Double. 
Dim dbl = 4.113

' Variable str is a String. 
Dim str = "abc" 

' Variable pList is an array of Process objects. 
Dim pList = Process.GetProcesses()

' Variable i is an Integer. 
For i = 1 To 10
    Console.WriteLine(i)
Next 

' Variable item is a string. 
Dim lst As New List(Of String) From {"abc", "def", "ghi"}

For Each item In lst
    Console.WriteLine(item)
Next 

' Variable namedCust is an instance of the Customer class. 
Dim namedCust = New Customer With {.Name = "Blue Yonder Airlines",
                                   .City = "Snoqualmie"}

' Variable product is an instance of an anonymous type. 
Dim product = New With {Key .Name = "paperclips", .Price = 1.29}

' If customers is a collection of Customer objects in the following  
' query, the inferred type of cust is Customer, and the inferred type 
' of custs is IEnumerable(Of Customer). 
Dim custs = From cust In customers 
            Where cust.City = "Seattle"  
            Select cust.Name, cust.ID

Aşağıdaki örnek, bir değişken olarak tanımlandığında çalışma zamanı türü değişebilir gösterir bir Object.

' Disable Option Infer when trying this example. 

Dim someVar = 5
Console.WriteLine(someVar.GetType.ToString)

' If Option Infer is instead enabled, the following 
' statement causes a run-time error. This is because 
' someVar was implicitly defined as an integer.
someVar = "abc"
Console.WriteLine(someVar.GetType.ToString)

' Output: 
'  System.Int32 
'  System.String

Ayrıca bkz.

Başvuru

Dim Deyimi (Visual Basic)

Option Compare Deyimi

Option Explicit Deyimi (Visual Basic)

Option Strict Deyimi

Visual Basic projeleri, varsayılan seçenekleri iletişim kutusu

/optioninfer

Kutulama ve Kutudan Çıkarma (C# Programlama Kılavuzu)

Kavramlar

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