is, as, != null
Po diskuzi v postu if, else, return jsem si uvědomil, že mám v kapse ještě jeden případ, který je podobně sporný-zajímavý. Tyto dvě konstrukce vídávám a opět v zásadě stejné – nebo ne?
Foo x = (y as Foo);
if (x != null)
{
x...
}
else
{
// <error>
}
resp. (samozřejmě můžeme i přiřadit do x
)
if (y is Foo)
{
(y as Foo)...
}
else
{
// <error>
}
Osobně používam druhý způsob, opět spíše pocitově něž pro nějaký fakt (myslím, že z toho is
je výsledek mého snažení lépe čitelný). A co vy? Případně máte nějaký argument proč používat jedno nebo druhé?