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);
}
}