c# kodu hata

Giray01

Yeni Doğmuş
Mesajlar
1
En iyi cevaplar
0
Beğeniler
0
Puanları
10
Öncelikle merhaba ben bilgi yarışması oyunu yapıyorum 2 tane kod yazdım önce hatayı sonra kodları aşağıda görebilirsiniz
hatanın sebebi nedir acaba ne yapmam lazım ?
şimdiden çok teşekkür ederim.
HATA:
Adsız.png

KODLAR:
a.png
b.png
 


mahmud118

Are you?
Mesajlar
618
En iyi cevaplar
4
Beğeniler
278
Puanları
1,320
Ruh hali
Biraz geç olacak sanırım ve muhtemelen sorununu çözdün ancak yine de yazayım. Burada yaşanan sorun lifecycle problemi gibi duruyor. Array'in içi doldurulmadan, içinden veri çekmeye çalışıyorsun. `OutOfRange` tipi exceptionlar bir listenin limitini aştığın zaman ortaya çıkarlar.
En hızlı çözüm, Array'in içini static bir fonksiyonda tanımlaman olacaktır. Şu kod parçasını çağırmadan önce fonksiyonu çağırman yeterli olacaktır.
Kod:
GenelDizi.arryList1[dice]
Kanaatimce doğru çözüm; Dizileri veya soruları ayrı bir class'ta tanımlayıp, bu class'ı Singleton(static Instance, private constructor) hale getirmen. Bu şekilde hem kod temiz olacaktır, hem de Unity'nin lifecycle'ının önüne geçip ClassLoader class'ları yüklerken class'ın yüklenecektir. Class yüklendiği zaman, kullanım talep edildiğinde içinde her şey, her zaman hazır olacaktır.

Edit: Örnek olarak
C#:
public class Yarisma {

    public static Yarisma Instance = new Yarisma();

    public ArrayList sorular { get; private set; }

    private Yarisma() {
        sorular = new ArrayList();
        defineSorular();
    }
 
    private void defineSorular() {
        sorular.Add("soru1");
        sorular.Add("soru2");
        sorular.Add("soru3");
            .
            .
            .
    }
}

Kullanımı (Kodun herhangi bir yerinde):
C#:
string s = Yarisma.Instance.sorular[0]
Console.WriteLine(s);

Output: soru1

Yazım hatası ya da syntax hatası olabilir. Forum üzerindeki editör ile yazdım.
 
Son düzenleme:

Üst