C# er et typestærkt sprog og det giver et væld af fordele fordi det tvinger dig til at tage stilling til hvad du vil.
Hvis du ser på integer så har du en række muligheder for at gøre alt muligt smart fordi det er en integer.
Du kan spørge om i < 4, eller sige i++ for at tælle den op etc.
Så snart du ændrer dette til en string (med .ToString()) så ændrer du typen til en string og dine muligheder fra integer forsvinder.
Du får så pludseligt en række andre muligheder ved at kunne søge i teksten, se om den indeholder et komma eller punktum, længden på teksten etc.
Når du laver .ToString() så ændrer du typen fra integer som er tal, til ren flad tekst. Det giver dig også en masse fordele fordi du kan formatere som du ønsker, sætte kultur og en masse andet.
Du kan i din .ToString() indsætte parametre om er dette valuta, kommatal, eller andet så du kan få det præsenteret lige som du vil.
Ved at tvinge dig til at du skal lave det til en string tvinges du også til at tænke over formattet og præsentationsformen - for hvordan skal din messagebox vide at din integer er faktisk hvor mange us dollars noget koster og skal skrive 1000.00 i stedet for den danske udgave 1.000,00 (du ville her skulle fortælle at der skal decimal på-fordi integer jo selvfølgelig er heltal)?
Du skal i denne kontekst tænke på at en MessageBox er til Messages (beskeder), så her er det nærliggende at du kun kan indsætte tekst.
Ved at lave din integer om til tekst er det som at tage et øjebliksbillede og fjerne referencen til din integer - så selv hvis du ændrer din integer i et loop lige efter du har vist din messagebox så er det helt afskåret fra at skulle ændre ved din præsentation fordi det er tekst.
Håber det gav lidt ide til hvorfor tingene er som de er og hvorfor det er vigtigt at have denne "feature" i C# og forstå hele det typestærke element
Indlæg senest redigeret d. 31.10.2012 10:58 af Bruger #17215