如何将以下vb代码转换为c#
Dim request As HttpWebRequest = TryCast(WebRequest.Create(address), HttpWebRequest)
Run Code Online (Sandbox Code Playgroud)
我在c#中使用AS运算符尝试了它,但它不起作用.
先感谢您.
Fre*_*örk 61
你可以使用as; 这不会抛出任何异常,但null如果无法进行强制转换则返回(就像TryCast):
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
Run Code Online (Sandbox Code Playgroud)
该as运营商实际上是在C#相当于:
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
Debug.Assert(request != null); // request will be null if the cast fails
Run Code Online (Sandbox Code Playgroud)
但是,定期演员可能更可取:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
Run Code Online (Sandbox Code Playgroud)
WebRequest.Create在使用特定URI方案调用时,应始终生成HttpWebRequest.如果在施法失败时没有任何有用的事情,那么就没有必要防御性地施放变量.如果您不关心使用的协议,那么您的request变量应该是类型WebRequest(但是您无法检查HTTP状态代码).
要在C#中完成关于强制转换和类型检查的图片,您可能还想要了解is运算符.
简单地投射它:
HttpRequest request = (HttpRequest)WebRequest.Create(address);
Run Code Online (Sandbox Code Playgroud)
如果转换不成功,这将引发异常。
as如果转换不成功,运算符将返回 null:
HttpRequest request = WebRequest.Create(address) as HttpRequest;
// if cast failed, request == null
Run Code Online (Sandbox Code Playgroud)
因此,这将更接近于TryCast.
| 归档时间: |
|
| 查看次数: |
49441 次 |
| 最近记录: |