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

我无法访问它。我可以通过asp.net 中的Control.NamingContainer属性访问页面上的任何控件,但我必须从表单(即 b 类)中的类(即 a 类)访问公共变量,这样我就没有写我的表格中的50个特殊方法。

4

2 回答 2

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 应用程序中的任何位置访问。如果它是特定于会话的,您可以简单地让属性访问会话并从那里存储/检索值,以便每个用户会话都有自己的值。

希望这可以帮助!

于 2013-02-01T14:27:26.350 回答
0

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

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

public class b : System.UI.Page
{
    public int c = 0;
}
于 2013-02-01T14:58:43.413 回答