实现接口的通用基类

时间:2012-05-04 14:04:38

标签: c# asp.net generics

如何在asp.net webforms项目中声明我的Basepage类以实现IBasePage?

public abstract class BasePage<T> : Page where T : class
{

}

和界面

public interface IBasePage
    {
        UserProfile UserProfile { get;}
        bool IsStreamingAdmin {get;}
        int? EmplId {get;}       
    }

我的最终目标是能够像这样编写代码:

IBasePage page = HttpContext.Current.Handler as IBasePage;
if (page.IsStreamingAdmin)
{
    //do something here....
}

2 个答案:

答案 0 :(得分:7)

我的问题并不完全清楚,但你不能这样做:

public abstract class BasePage<T> : Page, IBasePage where T : class { }

答案 1 :(得分:0)

public abstract class BasePage<T> : Page, IBasePage where T : class { }

如果你的类实现了interface中定义的所有方法,你的代码就可以编译,你就可以调用抽象类的instance

调用page.IsStreamingAdmin将返回您拥有实例的类的值。