c# kodu hata

Giray01

Yeni Doğmuş
En iyi cevaplar
0
Ö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?
En iyi cevaplar
4
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