Aracılığıyla paylaş


Option Strict Deyimi

Örtülü veri türü dönüştürmeleri için yalnızca dönüşümleri widening kısıtlar, late binding izin vermez ve örtülü neden yazmaya izin vermiyor bir Object türü.

Option Strict { On | Off }

Bölümleri

Terim

Tanım

On

İsteğe Bağlı.Sağlayan Option Strict denetleniyor.

Off

İsteğe Bağlı.Devre dışı bırakır Option Strict denetleniyor.

Notlar

Zaman Option Strict On veya Option Strict görünür bir dosyada aşağıdaki koşulların neden bir derlemek-zamanı hata:

  • Daraltma örtük dönüştürmeler

  • Geç bağlama

  • Örtülü sonuçlanan yazarak bir Object türü

[!NOT]

Üzerinde ayarlanmış uyarı yapılandırmaları Derleme Sayfası, Proje Tasarımcısı (Visual Basic), bir derlemekneden üç koşul için karşılık gelen üç ayar vardır-zamanı hata.Bu ayarları kullanma hakkında daha fazla bilgi için bkz: To set warning configurations in the IDE bu konuda daha sonra.

Option Strict Off hesap özeti kapatır hata ve uyarı tüm üç koşul denetleme bile bu hataları ve Uyarıları kapatmak için ilişkili IDE ayarlarını belirtin. Option Strict On hesap özeti algılamanın hata ve uyarı tüm üç koşul denetleme bile bu hataları veya Uyarıları kapatmak için ilişkili IDE ayarlarını belirtin.

Kullandıysanız, Option Strict hesap özeti gerekir diğer kod deyimleri bir dosyada önce görünür.

Ayarladığınızda Option Strict için On, Visual Basic denetler veri türleri için tüm programlama öğeleri belirtilir.Veri türleri açıkça belirtilen veya yerel çıkarımkullanarak belirtilen.Tüm programlama öğeleri için veri türlerini belirtme, aşağıdaki nedenlerle önerilir:

  • Bu değişkenleri ve parametreleri için IntelliSense desteği sağlar.Bu kod yazarken özelliklerini ve diğer üyeleri görmenize olanak sağlar.

  • derleyici tür denetimiyapmak etkinleştirir.Tür denetlemesi zamanında tür dönüştürme hataları nedeniyle başarısız olabilir ifadeleri bulmanıza yardımcı olur.Ayrıca, bu yöntemi desteklemez nesnelerdeki yöntemlere çağrılar tanımlar.

  • Onu kod yürütülmesini hızlandırır.Bunun bir nedeni olan bir programlama öğesinin veri türü belirtmezseniz, Visual Basicderleyici onu atayacağını Object türü. Derlenmiş kod içerebilir dönüştürmek arasında ileri ve geri Object ve diğer veri türleri performansdüşürür.

Daraltma örtük dönüştürme hataları

Daraltma dönüşümü olan bir veri türü örtük dönüştürme olduğunda daraltma örtük dönüştürme hataları oluşur.

Visual BasicBirçok veri türleri diðer veri türlerinden dönüştürmek olabilir.veri türü değeri daha az duyarlık veya daha küçük kapasitesi olan bir veri türü dönüştürüldüğünde, veri kaybı oluşabilir.Böyle bir daraltma dönüştürmesi başarısız olursa, bir çalışma zamanı hata oluşur.Option Strictderlemeksağlar-bu dönüşümler böylece bunları önlemek daraltmaya bildirim süresi.Daha fazla bilgi için, bkz. Örtük ve Açık Dönüştürmeler (Visual Basic) ve Genişletme ve Daraltma Dönüşümleri (Visual Basic).

Hatalara neden olabilir dönüşümleri ortaya örtük dönüştürmeler ifadelerde içerir.Daha ayrıntılı bilgi için aşağıdaki konulara bakın:

Ne zaman, arada dizelerini kullanarak & İşleci (Visual Basic), dizeleri için tüm dönüşümler widening olarak kabul edilir.Bu dönüştürmeler oluşturmamanız şekilde daraltma örtük dönüştürme hata, bile Option Strict açıktır.

Bir derlemekdaraltma dönüştürmesi veri türü karşılık gelen parametrefarklı bir bağımsız değişken olan bir yöntem çağırdığınızda, neden-zamanı hata , Option Strict açıktır.derlemekkaçının-zamanı hata ya da açýk bir dönüþtürme widening conversion kullanarak.

