HDSoftware Skrevet 24. mars 2010 Del Skrevet 24. mars 2010 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
Gjest Slettet+56132 Skrevet 24. mars 2010 Del Skrevet 24. mars 2010 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
Degeim Skrevet 25. mars 2010 Del Skrevet 25. mars 2010 (endret) 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 25. mars 2010 av Degeim Lenke til kommentar
GeirGrusom Skrevet 25. mars 2010 Del Skrevet 25. mars 2010 if a if b return true; else if c break; else if d return false; else if e return false; else if d return true; else return true; Her er det en felle på siste linje. Lenke til kommentar
HDSoftware Skrevet 25. mars 2010 Forfatter Del Skrevet 25. mars 2010 Degeim: Helt korrekt anntatt ;-) Lenke til kommentar
Gjest Slettet+56132 Skrevet 25. mars 2010 Del Skrevet 25. mars 2010 Ah, daså. Misforstå alt altså. Hehe, beklager Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå