C# hiba

C# hiba
2018-11-29T14:52:34+01:00
2018-11-29T18:14:37+01:00
2022-08-11T08:35:30+02:00
Gergő Németh
Sziasztok. Van egy programom ami eddig tökéletesen futott, azonban elütöttem valamit és azóta rámentettem, azóta pedig "System.NullReferenceException: 'Object reference not set to an instance of an object." hibát írt, t-t nullának veszi csak nem jövök rá miért. Ha valaki esetleg megtalálja mit rontottam el nagyon megköszönném,mert én már teljesen elvesztem. (a kódban a j és i direkt lett felcserélve a programban, a j-nek kéne a GetLenght(0)-t és i-nek a GetLenght(1)-t.Illetve a Communication osztályt és a Maint azért nem másoltam be mert ott semmi érdemleges nem történik a kiíratáson kívül. 

public class Tabla { public Korong[,] jatekter { get; set; } public Tabla() { jatekter = new Korong[7, 6]; for (int j = 0; j < jatekter.GetLength(0); j++) { for (int i = 0; i < jatekter.GetLength(1); i++) { jatekter[j,i] = new Korong(Szin.nincs); } } } } public class Korong { public Szin szin { get; set; } public Korong(Szin szin) { this.szin = szin; } public override string ToString() { if (szin == Szin.nincs) { Console.BackgroundColor = ConsoleColor.Blue; return " "; } else if (szin == Szin.sárga) { Console.BackgroundColor = ConsoleColor.Yellow; return " "; } else { Console.BackgroundColor = ConsoleColor.Red; return " "; } } } public enum Szin { sárga, piros, nincs };




class Játékmenet { public bool jatekos { get; set; }//false - piros public static Tabla t { get; set; } public void JatekKorok() { { int mod = 0; Console.Clear(); Console.WriteLine("Szeretné folytatni az előző játékot?"); Console.WriteLine("1.Igen" + "\t" + "2.Nem,új játékot kezdek"); mod = int.Parse(Console.ReadLine()); do { Communinaction.Megjelenit(t); if (jatekos) { Console.ForegroundColor = ConsoleColor.Yellow; } else { Console.ForegroundColor = ConsoleColor.Red; } Console.Write("Adj egy oszlopszámot: "); Console.ResetColor(); int a = -1; try { a = int.Parse(Console.ReadLine()); } catch (Exception) { } if (a < t.jatekter.GetLength(0) + 1 && a >= 1) { Letesz(a - 1); FileHandler.WriteOutputFile(t); } } while (true); } } public int[] Letesz(int oszlopszam) { bool mod = valasztJatekos(t); int i = 0; int[] k = new int[2]; while (i < t.jatekter.GetLength(1) && t.jatekter[oszlopszam, i].szin == Szin.nincs) { i++; } if (i != 0) { k[0] = oszlopszam; k[1] = i; if (jatekos) { t.jatekter[oszlopszam, i - 1] = new Korong(Szin.sárga); jatekos = !jatekos; } else { t.jatekter[oszlopszam, i - 1] = new Korong(Szin.piros); jatekos = !jatekos; } } return k; } public bool valasztJatekos(Tabla t) { int piros = 0; int sarga = 0; bool valaszt = false; for (int i = 0; i < t.jatekter.GetLength(1); i++) { for (int j = 0; j < t.jatekter.GetLength(0); j++) { if (t.jatekter[j, i].szin == Szin.piros) { piros++; } else if (t.jatekter[j, i].szin == Szin.sárga) { sarga++; } } } if (sarga == piros) { valaszt = true; } return valaszt; } }
Mutasd a teljes hozzászólást!
Én nem látom, hogy hol hozod létre a Tabla egyedet.
Látok egy

Table t;
változó deklarációt, de nem látok egy

t = new Tabla();
utasítást.
Mutasd a teljes hozzászólást!

abcd