Daraltma örtük dönüştürme hataları derlemeksırasında özelliği-türünden öğeleri için bir For Each…Next koleksiyon döngü Denetim değişken. Böyle olsa da, Option Strict açıktır."Daraltmaya dönüşümlerini" bölümünde daha fazla bilgi için bkz: For Each...Next Deyimi (Visual Basic).

Late Binding hataları

Bir özellik veya yöntem türünde bildirilmiş bir değişken atandığında nesne geç bağlı Object.Daha fazla bilgi için bkz. Erken ve Geç Bağlama (Visual Basic).

Örtük nesne türü hataları

Örtük nesne türü hatalarını uygun bir tür olamaz karşılaşılıyor için bildirilen değişken, bu nedenle bir tür olayla Object algılanır.Kullandığınızda öncelikle böyle bir Dim hesap özeti kullanmadan bir değişken tanımlamak ' ni bir As yan tümcesi ve Option Infer kapalıdır. Daha fazla bilgi için bkz: Option Infer Deyimi ve Visual Basic Dil Belirtimi.

yöntem parametreleri için As yan tümcesi isteğe bağlı, Option Strict kapalıdır.Ancak, herhangi bir parametre kullanıyorsa, bir As yan tümcesi, hepsinin kullanmalı.Option Strict Açıktır, As yan tümcesi her parametre tanımı için gereklidir.

Varsa kullanmadan bir değişken tanımlamak bir As yan tümcesi ve ayarlamak Nothing, değişken türü olan Object.Hiçbir derlemek- hata oluşur bu durumda, Option Strict açıktır ve Option Infer açıktır.Bunun bir örneği Dim something = Nothing.

Varsayılan veri türleri ve değerleri

Başlatıcı ve veri türü belirtme çeşitli birleşimleri sonuçları aşağıdaki tabloda açıklanmıştır bir Dim Deyimi (Visual Basic).

Belirtilen veri türü?

Belirtilen başlatıcı?

Örnek

Sonuç

Hayyr

Hayyr

Dim qty

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

Option Strict Bir derlemek, iş- hata oluşur.

Hayyr

Evet

Dim qty = 5

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

Option Infer Kapalı ve Option Strict kapalıysa, değişken alır veri türü Object.

Option Infer Kapalı ve Option Strict bir derlemek, iş- hata oluşur.

Evet

Hayyr

Dim qty As Integer

varsayılan değer veri türü değişken başlatıldı.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ü, bir derlemekdönüştürülebilir değilse- hata oluşur.

Ne zaman bir seçenek katı ifadesi yok

kaynak kodu içermiyorsa bir Option Strict hesap özeti, seçeneği katıayar Derleme Sayfası, Proje Tasarımcısı (Visual Basic) kullanılır. Sayfa derleme bir hataoluşturabilir koşullar üzerinde ek denetim sağlayan ayarları vardır.

derleyicikomut -çizgikullanıyorsanız, kullanabileceğiniz /optionstrict derleyici seçeneği için bir ayar belirtmek için Option Strict.

Option Strict IDE içinde ayarlamak için

[!NOT]

Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.

  1. İçinde Solution Explorer, bir projeseçin.Proje menüsündeki Özellikler’i tıklayın.Daha fazla bilgi için bkz. Proje Tasarımcısı Giriº.

  2. Üzerinde derleme sekmesinde, değer kümesinde Seçeneği katı kutusu.

IDE içinde uyarı yapılandırmalarını ayarlamak için

Kullandığınızda Derleme Sayfası, Proje Tasarımcısı (Visual Basic) yerine bir Option Strict hesap özeti, hatalara neden olan koşullar üzerinde ek denetim vardır. Uyarı yapılandırmaları bölümünü Derleme sayfa karşılık gelen bir derlemekneden üç koşul ayarlarına sahiptir-zamanı hata , Option Strict açıktır.Bu ayarlar şunlardır:

  • Örtük dönüştürme

  • Late binding; Çalışma zamanında çağrısı başarısız olabilir

  • Örtük tür; nesne kabul

Ayarladığınızda Seçeneği katı için ,, üçü de bu uyarıyapılandırma ayarlarını ayarlamak hata. Ayarladığınızda Seçeneği katı için Off, tüm üç ayarlarını ayarlamak yok.

