HDSoftware Skrevet 24. mars 2010 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....
Gjest Slettet+56132 Skrevet 24. mars 2010 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.
Degeim Skrevet 25. mars 2010 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
GeirGrusom Skrevet 25. mars 2010 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.
Gjest Slettet+56132 Skrevet 25. mars 2010 Skrevet 25. mars 2010 Ah, daså. Misforstå alt altså. Hehe, beklager
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å