標籤:
1.理解概念
先理解一下兩個概念。
模型
模型是指資料的結構類型,以及可調用的方法。對物件導向編程方法來說,其實就是類。模型類就是一個描述資料的類。只有把資料按一定方式描述出來,我們才能在程式中方便地使用它。
存放庫
直白解釋就是儲存資料的倉庫。通常就是用資料庫來儲存資料,當然也有檔案儲存體等其他儲存方式。存放庫的作用很顯然是將資料永久儲存起來。
2.建立資料模型
我們在【Asp.net入門06】第一個ASP.NET 應用程式(4)-案例說明中定義的案例項目比較簡單,只需要一個簡單的資料模型。下面是添加這個資料模型(類)的操作步驟。
操作步驟
第一步:在Solution Explorer(方案總管,記住這兩個單詞,以後不解釋了)中按右鍵PartyInvites項目(注意是點擊項目,不是點擊解決方案),然後從快顯功能表中選擇Add→Class(類)。(另一種方法是從快顯功能表中選擇“建立項”也是一樣的效果)
提示 如果沒有看到Class功能表項目或該功能表項目處于禁用狀態,說明Visual Studio調試器可能正在運行。當它正在運行應用程式時,Visual Studio會限制你對項目變更。請從Debug菜單中選擇Stop Debugging(停止調試),然後重試。
第二步:第一步之後,Visual Studio將會顯示Add New Item(添加新項)對話方塊,其中包含你可以添加到ASP.NET項目中的所有項的模板。確保“類模板”處於選中狀態,將其名稱設定為GuestResponse.cs,然後單擊Add按鈕。Visual Studio將建立一個新的C#類檔案,並開啟檔案以供編輯。設定該檔案的內容,使其與代碼清單1-4的內容相一致。
代碼清單1-4 GuestReponse類
代碼解釋
(1)類成員:屬性
上述代碼是一個C#類的定義。其中,類名稱是GuestResponse,該類有4個成員,這種成員在C#中有一個專門的名字:屬性。其實它相當於java中的getXXX和setXXX成員方法。上述成員屬性是一種簡化寫法,完整寫法是:
圖2 Name屬性的完整寫
提示
java中給一個成員變數提供讀寫功能的寫法是:class GuestResponse{ private String name; public String getName(){ return name; } public String setName{String n}{ name = n; }}
(2)可空類型:bool?
bool類型變數可以賦的值只有兩個:true和false。bool?也是一種資料類型,bool?變數可以賦的值有三個:true、false和null。null表示既不是true也不是false,值為空白。後面將解釋WillAttend屬性選擇這種資料類型的原因。
3.建立存放庫
GuestReponse類的用來執行個體顯示晚會嘉賓的回函。這需要一個存放庫來儲存所建立的GuestResponse對象。在實際應用中,此存放庫通常為資料庫。我們後面會建立一個更加真實的ASP.NET應用程式時,將介紹如何設定和使用資料庫。在本章中,我們只需要一種簡單快捷的儲存方法,因此,樣本將Object Storage Service在記憶體中。這樣做的好處是方便,但每次停止或重新啟動應用程式,資料都會丟失。對現實中的Web應用程式來說,這可能是一個奇怪的選擇,但就本章來說,這是一個不錯的選擇。
要定義存放庫,在項目中添加一個新的類檔案ResponseRepository.cs,這個類的作用是實現實現將資料存放區在記憶體中,並對資料進行讀寫。請確保該檔案的內容與代碼清單1-5的內容相一致。
代碼清單1-5:ResponseRepository.cs
程式碼分析
第11句:執行個體化一個鏈表,鏈表裡存放GuestResponse對象。
第18句-21句:返回包含所有受邀者資訊的鏈表。很明顯,這是一個成員函數,並不是屬性或者成員變數。IEnumerable<T>是一種介面類型,因為List<T>是繼承自IEnumerable<T>的,所以返回的resposes對象是沒有問題的。這涉及到使用介面實現多態的知識,這裡不專門展開,請自行參考淺談C# 多態的魅力(虛方法,抽象,介面實現)
思考
請課後自行學習介面的知識,弄清介面的作用和基本用法,並編寫一個簡單的介面程式。
第23句-26句:往存放庫中增加一個邀請(GuestResponse對象)。這裡是直接增加到記憶體鏈表responses對象中(實際項目中往往是寫到資料庫裡)。
[Asp.net入門07】第一個ASP.NET 應用程式-建立資料模型和存放庫