標籤:
一.NET架構
ADO.NET微軟提供的一組類庫,可以協助程式員和資料庫互動。
CLS(Common Language Specification) CTS(通用語言類型)
類庫:
可以看成一個承載了N個類的容器。
類庫和命名空間:
一個類庫對應一個命名空間,也可以多個。
二.自動屬性
public string name{set;get;}
應用情境:
當不用做邏輯判定是,可以使用自動屬性。
三.封裝
資訊隱藏,將抽象的資料和操作結合在一起,將私人欄位封裝成公有屬性。
1.保證資料的安全性。
2.提供清晰的對外介面。
3.類內部實現可以任意修改,不影響其他類。
OOP物件導向編程。
AOP面向切面編程
OOD物件導向設計
OOA物件導向分析
DBA資料庫管理員
CLS(Common Language Specification)
CLR(通用語言執行平台) CTS(同用類型)
.NET架構主鍵
FCL架構內庫
第二章:
結構的定義:
1.結構體關鍵字是struct.
2.不用new,就可以給屬性賦值。
3.結構體不用new的時候,Name不能是自動屬性。
4.結構體是實值型別,class是參考型別。
5.結構體中不能給欄位賦初值,類中可以。
6.結構體不能產生構造,類會在後台自動形成。
public struct Student{public int id;public int age;public void Show(){console.WriteLine(”年齡:“id,age);}}stattic void Main(string[]args){student stu;建立學生結構 stu.id=1001; stu.age=20;stu.show();}
值傳遞,參考型別
傳遞實值型別不會保留,傳遞參考型別持續保留。
1.如果參數前有ref一定會保留。
2.如果參數前沒有ref,想保留必須自身是參考型別。
3實值型別不可以為null,參考型別可以為null.
4.實值型別分配到棧上,參考型別儲存到堆上。
三集合:
集合:將一堆資料放在在一起。
ArrayList list=new ArrayList();
foreach(object item in list)
{
console.WriteLine(item);
}
list.RemoveAt(1);刪除下標為1的資料
1.使用Arraylist引入命名空間
2.集合擴容原理:集合中元素個數為0,則沒有開闢空間。
3.預設集合中出現第一個元素,那麼集合大小為4,如果放入第五個元素,那麼就擴容8個。
Hashtable table=new Hashtable();
foreach(string key in table.keys)
{
console.wirteLine(key,table[key]);
}
HashTable類型在集合只能用foreach迴圈遍曆,因為沒有索引。
他是無序的,key值不能重複,不能用 RemoveAt(1);
List<> list=new List<>
他與ArrayList相似,list<>訪問資料時不需類型轉換。
Dictionary<k,y> diy=new Dictionary<k,y>
泛型集合可以作為類的一個屬性,使用泛型集合必須執行個體化。
四.類的方法
建構函式
無參
public se()
{
this.id="00";
this.name="曉雯";
}
Main方法()
se en=new se();
console.writeLine(en.se);
帶參
public se(string name,int age)
{
this.name=name;
this.age=age;
}
方法重載
如果方法名相同,參數列表(個數,順序,類型)不同,和方法傳回值無關。
建構函式同常與類名相同,建構函式不聲明傳回值,用public類型。
五.繼承多態
繼承優點:
減少代碼冗餘,實現代碼複用。
如果一個類後面通過冒號又跟上另一個類,就用冒號前面的類為子類,冒號後面的類為父類,這就是繼承關係。
子類不能繼承構造
子類:衍生類別;
父類:基類
繼承的兩大特性
單根性,一個類只能有一個直接父類。
base關鍵字和protected修飾符
base調用構造(參數列表)父類參數構造的參數一致。
public string sayhi()
{
string message=string.Format("大家好{0},今年{1}歲“,base.name,base.Age);
}
多態
不同的對象對於同一個操作,做出的相應不同,目的是為了統一調用。
public virtual string sayhi()
{
}
public overrde string sayhi()
{
}
實現多態
1.父類中定義sayhi()方法,用virtual關鍵字定義虛方法。
2.在子類定義子類自己的sayhi()方法,用override關鍵字修飾就實現了對父類方法重寫。
六.深入多態
1.一個類用abstract修飾,就是抽象類別
2.抽象類別不能用執行個體化
3.抽象方法不能有方法體
4.抽象方法必須在抽象類別中
5.抽象方法存在的目的是,為了約束子類,中方發。
6.抽象類別不能是靜態類(static)或者是密封(staled)
7.抽象類別中的所有抽象方法都必須被子類重寫,除非子類本身就是抽象類別。
public abstract class job
{
public jop(){}
public abstract void Execute();
}
public override void Execute()
{
}
裡氏替換原則:子類對象可以替換父類對象。
物件導向的三大特性
封裝:保證對象自身資料的完整性和安全性
繼承:建立類之間的關係,實現代碼複用。
多態:相同的方法調用可實現不同的實現方式。
七.XML
解析XML
private void button1_Click(object sender, EventArgs e)2 {3 XmlDocument doc = new XmlDocument();4 doc.Load(@"..\..\CD.xml");5 6 XmlElement root = null;7 root = doc.DocumentElement;8 9 XmlNodeList listNodes = null;10 listNodes = root.SelectNodes("/bookstore/book/price");11 foreach (XmlNode node in listNodes )12 {13 richTextBox1.Text += node.InnerText + "\n";14 }15 }
encoding
類型:System.String
編碼方式屬性的值。這是當將 XmlDocument 儲存到檔案或流時使用的編碼方式;因此必須將其設定為 Encoding 類支援的字串,否則 Save 失敗。如果這是 nullNothingnullptrnull 引用(在 Visual Basic 中為 Nothing) 或 String.Empty,則 Save 方法不在 XML 聲明上寫出編碼方式屬性,因此將使用預設的編碼方式 UTF-8。
注意:如果將 XmlDocument 儲存到 TextWriter 或 XmlTextWriter,則放棄該編碼值。而改用 TextWriter 或 XmlTextWriter 的編碼方式。這確保可以使用正確的編碼方式讀回寫出的 XML。
2.XmlDocument類的方法
XmlDocument類的方法及說明如下表所示。
方法 |
說明 |
AppendChild |
將指定的節點添加到該節點的子節點列表的末尾 |
CreateAttribute |
建立具有指定名稱的 XmlAttribute |
CreateCDataSection |
建立包含指定資料的 XmlCDataSection |
CreateComment |
建立包含指定資料的 XmlComment |
CreateDocumentFragment |
建立 XmlDocumentFragment |
CreateDocumentType |
返回新的 XmlDocumentType 對象 |
CreateElement |
建立 XmlElement |
CreateEntityReference |
建立具有指定名稱的 XmlEntityReference |
CreateNavigator |
建立一個用於導航此文檔的新 XPathNavigator 對象 |
CreateNode |
建立 XmlNode |
CreateProcessingInstruction |
建立一個具有指定名稱和資料的 XmlProcessingInstruction |
CreateSignificantWhitespace |
建立一個 XmlSignificantWhitespace 節點 |
CreateTextNode |
建立具有指定文本的 XmlText |
CreateWhitespace |
建立一個 XmlWhitespace 節點 |
CreateXmlDeclaration |
建立一個具有指定值的 XmlDeclaration 節點 |
GetElementById |
擷取具有指定 ID 的 XmlElement |
GetElementsByTagName |
返回一個 XmlNodeList ,它包含與指定名稱匹配的所有元素的列表 |
GetNamespaceOfPrefix |
尋找當前節點範圍內離給定的首碼最近的 xmlns 聲明,並返回聲明中的命名空間 URI |
GetPrefixOfNamespace |
尋找當前節點範圍內離給定的命名空間 URI 最近的 xmlns 聲明,並返回聲明中定義的首碼 |
GetType |
擷取當前執行個體的 Type |
ImportNode |
將節點從另一個文檔匯入到當前文檔 |
InsertAfter |
將指定的節點緊接著插入指定的引用節點之後 |
InsertBefore |
將指定的節點緊接著插入指定的引用節點之前 |
Load |
載入指定的 XML 資料 |
LoadXml |
從指定的字串載入 XML 文檔 |
Normalize |
將XmlText 節點都轉換成“正常”形式 |
PrependChild |
將指定的節點添加到該節點的子節點列表的開頭 |
ReadNode |
根據 XmlReader 中的資訊建立一個 XmlNode 對象。讀取器必須定位在節點或屬性上 |
RemoveAll |
移除當前節點的所有子節點和/或屬性 |
RemoveChild |
移除指定的子節點 |
ReplaceChild |
用新節點替換舊節點 |
Save |
將 XML 文檔儲存到指定的位置 |
SelectNodes |
選擇匹配XPath 運算式的節點列表 |
SelectSingleNode |
選擇匹配 XPath 運算式的第一個 XmlNode |
Supports |
測試 DOM 實現是否實現特定的功能 |
Validate |
驗證 XmlDocument 是不是 Schemas 屬性中包含的 XML 結構定義語言 (XSD) 架構。 |
WriteContentTo |
將 XmlDocument 節點的所有子級儲存到指定的 XmlWriter 中 |
WriteTo |
將 XmlDocument 節點儲存到指定的 XmlWriter |
八.
檔案操作
Append
若存在檔案,則開啟該檔案並尋找到檔案尾,或者建立一個新檔案。 這需要FileIOPermissionAccess.Append 許可權。 FileMode.Append 只能與FileAccess.Write 一起使用。 試圖尋找檔案尾之前的位置時會引發IOException 異常,並且任何試圖讀取的操作都會失敗並引發NotSupportedException 異常。
Create
指定作業系統應建立新檔案。 如果檔案已存在,它將被覆蓋。 這需要FileIOPermissionAccess.Write 許可權。 FileMode.Create 等效於這樣的請求:如果檔案不存在,則使用 CreateNew;否則使用 Truncate。 如果該檔案已存在但為隱藏檔案,則將引發 UnauthorizedAccessException異常。
CreateNew
指定作業系統應建立新檔案。 這需要 FileIOPermissionAccess.Write 許可權。 如果檔案已存在,則將引發 IOException異常。
Open
指定作業系統應開啟現有檔案。 開啟檔案的能力取決於 FileAccess 枚舉所指定的值。 如果檔案不存在,引發一個 System.IO.FileNotFoundException 異常。
OpenOrCreate
指定作業系統應開啟檔案(如果檔案存在);否則,應建立新檔案。 如果用FileAccess.Read 開啟檔案,則需要 FileIOPermissionAccess.Read許可權。 如果檔案訪問為 FileAccess.Write,則需要 FileIOPermissionAccess.Write許可權。 如果用 FileAccess.ReadWrite 開啟檔案,則同時需要
Truncate
指定作業系統應開啟現有檔案。 該檔案被開啟時,將被截斷為零位元組大小。 這需要 FileIOPermissionAccess.Write 許可權。 嘗試從使用 FileMode.Truncate開啟的檔案中進行讀取將導致 ArgumentException 異常。
經典C#編程理解,概要,經典