as-keyword

Are there compelling reasons AGAINST using the C# keyword "as"?

I find that using the following: TreeViewItem i = sender as TreeViewItem; if(i != null){ ... } is easier to write and understand than: if(sender.GetType() == typeof(TreeViewItem)){ TreeViewItem i = (TreeViewItem)sender; ... } Are there compelling reasons not to use the first construct? ...

Object initializations are lost through use of "as" keyword

I am using a derived class and casting the base class to it using the as keyword. When I do this, the derived class constructor is being called, and it's objects initialized, but the derived instance does not end up with the initialized objects (has nulls). Here's a code sample. // classes public class Request { public Request(); pu...