WebRequest.Create всегда должен вызывать HttpWebRequest при вызове с помощью конкретной схемы URI. Если нет ничего полезного в том, что происходит при отказе, тогда нет необходимости защищать эту переменную. Если вам не нужен используемый протокол, ваша переменная request должна иметь тип WebRequest (но вы теряете возможность проверки кодов состояния HTTP).
Чтобы завершить изображение о проверках и проверке типов в С#, вы можете прочитать на is operator.