我正在学习C#,并且是一个初学者.我想请求一个硬件项目的URL(控制窗帘的raspberry pi服务器),它可以工作,但是我不明白下面的这一行:
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(rpiIp.text);
我不明白“(HttpWebRequest)”位是什么意思,以及它如何影响“ WebRequest.Create();”.方法.
有人可以解释吗?
非常感谢
詹姆士
解决方法:
它称为显式演员表.从MSDN开始:
Explicit conversions (casts): Explicit conversions require a cast operator. Casting is required when information might be lost in the conversion, or when the conversion might not succeed for other reasons. Typical examples include numeric conversion to a type that has less precision or a smaller range, and conversion of a base-class instance to a derived class
WebRequest.Create方法返回一个类型为WebRequest的对象,该对象是一个抽象类,这意味着它的实例无法创建,只能从WebRequest继承的基础派生类型.在这种情况下,强制转换的作用是告诉编译器:“听着,我知道Create实际上从该方法返回了HttpWebRequest
,所以让我像对待它一样对待”.转换完成后,如果实际类型为HttpWebRequest,它将成功;如果不是,则抛出InvalidCastException
.