Как преобразовать TryCast в c#?

как преобразовать после кода vb в к c#

Dim request As HttpWebRequest = TryCast(WebRequest.Create(address), HttpWebRequest)

я попробовал его с помощью оператора AS в c#, но не работа.

Заранее спасибо.

28
задан Oded 28 July 2010 в 07:31
поделиться

3 ответа

Вы можете использовать как ; это не вызовет никаких исключений, но вернет null , если приведение невозможно (как и TryCast ):

HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
61
ответ дан 28 November 2019 в 02:41
поделиться

Просто введите его:

HttpRequest request = (HttpRequest)WebRequest.Create(address);

Это вызовет исключение, если приведение не будет успешным.

Оператор as вернет нуль, если приведение не было успешным:

HttpRequest request = WebRequest.Create(address) as HttpRequest;
// if cast failed, request == null

Таким образом, это было бы ближе к TryCast .

3
ответ дан 28 November 2019 в 02:41
поделиться

The as оператор фактически является эквивалентом 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 . Если при сбое преобразования нет ничего полезного, тогда нет необходимости в защитном преобразовании переменной. Если вас не интересует используемый протокол, тогда ваша переменная запроса должна иметь тип WebRequest (но вы теряете возможность проверять коды состояния HTTP).

Чтобы завершить представление о приведении типов и проверке типов в C #, вы можете также прочитать об операторе is .

9
ответ дан 28 November 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: