[英]How can I access members of a derived class's base class through the Immediate window in Visual Studio?
[英]Why can I not access members of the base class without casting?
假設我有一個System.Web.IHttpHandler
其基類是ASP.login_aspx
其基類是MyCMS.Admin.Login
其基類是......等等...一直回到System.Web.UI.Page
和object
。
為什么我必須MyCMS.Admin.Login
IHttpHandler轉換為MyCMS.Admin.Login
才能訪問該類型及以下的成員?
例:
IHttpHandler result = base.GetHandler(context, requestType, virtualPath, path);
bool isVisible = result.Visible;//Does not work
bool isVisible = ((MyCMS.Admin.Login)(result)).Visible;//Works
//Noting that Visible is a member of System.Web.UI.Page
為了清楚起見,我不期待那個結果。可見的應該工作,我只是想知道它為什么沒有。
Visible
不是IHttpHandler
的成員,所以你不應該期望能夠在這樣的變量上調用它。 我相信它是Page
的成員,通過Control
方式。
當你施放一個變量以基本類型的一個/該對象的類的接口,可以只調用成員是在可變 (或基類該類型/接口)的類型。
IHttpHandler接口只是一個接口。 它不了解Visible
成員,因為任何類都可以實現此接口。 你最終做的是轉換為繼承Visible
成員的類的對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.