23. maj 2015 - 21:52Der er
8 kommentarer og 1 løsning
Har microsoft opgivet out nøgleordet
Hej eksperter.
Jeg mener tit da jeg kiggede igennem MSDN for klasser der læser igennem IO namespacet, at de har været ret gode til og bruge "out" keywordet, især til det byte array, som giver de data man spørger efter.
int size = Read(int buffersize, out byte[] buffer)
Men jeg har på det seneste set det mindre og mindre, især på MSDN siden, jeg ved ikke om det bare er mig der husker forkert, eller er dette keyword ved og blive faset ud? det har jo altid været lidt af et redundant stykke værktøj, så ville ikke undre mig, hvis det skete.
Jeg er ret sikker paa at MS ikke aendrer eksisterende metoder, da det ville faa eksistende kode til at fejle ved opdatering af .NET.
Generelt er out parametre lidt suspekte, da det kan vaere svaert at gennemskue hvor en ny vaerdi kommer fra.
Jeg fortsaar ikke den Read du viser. Du behoever ikke out paa det byte array for at fylde data i. Du behoever kun out paa det byte array, hvis Read skal lave et helt nyt array.
du har sikkert ret, for der er de ret glade for at bruge out, kan dog ikke se grunden til det er brugt i trypharse, da jeg vil mene at feltet stadig vil blive korrekt angivet som en referece. :)
det er at du skal kunne tjekke på om det var muligt at parse værdien korrekt.
Det kunne så sætte i til int.MinValue f.eks hvis det fejler, men så skal du stadig til at tjekke på din værdi efterfølgende om den blev parsed korrekt.
Det slipper du for med .TryParse i sin nuværende form, som du kan smide direkte ind i en if condition:)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.