as
operator является фактически C# эквивалент:
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
Debug.Assert(request != null); // request will be null if the cast fails
Однако регулярный бросок вероятно, предпочтительнее:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
WebRequest.Create
всегда должно привести к HttpWebRequest при вызове с конкретной схемой URI. Если нет ничего полезного в том, что происходит при отказе, тогда нет необходимости защищать эту переменную. Если вам не нужен используемый протокол, то ваша переменная request
должна иметь тип WebRequest
(но вы теряете возможность проверки кодов состояния HTTP).
Чтобы заполнить рисунок о проверках и проверке типов на C#, вы можете прочитать на is
operator.
Когда вы говорите, что это не работает, что вы имеете в виду? Вы получаете сообщение об ошибке? Не удается скомпилировать? Возвращает null? Вы можете уточнить? – spinon