2012-10-24 33 views
6

Kısa bir süre önce C# ekibinden bir vb.net ekibine geçtim. Bir cevap bulamadığım şeylerden biri, derleme hatası/seçeneklerindeki farklılıklardır. Açıklamama izin ver.Neden VB.NET'te hata yok

C# i'de, varsayılan ayarları kullanarak, geçersiz bir tür içinde aşağıdakini benzer bir sınıfa geçmeye çalışırken bir derleme zamanı hatası alırsınız. Burada bir dize türüne sahip bir Hayvan yaratıyorum ve daha sonra bir derleme hatasıyla sonuçlanan bir datetime geçiyorum.

IAnimal<string> animal = new Animal<string>(); 
animal.SetTrainer(DateTime.Now); 

Ben de "Option Strict" ile vb.net'de aynı derleme zamanı hatasını alacağımı biliyorum. Bununla birlikte, aynı dosyada "Option Strict" ile derlenmeyecek bir çok eski (VB) kod vardır. Hangi seçeneklerim var. "Sıkı Seçeneği" için

  1. Anahtarı ve tüm hataları düzeltmek: Im bu düşünce. Biraz zaman alacak ve çalışma kodunu bozabilir.
  2. Belki de jeneriklerin derleme zamanı kontrolünü sağlayacak bir alternatif var. Tüm jenerikler oldukça yeni olduktan sonra belki de bunu her zaman uygulamak için bir yol vardır.
  3. ? peşin

Teşekkür

cevap

6

çift sizin Project tıklayın - My Projesi>.

Goto Derleme ve Şimdi bazı ayarları değiştirebilirsiniz

Warningconfiguration

arayın.

  • Örtülü dökme
  • Geç

onlara hatalarını ancak uyarıları yapmazlar Bağlama.

Bu, derleme zamanı hataları yapmaz, ancak en azından bazı uyarıları görebilirsiniz.

Başka bir çözüm, sınıfınızı kısmi bir sınıf haline getirmek ve kodunuzu yeni bir dosyaya taşımak olabilir. Option Strict/Option Explicit'i dosya bazında ayarlayabilirsiniz.

+5

+1 Kesinlikle katılıyorum.Ancak bunun hakkında bir fikriniz varsa ** proje seviyesinde ** Option Strict'i açacağım ** ve her bir dosyaya ** Option Strict Off ekleyeceğim **. Adım adım, mevcut kodu yeniden kodlamak için çalışacaksınız. –

+0

Düşüncelerinizi paylaştığınız için teşekkür ederiz. Bunu – Flodpanter

+0

@Adriano, +1 ekibimle tartışacağım - bu muhtemelen en iyi çözüm. –

3

"Option Strict" 'e geçin ve tüm hataları düzeltin. Biraz zaman alacak ve çalışma kodunu bozabilir.

Evet, bunu yapın. Akıl sağlamanıza yardımcı olacak.

Açılacak olan hataların çoğu, düzeltilmesi kolay olan basit döküm sorunlarıdır (burada bir CInt, bir ToString() var ...).

Option Strict On dosyasını dosya düzeyinde etkinleştirebildiğiniz için, tüm çözüm veya projenizi bir kerede düzeltmeniz gerekmez. Her dosyayı dokunduğunuzda düzeltmek için iyi bir alışkanlık haline getirin.

Bu

hep muhtemelen olmayacak, ama aynı zamanda sadece değişiklikleri bozmadan başka bir dosyaya ağır Option Strict On (örn COM şeyler) bağlı kodu taşıyabilirsiniz.

+0

Teşekkürler. Tamamen katılıyorum "Option Strict" gitmenin yolu. Şimdi sadece ekibimi ikna etmeliyim :-) – Flodpanter

+0

+1 her bir hatayı bulduğunuzda düzeltin. – MarkJ