2010. június 17., csütörtök

var kulcsszó és hibái

CC-nél erősen tíltott a var kulcsszó használata c#-ban. Bár leírás szerint erősen típusos deklarációról van szó, bár technikailag igaz, de olvashatatlanná teszi a kódot, mert nem látod a definiált típusát a változónak. Már ezért magában tiltott, de ami igazán veszélyessé teszi, az például a foreach.
Ha van egy olyan logikád, ahol eredetileg Dictionary a deklaráció, majd bonyolultabb kód miatt átadod IDictionary interface-en keresztül a referenciát, majd deklarálod a következő sort:
foreach(var item in [eredetileg Dictionary típusú változó])
akkor döbbenten fogod tapasztalni, hogy NEM KeyValuePair lesz az item típusa, hanem DictionaryEntry.
Viszont mivel foreach runtime oldja fel, ezért az explicit deklarált KeyValuePair működni fog és megfelelő lesz a típus.

1 megjegyzés: