如何在c#中转换TryCast?
如何将以下vb代码转换为c#
Dim request As HttpWebRequest = TryCast(WebRequest.Create(address), HttpWebRequest)
我在c#中使用AS运算符尝试了它,但它不起作用。
先感谢您。
你可以使用as
; 这不会抛出任何exception,但如果无法进行TryCast
则返回null
(就像TryCast
一样):
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
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);
当使用特定的URI方案调用时, WebRequest.Create
应始终生成HttpWebRequest。 如果在施法失败时没有任何有用的事情,那么就没有必要防御性地施放变量。 如果您不关心使用的协议,那么您的request
变量应该是WebRequest
类型(但是您无法检查HTTP状态代码)。
要在C#中完成有关强制转换和类型检查的图片,您可能还需要阅读is
运算符 。
简单地投下它:
HttpRequest request = (HttpRequest)WebRequest.Create(address);
如果演员表不成功,这将抛出exception。
如果转换不成功, as
运算符将返回null:
HttpRequest request = WebRequest.Create(address) as HttpRequest; // if cast failed, request == null
所以,这将更接近TryCast
。
绝对是您正在寻找的运营商。 你遇到了什么错误?