假设我有一个System.Web.IHttpHandler
,其基类为ASP.login_aspx
,其基类为MyCMS.Admin.Login
,其基类为...等...一直回到{{1}当然,System.Web.UI.Page
。
为什么在访问该类型及以下成员之前,我必须将IHttpHandler强制转换为object
?
示例:
MyCMS.Admin.Login
为了清楚起见,我不期待那个结果。可见应该工作,我只是想知道它为什么没有。
答案 0 :(得分:3)
Visible
不是IHttpHandler
的成员,因此您不应期望能够在此类变量上调用它。我相信,它是Page
的成员,Control
。
当您将变量强制转换为对象类的基类型/接口之一时,您只能调用变量类型的成员(或基类/ 类型的接口。)
答案 1 :(得分:1)
IHttpHandler界面就是那个界面。它不知道Visible
成员,因为任何类都可以实现此接口。你最终做的是投射到一个继承Visible
成员的类的对象。