Забавная штука часто встречается в недрах кода.
A a = (A)GetObject();
if (a != null) {
}
Если GetObject вернет НЕ тип A то будет вам исключение в подарок, и что бы не попасть в просак без обработчика исключений лучше использовать as.
A a = GetObject() as A;
if (a != null) {
}
В любом случае код будет работать одинаково при возвращении null из GetObject