is and as...

A dev at Microsoft working on a
large managed code base just suggested this guideline… Our perf team buys it as
well.. />

is should only be used when it's
only necessary to test the type of some object. If you're going to use the
object if the is condition succeeds, use as instead. This prevents
two cast operations which can be expensive. For
instance:

Good:

 

         
Foo foo = obj as Foo; //only
cast
if (foo !=
null)

         
{

                   
// use Foo

         
}

Bad:

 

         
if (obj is Foo) // cast
1

{

Foo foo = (Foo)obj; //cast
2

// use foo…

}