Ja, pjat med om det virker, bare det ser pænt ud?
Hvem er "mange"? Og hvorfor ikke anbefale det hvis det fanger fejl?
Fordi i C# gælder det som sagt kun på booleans og det er sjældent at man overhovedet vil kunne skrive kode der vil lave disse fejl da det skal være i stilen if(b == true)... og dette kan skrives ned til blot if(b)...
Jeg kan desværre på stående fod ikke lige nu komme med konkrete links til disse "mange" men lad os bare lade det ligge ved at jeg ikke kan huske hvornår jeg sidst har set noget .Net kode med denne slags "sikkerhedsnet for begynder fejl". Hvis jeg skulle læse igennem kode skrevet på den måde ville jeg skulle bruge længere tid på at få det læst og forstået fordi det i mit hoved logisk set er helt vendt på hovedet. I stedet for at læse hvad det er man tester for lighed så læser man nu værdien man sammenligner med først og det er sjældent at det er behjælpeligt i at læse og forstå koden.
Det er i min verden et lævn udviklere har taget med sig fra C, C++ og nogle endda PHP. Jeg har aldrig brugt dette og det var kun i de meget spæde dage da jeg programmerede at jeg kom tæt på at lave disse fejl. Jeg mener det er bedre at forstå forskellen på = og == og herefter være klar over hvad det er man laver. At forstå forskellen giver også et meget bedre indblik i hvad det er man laver og så bliver man OBS på det helt automatisk. Men som sagt i C# er dette fuldstændig unødvendigt da det kun er booleans som kan evaluere til booleans. Jeg ser det som vigtigt at man ved hvad man laver og at man ikke forsøger at lave disse underlige ting for at forebygge fejl - det svarer lidt til at man hurtigt lærer at man gerne må sætte for mange semikolonner og man derfor begynder at gøre det på sindsyg vis, og så kan man ende med kode som følger:
if(true);
{
//Gør noget her
}
Dette er en fejl som kan være ekstrem svær at finde frem til, og jeg har set den blandt flere begyndere. Dette er selvfølgelig indtil de finder ud af hvad semi-kolonnet's betydning faktisk er og herefter mindskes disse fejl betydeligt.
Indlæg senest redigeret d. 12.11.2009 13:22 af Bruger #714