Подтвердить что ты не робот

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

как преобразовать следующий код vb в С#

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

Я попытался использовать оператор AS в С#, но не работал.

Спасибо заранее.

4b9b3361

Ответ 1

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

HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;

Ответ 2

Оператор as фактически является эквивалентом С#:

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).

Чтобы завершить изображение о проверках и проверке типов в С#, вы можете прочитать на is operator.

Ответ 3

Просто добавьте его:

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

Это приведет к исключению, если приведение не выполнено.

Оператор as вернет null, если приведение не выполнено:

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

Итак, это будет ближе к TryCast.

Ответ 4

as - это, безусловно, тот оператор, которого вы ищете. Какая ошибка вы получаете?