C# ta tanımladığım sınıf ta aldığım hata??

Kodla Büyü

spider23

Süper Üye
Süper Üye
Mesajlar
1,995
class tumtahminler
{
public static int[,] dizi;

public static int kolonsayisi;

static tumtahminler()
{ dizi = new int[kolonsayisi, 6];
}

public static void hepsinikaydet(int[] tahmin, int kolonnumarasi)
{

for (int k = 0; k < 6; k++)
{
dizi[kolonnumarasi, k] = tahmin[k];
}


}

}

Belirttiğim kısımda "Dizin, dizi sınırlarının dışındaydı." hatası alıyorum.. Çıkamadım işin içinden; dizi = new int[kolonsayisi, 6]; kodlamayı hata alan yerin üzerinde yapınca ise hata almıyorum ama;her seferinde dizi de yeralan değerler sıfırlanıyor;bu sınıfı kullanarak ;değerleri sıfırlatmadan nasıl yapabilirim..
 
kolonsayisi değişkenine varsayılan 1 atasanız işe yarar mı acaba? C# deneyimim pek yok sadece tahmin yürütüyorum. :)
 
int[,] yapısı çok boyutlu dizi oluşturmak için mi? Yanlış hatırlamıyorsam çok boyutlu dizilerde [][] gibi tekrar kullanım oluyordu. [,] bu kullanımı daha önce görmemiştim.
 
sanırım diziye bir boyut tanımlamadığın için sorun oluşyor kolonsayısı değişkenine bir değer ataması yapın
 
Sınıfı Aşağıdaki gibi tanımlayıp;

Kod:
class tumtahminler
    {
        public int[,] dizi;
        public int kolonsayisi;

        public tumtahminler(int kolonsayisi)
        {
            this.kolonsayisi = kolonsayisi;
            this.dizi = new int[kolonsayisi, 6];
        }

        public void hepsinikaydet(int[] tahmin, int kolonnumarasi)
        {
            for (int k = 0; k < 6; k++)
            {
                this.dizi[kolonnumarasi, k] = tahmin[k];
            }
        }

    }

sonra bu şekilde kullanabilirsiniz:

Kod:
            tumtahminler tt = new tumtahminler(5);

            int[] tahmin = new int[] {1, 2, 3, 4, 5, 6};
            int[] tahmin2 = new int[] {6, 5, 4, 3, 2, 1};

            tt.hepsinikaydet(tahmin, 3);
            tt.hepsinikaydet(tahmin2, 4);

            for (int i = 0; i < tt.kolonsayisi; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    Console.Write(tt.dizi[i,j]);
                }
            }

            Console.Read();
 
psia hocam; öncelikle öneriniz ve vakit ayırıp kodlama yaptığınız için çok teşekkür ederim..
Ben tam olarak yapmak istediğimi açıklayayım 2 adet formum var;
1. form içerisinde sayısal loto kolonlarını oynatıyorum otomatik veya elle giriliyor; ve oynanan tüm bu kolonları 2 boyutlu bir dizide saklayıp;
2. formdan da bu dizi de ki değerlere erişmek istiyorum çünkü 2. formda da kazanan numaralar belli olacak ve 1. formda oynanan kolonların hepsi kazanan numaralar içerisinde aranacak...kazanan numaraların tutulduğu-tutulacağı 2 boyutlu diziyi form 1 de değişken olarak tanımlarsam olmuyor; FORM2 den form1 de ki bu değişkene erişilmiyor-yada ben erişemiyorum..bende bunun sınıfla yapmak istedim; yani bir tane 2 boyutlu dizi tanımlayıp; bu diziye ana programdan değerler yollandıkça dizi de kayıtlı tutulsun istedim...
 
omd' Alıntı:
int[,] yapısı çok boyutlu dizi oluşturmak için mi? Yanlış hatırlamıyorsam çok boyutlu dizilerde [][] gibi tekrar kullanım oluyordu. [,] bu kullanımı daha önce görmemiştim.
evet hocam 2 boyutlu dizi..yok hocam kolon sayısı 1 denedim değişen bişey yok..
 
Form 1 de tanımlarken
Kod:
 public static tumtahminler tt = new tumtahminler(5);

Form2 de kullanırken
Kod:
var aa = Form1.tt;

tabii bu arda tumtahminler sınıfı da public olarak tanımlanmalı.
 
psia' Alıntı:
Form 1 de tanımlarken
Kod:
 public static tumtahminler tt = new tumtahminler(5);

Form2 de kullanırken
Kod:
var aa = Form1.tt;

tabii bu arda tumtahminler sınıfı da public olarak tanımlanmalı.

teşekkürler hocam!! :+1:
 
BBNET
Geri
Üst