【问题标题】:Why do you DirectCast the HttpWebRequest in VB.NET?为什么在 VB.NET 中 DirectCast HttpWebRequest?
【发布时间】:2014-04-11 19:51:19
【问题描述】:

在对httpwebrequest使用POST方法的时候,经常看到这样一行代码:

Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("https://www.empireavenue.com/user/login/do"), HttpWebRequest)

我们为什么要在这里进行 DirectCast?它到底在做什么?

编辑:或者我的问题是,为什么我们调用 WebRequest.Create 并将其转换为 HttpWebRequest?从技术上讲,这里发生了什么?

【问题讨论】:

    标签: vb.net directcast


    【解决方案1】:

    WebRequest.Create 是一个工厂方法,可以返回不同类型的请求。因此,所有这些都返回类型为WebRequest。但是因为您可能知道,您希望它返回 HttpWebRequest(因为您提供的 Uri 是 http),您可以向下转换它以访问 HttpWebRequest 公开的方法和属性,@ 未公开这些方法和属性987654325@基类。

    但是,如果您知道要使用 http 协议,您应该使用 WebRequest.CreateHttp() 而不是 WebRequest.Create()

    【讨论】:

      【解决方案2】:

      因为HttpWebRequest 实现了WebRequest 而WebRequest.Create() 返回了一个WebRequest 对象。

      【讨论】:

      猜你喜欢
      • 2011-03-04
      • 2011-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多