在ASP.NET中物件導向的編程思想

來源:互聯網
上載者:User
首先,我們還是來談一下物件導向的編程思想吧。我想現在的主流編程思想無非兩種:結構與物件導向。以前,在ASP中我們完全採用的是結構化思想。現在,asp.net可以完全支援物件導向的編程思想,這不得不說是一個質上的飛躍。 

記得我在大約半年前給大家寫過一篇<<物件導向從人造地球談起>>,當時是由於看到一本小說的啟發,發現任何東西都可以用物件導向的思想來看。我現在還是簡單談一下吧,物件導向無非就是把世間萬物當做一個類,要想使用類做事,就必須建立類的執行個體。這很好理簡,比方人是一個類,我們總不能說叫人去做事吧(這樣沒有針對性),我們往往說叫張三 or 李四去,這張三 or 李四就是人這個類的一個執行個體。這就是對象的概念。再講一下就是事件與動作,舉個例子:起風了,下雨了,收衣服了。起風了,下雨了是事件,這個事件會激發收衣服這個動作,這個動作的執行者就是對象。如果大家學過SQL Server的觸發器,我想對這一點思想會更清楚。物件導向還比較重要的就是繼承(Inherits)與多態。這很好理解,比方,張三會收衣服,張三生的兒子繼承了張三的特點,也會收衣服,這就是繼承,而且說不定張三的兒子還會開車,這就是多態。 

好了,對於物件導向理解我就說這麼一點,還是說一下在asp.net中如何用物件導向的觀點來編程吧。我們在編web程式時,通常要要處理:UI(使用者介面,也就是資料的顯示)與代碼(如何處理資料的Code(代碼)。為了達到UI與Code的完全分開,我們把UI當作一個對象,Code當作另我一個對象。當然我們要研究這兩個對象的關係,還記得我們在編ASP程式時把同一段代碼Copy到很多頁面,看來code是父類了,UI是子類了。不過他們都是從 System.Web.UI.Page繼承過來。理清了類的關係,我們不難理解代碼UI與Code分開的思想了。 
關係圖: 
引入名稱空間:using System.Web.UI 
父類 page→ 很多子類Code(*.cs檔案)→很多子子類 UI(*.aspx檔案) 

因為我主要是想大家瞭解這種編程思想,所以我只舉一個簡單的例子,我想大家有了思想,再就是多找執行個體來看了。 

檔案兩個: 
UI類: default.aspx 主要用來顯示資料,用天DataGrid控制項 
Code類: default.aspx.cs 主要用來建立資料聯結、查詢、綁定資料於DataGrid控制項的 
        裡面我建立了自己的namespace名叫vagrant,以及類MyVagrant 
資料庫: data,裡面有一個關係表student 

為了說明default.aspx類是從default.aspx.cs 繼承過來的,需要在default.aspx申明: 程式碼:<%@ Page language="c#" Codebehind="default.aspx.cs" Inherits="vagrant.MyVagrant" %> 

Codebehind表明父類的源檔案,Inherits="vagrant.MyVagrant" 表明該檔案是從哪個類繼承下來的。 

現在給出源檔案 

default.aspx代碼: 

程式碼:<%@ Page language="c#" Codebehind="default.aspx.cs" Inherits="vagrant.MyVagrant" %> 
<HTML> 
<HEAD> 
</HEAD> 
<body> 
<form id="Form1" method="post" runat="server"> 
<asp:datagrid id="MyDataGrid" runat="server" 
style="Z-INDEX: 101; LEFT: 197px; POSITION: absolute; TOP: 48px" 
BorderStyle="Ridge" GridLines="None" BorderWidth="2px" BorderColor="White" 
BackColor="White" CellPadding="3" CellSpacing="1" Width="494px" Height="143px"> 
<HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="#E7E7FF" VerticalAlign="Middle" BackColor="4A3C8C" /> 
<ItemStyle HorizontalAlign="Center" ForeColor="Black" VerticalAlign="Middle" BackColor="#DEDFDE" /> 
</asp:datagrid> 
</form> 
</body> 
</HTML>

 

default.aspx.cs 檔案代碼 注意:需要編譯 

程式碼:/* 
功能說明:default.aspx.cs用來將UI與原始碼分開,此為代碼部分,需要編譯 
Created By vagrant 
2001.10.17 
個人首頁:http://www.weavedream.net  
*/ 

//引入必須的名稱空間 
using System; 
using System.Data; 
using System.Data.SqlClient; //引入使用SQL資料庫所必須的名稱空間 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 

namespace vagrant //建立自己的名稱空間 

public class MyVagrant :Page //我的類MyVagrant是從類System.Web.UI.Page類繼承過來的 

protected DataGrid MyDataGrid; 

private void Page_Load(object sender, System.EventArgs e)//頁面裝載初始化,可檢查頁面是不是第一次被處理 

// 第一步:建立資料庫聯結,用物件導向的觀點就是建立一個SQL資料庫聯結對象的執行個體,並初始化 
SqlConnection MyConnection=new SqlConnection("Server=(local);DataBase=data;UID=sa;PWD=;"); 

//第二步:讀取資料庫,來物件導向的觀點就是建立一個查詢對象的執行個體,並初始化 
SqlDataAdapter MyCommand=new SqlDataAdapter("select * from student",MyConnection); 

//:第三步:儲存資料  
DataSet ds=new DataSet(); 
MyCommand.Fill (ds,"vagrant"); 
// 第四步:綁定資料 
MyDataGrid.DataSource =ds.Tables ["vagrant"].DefaultView 
MyDataGrid.DataBind (); 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.