Gå til innhold

Anbefalte innlegg

ARGH!! Ble skikkelig lurt her av koden min. Vil bare nevne det for dere slik at dere ikke går i samme fella. Utrolig vanskelig å skjønne at det er et problem før man virkelig går over koden step'by'step

 

i sin absolutt enkleste form:

if (verdi1 > verdi2)
 if (verdi1 < verdi3)
    throw new exception("Noe gikk galt");
 return false;
return true;

 

Denne koden vil aldri returnere TRUE!!!

 

Mange vil si "Så klart ikke", inklusivt meg, men jeg gikk rett i den fella i dag og det er utrolig fort gjort å gjøre denne blemma....

 

Såh - bruk alltid krøllparanteser! UANSETT!!!

if (verdi1 > verdi2)
{
 if (verdi1 < verdi3)
 {
   throw new exception("Noe gikk galt");
 }
 return false;
}
return true;

 

Altså - bare et tips til deg som lurer på hvorfor rare ting skjer i IF testene....

Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+56132

Først og fremst; C# bruker krøllparanteser/braces til stort sett all form for markering av funksjoner og alt mulig, så å glemme dem i et språk som er "bygd rundt dem" er bare smått teit. Sorry altså, men jeg synes det blir for dumt å komme med et dummytips som sier at du alltid må huske på {}, det er i grunn helt innlysende fra alle kodeeksempler og tutorials og bøker.

Lenke til kommentar

Det han mener er at det er lett å gå i en felle hvis du sløyfer dem på de områdene der du faktisk kan sløyfe dem (feks der du bare har én linje med kode inne i en if-blokk eller for-loop).

 

if(done)
    return true;

//do something
return false;

 

Jeg for min del elsker å sløyfe dem alle steder jeg kan; auto-indenteringen til VS hjelper meg som regel å holde styr på hva som går innunder hvilken if/for hvis jeg ikke selv klarer det.

Endret av Degeim
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...