首先在app_code裡面新增一個BasePage.cs
/// <summary>
/// BasePage 的摘要描述
/// </summary>
public class BasePage:System.Web.UI.Page
{
public BasePage()
{
//
// TODO: 在此加入建構函式的程式碼
//
}
public void doingSomething()
{
Response.Write("I am 91");
}
}
接著在新增一個beNewClass.cs
/// <summary>
/// beNewClass 的摘要描述
/// </summary>
public class beNewClass
{
public beNewClass()
{
//
// TODO: 在此加入建構函式的程式碼
//
}
public string abc()
{ return "beNew"; }
}
接著來測試這兩個class,把你的aspx上加一個button
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>未命名頁面</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
在.aspx.cs裡,繼承BasePage
public partial class _Default : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
doingSomething();
}
protected void Button1_Click(object sender, EventArgs e)
{
beNewClass a = new beNewClass();
this.Button1.Text = a.abc();
}
}
你會發現,Page_load的時候,會跑doingSomething(),這個method是BasePage裡的,
因為是繼承所以不用宣告,
每一頁都可能會用到的方法,可以通通歸納到BasePage裡,(或是拆的更細,高內聚低耦合)
具有特別意義的class,則透過new來初始化使用,new裡面其實也可以使用參數,
來達到多載的初始化目的。
所以按下button後,可以使用beNewClass a的abc()。
沒有留言:
張貼留言