Toate acestea se aplică tipurilor de referință, tipurile de valori nu pot utiliza cuvântul cheie ca
deoarece nu pot fi nul.
//if I know that SomeObject is an instance of SomeClass
SomeClass sc = (SomeClass) someObject;
//if SomeObject *might* be SomeClass
SomeClass sc2 = someObject as SomeClass;
Sintaxa exprimată este mai rapidă, dar numai atunci când este reușită, este mult mai lent să eșuezi.
Cea mai bună practică este să utilizați ca
atunci când nu cunoașteți tipul:
//we need to know what someObject is
SomeClass sc;
SomeOtherClass soc;
//use as to find the right type
if( ( sc = someObject as SomeClass ) != null )
{
//do something with sc
}
else if ( ( soc = someObject as SomeOtherClass ) != null )
{
//do something with soc
}
Cu toate acestea, dacă sunteți absolut sigur că someObject
este o instanță a SomeClass
atunci utilizați distribuția.
În genericul .Net 2 sau superior, înseamnă că, foarte rar, trebuie să aveți o instanță nespecificată a unei clase de referință, deci aceasta din urmă este mai puțin folosită.