[c#] Direct casting vs 'as' operator?