Användandet av var är smidigt när man t.ex. inte orkar skriva:
Dock ser man fall där användandet av var enligt min mening missbrukas.
Jag hävdar att var endast behöver användas i följande fall:
- Där typnamnet är extremt långt och det är uppenbart vad det är (likt det första exemplet)
- När man skapar upp en ny klass
- När man med hjälp av generics hämtar upp en instans av en klass (och typen man hämtar är samma som typen man använder i metodanropet t.ex. IoC.Resolve<Type>)
Nedan visas ett exempel på hur det kan se ut i många C# lösningar, att var används överallt.
Tittar man på koden nedan, tar det ett tag att få en ungefärlig känsla över vad variablerna är.
- Vad är orders för något?
- Vad är id i foreach loopen?
Man kan också se det såhär:
id är ett orderid i foreach-loopen och jag bryr mig inte om den exakta typen.
Och detta räcker ju långt egentligen. Fast i många fall hade jag nog hellre skrivit den fullständiga typen:
Dock finns det tillfällen då strong types inte kan användas. Hade koden ovan skrivits som ett LINQ-query expression där man returnerat en anonym typ, fungerar ingenting annat än var (eller dynamic).
Mer information och diskussion om användandet av var
http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp
http://www.infoq.com/news/2008/05/CSharp-var
http://beyondrelational.com/modules/2/blogs/79/posts/11536/when-to-use-var-keyword-in-c.aspx
/Nils
Inga kommentarer:
Skicka en kommentar