Napisano: 16 Feb 2016 11:27
Očigledno nije sve tačno čim se baca Exception.
Elem, sve funkcije (look_for_open_space, look_for_corner i look_for_win_or_block) ti pod određenim okolnostima vraćaju null. Dakle, sasvim je logično da postoji mogućnost za pojavu NullReferenceException-a. Imaš dve moguće solucije, ili ćeš da osmisliš tehniku tako da ne vraćaš null, nego da recimo vraćaš neki Button sa nekim konkretnim tekstom, a koji će na formi biti sakriven i čiju ćeš vrednost proveravati u performClick() funkciji, ili ćeš da ubaciš try+catch blokove i hendlovaćeš Exception-e. Druga solucija je naravno bolja.
Svakako, ukoliko misliš da bi sve trebalo da radi, predlog je da najpre dibaguješ aplikaciju i utvrdiš tačno gde je problem.
Dopuna: 16 Feb 2016 11:32
Sledeći savet: Nikad, ali nikad nemoj da programiraš ovako:
try
{
foreach (Control c in Controls)
{
Button b = (Button)c;
b.Enabled = false;
}//end foreach
}//end try
catch { } Ovakvo hendlovanje izuzetaka je veoma pogrešno. Prividno se čini da aplikacija radi, a u pozadini se dešava ko zna šta. Mnogo je bolje i da ti aplikacija pukne, ali tako da znaš gde je pukla i da to ispraviš, a ne da izgleda kao da je sve u redu, a ponašanje je u pozadini ko zna kakvo. U redu je, u citiranom isečku koda ti neko specijalno hendlovanje izuzetka i nije neophodno, ali bolje odmah da pomenem nego da se naučiš da radiš tako.
|