2013-02-01 153 views
0
class a : System.UI.Page { 
int ab= c; 
} 
class b : a 
{ 
public int c= 0; 
} 

我無法訪問它。我可以通過Control.NamingContainerControl.NamingContainer在asp.net的屬性,但我可以訪問任何控制我必須從類(即類b)的類(即類a)訪問公共變量,以便我沒有寫一個在我的表單中有50個特定的方法。從基類訪問子類變量

+1

是否類b繼承System.Web.UI.Page?爲什麼不把屬性放在基類上,因爲所有的繼承類都可以訪問它? –

+0

類a從System.Web.UI.Page繼承。 –

+0

爲我的親戚參考可以發佈全部類與getters n setters和所有那些很酷的東西 – user1974729

回答

2

您可以將變量放在基類上,以便繼承的類可以訪問它。例如:

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

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

此外,如果此屬性不特定於實例,你可以隨時使用,可以從任何地方你的ASP.NET應用程序中訪問Global.asax文件的靜態屬性。如果它是會話特定的,您可以簡單地讓該屬性訪問會話並從那裏存儲/檢索值,以便每個用戶會話都有自己的值。

希望這會有所幫助!

0

我想你是以錯誤的方式使用繼承。嘗試這個,它應該工作:

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

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