C# error: PerformClick();

C# error: PerformClick();

offline
  • Pridružio: 07 Dec 2015
  • Poruke: 14

Neznam kako da resim ovaj problem: postimg.org/image/cgsv0hjgh/



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 15 Maj 2009
  • Poruke: 963

Ne bi bilo lose da postavis i kod.
Izgleda da je problem sto je move i dalje na null kada pozivas performClick.

Uporedi, mozda si nesto promasio: http://pastebin.com/ZwGeLQqi



offline
  • Pridružio: 07 Dec 2015
  • Poruke: 14

Pregledao sam kod sve je tacno. Mogu da odigram 2 igre sa kompjuterom pre nego mi izbaci taj problem.
Ovde se nalazi ceo kod: codeshare.io/0SXjT

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

Napisano: 16 Feb 2016 11:27

Očigledno nije sve tačno čim se baca Exception. Wink

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.

offline
  • Pridružio: 07 Dec 2015
  • Poruke: 14

Hvala na savetima. Smile
Ja sam jos pocetnik u ovome, jel bi mogao ti da mi uradis kako ti mislis da treba sa try+catch funkcijama?

Hvala u svakom slucaju. Smile


Stavio sam sad try+catch funkciju na performClick, i sad mi funcionise lepo Smile
 try             {                 move.PerformClick();             }             catch { }

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14809
  • Gde živiš: Niš

I opet si uradio onako kako sam ti savetovao da ne radiš. Bravo! Very Happy

Ko je trenutno na forumu
 

Ukupno su 780 korisnika na forumu :: 2 registrovanih, 1 sakriven i 777 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Bokiboks, Milos82