Soru Tarihi
Option Strict, Visual Basic .NET'te tür güvenliğini artırmak amacıyla ortaya çıktı. Dilin önceki sürümlerinde (VB6) türlerin örtük dönüşümleri gerçekleşiyor, bu da programın beklenmedik davranışlar sergilemesine ve zor tespit edilen hatalara yol açıyordu. Etkinleştirilmiş Strict, davranışı daha belirgin ve katı tipli hale getirmektedir.
Sorun
Örtük tür dönüşümleri (örneğin, bir metni sayısal bir değişkene atamak veya bir işlevden farklı türler döndürmek), çalışma zamanında hatalara neden olur. Option Strict Off olan projeler genellikle zor tespit edilen hata kaynaklarıdır.
Çözüm
Option Strict On iken örtük tür dönüşümlerine izin verilmez; tüm değişken bildirimleri, parametreler ve işlevlerin dönüş türleri açıkça belirtilmelidir. Bu, derleme aşamasında bir hata türünü önler ve kodun yüksek kalitesini sağlar.
Kod örneği:
Option Strict On Dim x As Integer x = "123" ' Derleme hatası - açık dönüşüm zorunludur x = CInt("123") ' Tamam Function GetNumber(ByVal input As String) As Integer Return input ' Derleme hatası End Function
Anahtar özellikler:
Eğer Strict On kullanmak daha kolay ve güvenliyse, o zaman Option Strict Off neden gerekiyor?
Option Strict Off, içerisinde birçok örtük dönüşüm bulunan eski kodları desteklemek için kullanılır (örneğin, VB6'dan geçiş). Yeni projelerde daha güvenilir ve güvenli bir kod yazmak için Strict'in etkinleştirilmesi önerilir.
Varsayılan olarak Off olan bir projede, dosya seviyesinde tür seçim katılığını geri getirmek mümkün mü?
Evet, ayrı bir modül veya dosyanın başına Option Strict On direktifi ekleyerek, katı tür kontrolü sadece bu dosyaya uygulanır.
' Dosyanın başında: Option Strict On
Strict, Object üzerinden geç bağlama kullanmayı engelliyor mu?
Evet, Option Strict On iken derleme zamanında tanımlanamayan nesnelerin üyeleri çağrılmaz (geç bağlama). Nesneler, bilinen bir tür aracılığıyla arayüzlere dönüştürülmeli veya yalnızca Off ile dinamik çalışma yapılmalıdır.
Programcı Option Strict'i etkinleştirmedi ve TextBox'tan veri girişi sırasında değerler doğrudan sayısal değişkenlere atandı. Hatalı veriler girildiğinde program çöküyordu.
Artılar:
Eksiler:
Programcı Option Strict On'u etkinleştirdi, tüm dönüşümler açıkça TryParse aracılığıyla yapıldı. Hatalar derleme aşamasında yakalandı, çalışma zamanında istisnalar minimum düzeye indirildi.
Artılar:
Eksiler: