Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从基类访问子类变量_C#_Asp.net_.net_Oop_Inheritance - Fatal编程技术网

C# 从基类访问子类变量

C# 从基类访问子类变量,c#,asp.net,.net,oop,inheritance,C#,Asp.net,.net,Oop,Inheritance,我无法访问它。在asp.net中,我可以通过属性访问页面上的任何控件,但我必须从类(即类a)中访问公共变量,该类的形式为(即类b),这样我就不必在表单的50中编写特定的方法。您可以将变量放在基类中,以便继承的类可以访问它。例如: class a : System.UI.Page { int ab= c; } class b : a { public int c= 0; } 此外,如果此属性不是特定于实例的,则始终可以在Global.asax文件中使用静态属性,该属性可以从ASP.NET应用程序

我无法访问它。在asp.net中,我可以通过属性访问页面上的任何控件,但我必须从类(即类a)中访问公共变量,该类的形式为(即类b),这样我就不必在表单的50中编写特定的方法。

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

class a : System.UI.Page {
int ab= c;
}
class b : a
{
public int c= 0;
}
此外,如果此属性不是特定于实例的,则始终可以在Global.asax文件中使用静态属性,该属性可以从ASP.NET应用程序中的任何位置访问。如果它是特定于会话的,您只需让属性访问会话并从中存储/检索值,以便每个用户会话都有自己的值


希望这有帮助

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

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

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

类b是否继承自System.Web.UI.Page?为什么不把属性放在基类上,因为所有继承的类都可以访问它呢?类a是从System.Web.UI.Page继承的。作为我的参考,你能用getters n setters发布完整的类吗stuff@Aaron霍金斯。看来是个好办法,我来看看。谢谢。没问题,我会写下来作为你的答案。
public class a : b {
    int ab = c;
}

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