实现接口的泛型基类

本文关键字:基类 泛型 接口 实现 | 更新日期: 2023-09-27 18:33:07

如何在 asp.net 网络表单项目中声明我的 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....
}

实现接口的泛型基类

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

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

如果您的类实现了代码能够编译的interface中定义的所有方法,您将能够调用抽象类的instance

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