Tek tek her uyarıyapılandırmaayar değiştirmek yok, Uyarı, veya hata. Tüm üç uyarıyapılandırma ayarlarını ayarlandıysa, hata, On yer Option strict kutusu. Tüm üç olarak ayarlandıysa, yok, Off bu kutuda görünür.Bu ayarlar, diğer herhangi bir birleşimi için (özel) görünür.

Yeni projeler için Option Strict varsayılan ayar ayarlamak için

Zaman proje oluşturmak Seçeneği katı ayar derleme sekmesinde ayarlanır Seçeneği katı ayar seçenekleriiletişim kutusu.

Ayarlamak için Option Strict bu iletişim kutusu, üzerinde araçlarımenütıklatın seçenekleri. İçinde seçenekleri iletişim kutusu, genişletmek Projeler ve çözümlerve ardından vb varsayılan olarak. Varsayılan Başlangıç ayar vb varsayılanlarını olan Off.

Option Strict komut satırı ayarlamak için

Dahil /optionstrict derleyici seçeneği vbc komut.

Örnek

derlemek, aşağıdaki örnekler göstermektedir-saat dönüşümleri daraltmaya örtük Tür Dönüşümleri tarafından kaynaklanan hataları.Karşılık gelen hataları bu kategori kapalý dönüþtürme üzerinde koşul Derleme sayfa.

' If Option Strict is on, this implicit narrowing 
' conversion causes a compile-time error. 
' The commented statements below use explicit 
' conversions to avoid a compile-time error. 
Dim cyclists As Long = 5
Dim bicycles As Integer = cyclists
'Dim bicycles As Integer = CType(cyclists, Integer) 
'Dim bicycles As Integer = CInt(cyclists) 
'Dim bicycles As Integer = Convert.ToInt32(cyclists) 


' If Option Strict is on, this implicit narrowing 
' conversion causes a compile-time error. 
' The commented statements below use explicit 
' conversions to avoid a compile-time error. 
Dim charVal As Char = "a" 
'Dim charVal As Char = "a"c 
'Dim charVal As Char = CType("a", Char) 


' If Option Strict is on, a compile-time error occurs. 
' If Option Strict is off, the string is implicitly converted 
' to a Double, and then is added to the other number. 
Dim myAge As Integer = "34" + 6


' If Option Strict is on, a compile-time error occurs. 
' If Option Strict is off, the floating-point number 
' is implicitly converted to a Long. 
Dim num = 123.45 \ 10

Aşağıdaki örnek, bir derlemekgösterir-late binding ile neden hata zaman.Karşılık gelen hataları bu kategori geç bağlama; Çalışma zamanında çağrı başarısız üzerinde koşul Derleme sayfa.

' If Option Strict is on, this late binding 
' causes a compile-time error. If Option Strict 
' is off, the late binding instead causes a 
' run-time error. 
Dim punchCard As New Object
punchCard.Column = 5

Aşağıdaki örneklerde, örtülü bir türü ile bildirilen değişkenler tarafından kaynaklanan hataları göstermek Object.Karşılık gelen hataları bu kategori örtülü türü; nesne kabul üzerinde koşul Derleme sayfa.

' If Option Strict is on and Option Infer is off, 
' this Dim statement without an As clause  
' causes a compile-time error. 
Dim cardReaders = 5

' If Option Strict is on, a compile-time error occurs. 
' If Option Strict is off, the variable is set to Nothing. 
Dim dryWall
' If Option Strict is on, this parameter without an 
' As clause causes a compile-time error. 
Private Sub DetectIntergalacticRange(ByVal photonAttenuation)

End Sub

Ayrıca bkz.

Görevler

Nasıl yapılır: Bir Nesnenin Üyelerine Erişme (Visual Basic)

Başvuru

Derleme Sayfası, Proje Tasarımcısı (Visual Basic)

Option Explicit Deyimi (Visual Basic)

Tür Dönüştürme İşlevleri (Visual Basic)

/optionstrict

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

Kavramlar

Genişletme ve Daraltma Dönüşümleri (Visual Basic)

Örtük ve Açık Dönüştürmeler (Visual Basic)

XML'de Katıştırılmış İfadeler (Visual Basic)

Gevşek Temsilci Dönüşümü (Visual Basic)

Office Çözümlerinde Geç Bağlama