C# 如何从继承中访问对象

C# 如何从继承中访问对象,c#,asp.net,visual-studio,inheritance,C#,Asp.net,Visual Studio,Inheritance,您好,我想从项目中的继承访问对象,但找不到方法 我的页面是 public partial class siteler_page : siteDynamic { public static string pageType = "contentpage"; protected void Page_Load(object sender, EventArgs e) { } } 主要的班级是,;(我想访问onpreinit中的pageType参数) 感谢您的帮助,一种方法

您好,我想从项目中的继承访问对象,但找不到方法 我的页面是

public partial class siteler_page : siteDynamic
{
    public static string pageType = "contentpage";
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}
主要的班级是,;(我想访问onpreinit中的pageType参数)


感谢您的帮助,一种方法是定义一个抽象属性并让子类覆盖它(
siteDynamic
应该是一个
abstract
类):


这将不起作用,因为父类siteDynamic在子类siteler_页面之前先被称为已初始化。至少你是这样设置的。为了使该设置有效,父类应该在父类中有一个属性,然后重写基类方法并在那里设置值

public abstract class siteDynamic : System.Web.UI.Page
{
    public string PageType { get; set; }

 protected override void OnPreInit(EventArgs e)
 {
     base.OnPreInit(e);
 }
}

public partial class siteler_page : siteDynamic
{

protected void Page_Load(object sender, EventArgs e)
{
}

protected override void OnPreInit(EventArgs e)
{
    base.PageType = "contentpage";
    base.OnPreInit(e);
}
}

thx,我尝试了你的建议,但它给出了错误'siteDynamic.PageType.get'是抽象的,但它包含在非抽象类'siteDynamic'中@slayer35更新了我的答案。您的父类应该是
abstract
来定义
abstract
成员。您可以看到Matias的解决方案对我来说非常有效,谢谢
public abstract class siteDynamic : System.Web.UI.Page
{
     public siteDynamic()
     {
        // ...
     }

     public abstract string PageType { get; }

     protected override void OnPreInit(EventArgs e)
     {
           string type = this.PageType;

           // ...

           base.OnPreInit(e);
     }
}

public partial class siteler_page : siteDynamic
{
     public override string PageType
     {
          get
          {
               return "contentpage";
          }
     }

     protected void Page_Load(object sender, EventArgs e)
     {
          // ...
     }
}
public abstract class siteDynamic : System.Web.UI.Page
{
    public string PageType { get; set; }

 protected override void OnPreInit(EventArgs e)
 {
     base.OnPreInit(e);
 }
}

public partial class siteler_page : siteDynamic
{

protected void Page_Load(object sender, EventArgs e)
{
}

protected override void OnPreInit(EventArgs e)
{
    base.PageType = "contentpage";
    base.OnPreInit(e);
}
}