Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Örtük veri türü dönüştürmelerini yalnızca genişletme dönüştürmeleriyle kısıtlar, geç bağlamaya izin vermez ve bir Object türe neden olan örtük yazmaya izin vermez.
Sözdizimi
Option Strict { On | Off }
Parçalar
| Süre | Tanım |
|---|---|
On |
Opsiyonel. Denetimi etkinleştirir Option Strict . |
Off |
Opsiyonel.
Option Strict Denetimi devre dışı bırakır. |
Açıklamalar
Bir dosyada göründüğünde Option Strict On veya Option Strict göründüğünde, aşağıdaki koşullar derleme zamanı hatasına neden olur:
Örtük daraltma dönüştürmeleri
Geç bağlama
Objecttürüyle sonuçlanabilecek örtük yazma
Uyarı
Derleme Sayfası, Proje Tasarımcısı (Visual Basic) üzerinde ayarlayabileceğiniz uyarı yapılandırmalarında, derleme zamanı hatasına neden olan üç koşula karşılık gelen üç ayar vardır. Bu ayarların nasıl kullanılacağı hakkında bilgi için, bu konunun devamında yer alan IDE'de uyarı yapılandırmalarını ayarlamak için bölümüne bakın.
deyimi Option Strict Off , ilişkili IDE ayarları bu hataları veya uyarıları açmayı belirtse bile üç koşul için de hata ve uyarı denetimini kapatır. deyimi Option Strict On , ilişkili IDE ayarları bu hataları veya uyarıları kapatmak için belirtse bile üç koşul için de hata ve uyarı denetimini açar.
Kullanılırsa, deyimi bir dosyadaki Option Strict diğer kod deyimlerinden önce görünmelidir.
olarak OnayarladığınızdaOption Strict, Visual Basic tüm programlama öğeleri için veri türlerinin belirtildiğini denetler. Veri türleri açıkça belirtilebilir veya yerel tür çıkarımı kullanılarak belirtilebilir. Aşağıdaki nedenlerle tüm programlama öğeleriniz için veri türlerini belirtmeniz önerilir:
Değişkenleriniz ve parametreleriniz için IntelliSense desteği sağlar. Bu, kod yazarken özelliklerini ve diğer üyeleri görmenizi sağlar.
Derleyicinin tür denetimi gerçekleştirmesini sağlar. Tür denetimi, tür dönüştürme hataları nedeniyle çalışma zamanında başarısız olabilecek deyimleri bulmanıza yardımcı olur. Ayrıca, bu yöntemleri desteklemeyen nesnelerdeki yöntemlere yapılan çağrıları da tanımlar.
Kodun yürütülmesini hızlandırır. Bunun bir nedeni, bir programlama öğesi için veri türü belirtmezseniz, Visual Basic derleyicisinin öğeye
Objecttürünü atamasıdır. Derlenen kodun ve diğer veri türleri arasındaObjectileri geri dönüştürmesi gerekebilir ve bu da performansı düşürür.
Örtük Daraltma Dönüştürme Hataları
Örtük daraltma dönüştürme hataları, daraltma dönüştürmesi olan örtük bir veri türü dönüştürmesi olduğunda oluşur.
Visual Basic birçok veri türünü diğer veri türlerine dönüştürebilir. Bir veri türünün değeri daha az duyarlıklı veya daha küçük bir kapasiteye sahip bir veri türüne 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ı hatası oluşur.
Option Strict bu daraltma dönüştürmelerinin derleme zamanı bildirimini sağlar, böylece bunları önleyebilirsiniz. Daha fazla bilgi için bkz. Örtük ve Açık Dönüştürmeler ve Genişletme ve Daraltma Dönüştürmeleri.
Hatalara neden olabilecek dönüştürmeler, ifadelerde gerçekleşen örtük dönüştürmeleri içerir. Daha fazla bilgi için aşağıdaki konulara bakın:
Dizeleri & İşleci'ni kullanarak birleştirdiğinizde, dizelere yapılan tüm dönüştürmelerin genişlediği kabul edilir. Bu nedenle bu dönüştürmeler açık olsa Option Strict bile örtük bir daraltma dönüştürme hatası oluşturmaz.
Karşılık gelen parametreden farklı bir veri türüne sahip bağımsız değişkeni olan bir yöntemi çağırdığınızda, daraltma dönüştürmesi açıksa Option Strict derleme zamanı hatasına neden olur. Genişletme dönüştürmesi veya açık dönüştürme kullanarak derleme zamanı hatasını önleyebilirsiniz.
Örtük daraltma dönüştürme hataları, bir For Each…Next koleksiyondaki öğelerden döngü denetimi değişkenine dönüştürmeler için derleme zamanında gizleniyor. Bu, açık olsa Option Strict bile oluşur. Daha fazla bilgi için, Her İçin... bölümündeki "Dönüştürmeleri Daraltma" bölümüne bakın. Next Deyimi.
Geç Bağlama Hataları
Nesne, Objecttüründe olduğu bildirilen bir değişkenin özelliğine veya yöntemine atandığında geç bağlanır. Daha fazla bilgi için bkz. Erken ve Geç Bağlama.
Örtük Nesne Türü Hataları
Bildirilen değişken için uygun bir tür çıkarılamadığında örtük nesne türü hataları oluşur, bu nedenle Object türü çıkarılır. Bu öncelikle bir Dim yan tümcesi kullanmadan bir değişken bildirmek için bir As deyimi kullandığınızda ve Option Infer kapalı olduğunda oluşur. Daha fazla bilgi için bkz . Option Infer Deyimi ve Visual Basic Dil Belirtimi.
Yöntem parametreleri için As yan tümcesi kapalıysa Option Strict isteğe bağlıdır. Ancak, herhangi bir parametre bir As yan tümcesi kullanıyorsa, tümünün bunu kullanması gerekir. Açıksa Option Strict , tüm parametre tanımları As için yan tümcesi gereklidir.
Yan tümcesi kullanmadan As bir değişken bildirir ve olarak Nothingayarlarsanız değişkeninin Objecttürü vardır. Bu durumda açık ve Option Infer açık olduğunda Option Strict derleme zamanı hatası oluşmaz. Bunun bir örneğidir Dim something = Nothing.
Varsayılan Veri Türleri ve Değerleri
Aşağıdaki tabloda, Dim Deyiminde veri türünü ve başlatıcıyı belirtmenin çeşitli bileşimlerinin sonuçları açıklanmaktadır.
| Veri türü belirtildi mi? | Başlatıcı belirtildi mi? | Örnek | Sonuç |
|---|---|---|---|
| Hayı | Hayı | Dim qty |
Kapalıysa Option Strict (varsayılan), değişkeni olarak Nothingayarlanır.Açıksa Option Strict , derleme zamanı hatası oluşur. |
| Hayı | Evet | Dim qty = 5 |
açıksa Option Infer (varsayılan), değişken başlatıcının veri türünü alır. Bkz. Yerel Tür Çıkarımı.kapalıysa ve Option Strict kapalıysa Option Infer değişkeni veri türünü Objectalır.Kapalı ve Option Strict açıksa Option Infer derleme zamanı hatası oluşur. |
| Evet | Hayı | Dim qty As Integer |
Değişken, veri türü için varsayılan değere başlatılır. Daha fazla bilgi için bkz . Dim Deyimi. |
| Evet | Evet | Dim qty As Integer = 5 |
Başlatıcının veri türü belirtilen veri türüne dönüştürülemezse, derleme zamanı hatası oluşur. |
Bir Seçenek Katı Deyimi Olmadığında
Kaynak kod bir Option Strict deyim içermiyorsa, Derleme Sayfası, Proje Tasarımcısı (Visual Basic) üzerindeki Option katı ayarı kullanılır.
Derleme Sayfası, hata oluşturan koşullar üzerinde ek denetim sağlayan ayarlara sahiptir.
Komut satırı derleyicisini kullanıyorsanız için bir ayar belirtmek için Option Strict-optionstrict derleyicisi seçeneğini kullanabilirsiniz.
IDE'de Option Strict ayarlamak için
Uyarı
Bilgisayarınız, aşağıdaki yönergelerde bazı Visual Studio kullanıcı arabirimi öğeleri 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. IDE'yi Kişiselleştirme.
Çözüm Gezginipenceresinde bir proje seçin. Proje menüsünde Özellikler'e tıklayın.
Derle sekmesinde, Seçenek Katı kutusundaki değeri ayarlayın.
IDE'de uyarı yapılandırmalarını ayarlamak için
Deyim yerine Option StrictDerleme Sayfası, Proje Tasarımcısı (Visual Basic) kullandığınızda, hata oluşturan koşullar üzerinde ek denetime sahip olursunuz.
Derleme SayfasınınUyarı yapılandırmaları bölümünde, açık olduğunda Option Strict derleme zamanı hatasına neden olan üç koşula karşılık gelen ayarlar bulunur. Aşağıdaki ayarlar şunlardır:
Örtük dönüştürme
Geç bağlama; arama çalışma zamanında başarısız olabilir
örtük tür ; nesnenin varsayıldığı
Seçenek Katı'daolarak ayarladığınızda, bu uyarı yapılandırma ayarlarının üçü de hata olarak ayarlanır. Seçenek Katı kapalı olarak ayarladığınızda, üç ayar da hiçbiri olarak ayarlanır.
Her uyarı yapılandırma ayarını Tek tek Hiçbiri , Uyarıolarakveya Hata olarak değiştirebilirsiniz. Üç uyarı yapılandırma ayarı da Hataolarak ayarlanırsa On kutusunda Option strict görüntülenir. Üçü de Hiçbiri olarak ayarlanırsa, bu kutuda Off görüntülenir. Bu ayarların diğer tüm bileşimleri için (özel) görüntülenir.
Yeni projeler için Seçenek Katı varsayılan ayarını ayarlamak için
Proje oluşturduğunuzda, Derle sekmesindeki Option Strict ayarı, Seçenekler iletişim kutusundaki Seçenek Katı ayarına ayarlanır.
Bu iletişim kutusunda ayarlamak Option Strict için Araçlar menüsünde Seçenekler'e tıklayın.
Seçenekleri iletişim kutusunda Projeler ve Çözümler genişletin ve ardından VB Varsayılanları öğesine tıklayın.
VB Varsayılanları'ndaki ilk varsayılan ayardırOff.
Komut satırında Option Strict ayarlamak için
vbc komutuna -optionstrict derleyicisi seçeneğini ekleyin.
Örnek 1
Aşağıdaki örneklerde, dönüştürmeleri daraltan örtük tür dönüştürmelerinin neden olduğu derleme zamanı hataları gösterilmektedir. Bu hata kategorisi, Derleme SayfasındakiÖrtük dönüştürme koşuluna karşılık gelir.
' 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
Örnek 2
Aşağıdaki örnekte, geç bağlamanın neden olduğu derleme zamanı hatası gösterilmektedir. Bu hata kategorisi Geç bağlamaya karşılık gelir; Derleme Sayfasında çağrı çalışma zamanında başarısız olabilir.
' 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
Örnek 3
Aşağıdaki örneklerde örtük türüyle bildirilen değişkenlerin neden olduğu hatalar gösterilmektedir Object. Bu hata kategorisi Örtük türe karşılık gelir; Derleme Sayfasında nesne koşulu varsayılır.
' 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 bakınız
- Genişletme ve Daraltma Dönüştürmeleri
- Gizli ve Açık Dönüştürmeler
- Derleme Sayfası, Proje Tasarımcısı (Visual Basic)
- Option Explicit Bildirimi
- Tür Dönüştürme İşlevleri
- Nasıl yapılır: Nesnenin Üyelerine Erişme
- XML'de Katıştırılmış İfadeler
- Esnek Delege Dönüştürme
- Office Çözümlerinde Geç Bağlama
- -optionstrict
- Visual Basic Varsayılanları, Projeler, Seçenekler İletişim Kutusu