从基类访问子类变量

时间:2013-02-01 14:03:20

标签: c# asp.net .net oop inheritance

class a : System.UI.Page {
int ab= c;
}
class b : a
{
public int c= 0;
}

我无法访问它。我可以通过asp.net中的Control.NamingContainer属性访问页面上的任何控件但是我必须从类(即类a)中访问公共变量(即类b)所以我没有在我的表格中写出特定的方法。

2 个答案:

答案 0 :(得分:2)

您可以将变量放在基类上,以便继承的类可以访问它。例如:

class a : System.UI.Page
{
    protected int c = 0;
}

class b : a
{
    protected void DoSomething()
    {
        c = 1; //Access c from derived class.
    }
}

此外,如果此属性不是特定于实例的,则可以始终在Global.asax文件中使用可以从ASP.NET应用程序中的任何位置访问的静态属性。如果它是特定于会话的,您只需让属性访问会话并从那里存储/检索值,以便每个用户会话都有自己的值。

希望这有帮助!

答案 1 :(得分:0)

我认为你以错误的方式使用继承。试试这个,它应该工作:

public class a : b {
    int ab = c;
}

public class b : System.UI.Page
{
    public int c = 0;
}