Visual Studio "Dizin, dizi sınırlarının dışındaydı" hatası

Squatch

Hectopat
Katılım
19 Haziran 2019
Mesajlar
16
Visual Studio'da "System. Indexoutofrangeexception:'Dizin, dizi sınırlarının dışındaydı'" diye bir hata alıyorum. Yardım eder misiniz?
Ek Açıklama 2020-07-04 091150.png

Buda var
 

Dosya Ekleri

  • Ek Açıklama 2020-07-04 092312.png
    Ek Açıklama 2020-07-04 092312.png
    7,6 KB · Görüntüleme: 549
Son düzenleme:
if içerisinde array[3]'den önce array.Length >= 4 gibi bir kontrol daha eklemeniz güzel bir önleme yöntemi.
Demek istediğim;
if(array.Length >= 4 && ('if içerisinde olması gereken bölüm'))
AND öperatörü soldan sağa doğru çalışır. Eğer soldaki statement False ise sağdakinin ne olduğu fark etmeksizin sonuç False olacağı için sağ kısım execute edilmez bile.
Bu özelliği kullanarak önce dizinin boyutunu kontrol edip eğer yeterli uzunluğa sahipse içerisinden okuma yapmak beklenmedik RunTime Exceptionlardan koruyabilir.
Bir diğer yöntem biraz daha tembel davranıp Try-Catch içerisinde almak.
 
if içerisinde array[3]'den önce array.Length >= 4 gibi bir kontrol daha eklemeniz güzel bir önleme yöntemi.
Demek istediğim;
if(array.Length >= 4 && ('if içerisinde olması gereken bölüm'))
AND öperatörü soldan sağa doğru çalışır. Eğer soldaki statement False ise sağdakinin ne olduğu fark etmeksizin sonuç False olacağı için sağ kısım execute edilmez bile.
Bu özelliği kullanarak önce dizinin boyutunu kontrol edip eğer yeterli uzunluğa sahipse içerisinden okuma yapmak beklenmedik RunTime Exceptionlardan koruyabilir.
Bir diğer yöntem biraz daha tembel davranıp Try-Catch içerisinde almak.


Ben bu işlerde yeni olduğum için dediğiniz yöntemleri pek anlayamadım daha açık olabilirmsiniz ?
Acaba bu hatayı alıyor oluşumum sebebi githubdan gist atmam mıdır?
Ek Açıklama 2020-07-04 122058.png
 
Son düzenleme:
Var olmayan bir array indexinden veri çekmeye çalışmışsın çünkü. İlk başta array uzunluğunu kontrol et ki kaç tane eleman bulunduğunu bil, ona göre indexlerden veri çağır.
Çok teşekkürler ben de bu hata ile karşılaştım sonra bunu araştırırken bu forumu gördüm siz böyle deyince düşündüm ve hatamı buldum. Çok teşekkürler.
 

Geri
Yukarı