您好,登錄后才能下訂單哦!
第一講 :深入.NET框架
第二講:深入C#數(shù)據(jù)類型
第三講 :使用結(jié)合組織相關(guān)數(shù)據(jù)
第四講 :深入類的方法
第六講 :初識(shí)繼承和多態(tài)
第七講 :深入理解多態(tài)
第八講 :可擴(kuò)展標(biāo)記語(yǔ)言(XML)
第九講:文件操作
知識(shí)拓展:
線程睡眠:1.導(dǎo)入命名空間 System.Treading; 2.Thread.Sleed(毫秒);
.NET框架具有兩個(gè)主要組件:公共語(yǔ)言運(yùn)行時(shí)(CLR)與框架類庫(kù)(.NET Framework類庫(kù),即FCL)。CLR是.NET框架的基礎(chǔ)。CLS公共語(yǔ)言規(guī)范。
.NET框架核心類庫(kù)及其功能:
1.System:此命名空間包含其他所有的命名控件。
2.System.Collections.Generic:支持泛型操作。
System.IO:支持對(duì)文件的操作,如復(fù)制、粘貼、刪除以及對(duì)文件的讀寫等。
System.Net:支持對(duì)網(wǎng)絡(luò)協(xié)議的編程。
System.Data:提供對(duì)便是ADO.NET結(jié)構(gòu)的類的訪問(wèn)。
System.Windows.Forms:用于開發(fā)Windows應(yīng)用程序。
System.Drawing:支持GDI+基本圖形操作。
數(shù)據(jù)類型分類:
類別 | 描述 | |
值類型 | 基本數(shù)據(jù)類型 | 整型:int |
長(zhǎng)整型:long | ||
浮點(diǎn)型:float 雙精度型:double | ||
字符型:char | ||
布爾型:bool | ||
枚舉類型 | 枚舉:enum | |
結(jié)構(gòu)類型 | 結(jié)構(gòu):struct | |
引用類型 | 類 | 基類:System.Object |
字符串:string | ||
自定義類:class | ||
接口 | 接口:interface | |
數(shù)組 | 數(shù)組:int[],string[] |
結(jié)構(gòu):1.特點(diǎn):結(jié)構(gòu)中可以有字段,也可以有方法;定義時(shí),結(jié)構(gòu)中的字段不能被賦值;使用結(jié)構(gòu)時(shí)可以不用new,直接定義結(jié)構(gòu)的對(duì)象即可;聲明結(jié)構(gòu)的對(duì)象后,必須給結(jié)構(gòu)的成員賦初始值
2.定義:訪問(wèn)修飾符 struct 結(jié)構(gòu)名{ //結(jié)構(gòu)體 }
關(guān)于ref修飾的使用:
使用值方式(不用ref修飾)傳遞值類型參數(shù)時(shí),參數(shù)在方法中的修改不會(huì)保留
使用值方式(不用ref修飾)傳遞引用類型參數(shù)時(shí),參數(shù)在方法中的修改會(huì)保留
使用引用方式(用ref修飾)傳遞值類型或引用類型參數(shù)時(shí),參數(shù)在方法中的修改都會(huì)被保留
值類型轉(zhuǎn)換為引用類型稱為裝箱,反之稱為拆箱.
ArrayList:類似于數(shù)組,可動(dòng)態(tài)維護(hù);容量可自動(dòng)擴(kuò)充,屬于System.Collections命名空間
例:ArrayList aa=new ArrayList();
aa.Add(Object) //添加
aa.Remove(Object Value) //通過(guò)對(duì)象刪除
aa.Remove(int index) //通過(guò)索引刪除
注:給ArrayList 添加的元素都會(huì)被轉(zhuǎn)換為Object類型,所有在訪問(wèn)這些元素的時(shí)候必須把它們轉(zhuǎn)換回原來(lái)的數(shù)據(jù)類型。
Hashtable:”字典”,通過(guò)鍵(Key)和值(Value)來(lái)組織,也屬于System.Collections命名空間。
例:Hashtable aa=new Hashtable();
aa.Add(Key,Object value) //添加,Key類型不定,一般為唯一標(biāo)識(shí)列
aa.Remove(Key) //刪除,也可使用aa.Clear() 清除所有元素
注:Hashtable 不能用索引訪問(wèn),因此遍歷只能用foreach()方法,須轉(zhuǎn)換類型
(泛型集合)List<>
例:List<string> aa=new List<string>();
aa.Add( string value) //只能添加定義的數(shù)據(jù)類型
aa.RemoveAt(索引) //通過(guò)索引刪除
aa.Remove(值或?qū)ο?/span>) //通過(guò)值或?qū)ο髣h除
(泛型集合)Dictionary<K,V>
例:Dictionary<Key,Value> aa=new Dictionary<Key,Value>();
aa.Add(Key,Value) //成對(duì)添加
aa.Remove(Key) //通過(guò)Key值刪除
構(gòu)造函數(shù)
特點(diǎn):1.方法名與類名相同 2.沒(méi)有返回值類型 3.主要完成對(duì)象的初始化工作
注:寫一個(gè)帶參的構(gòu)造函數(shù)之后,如果實(shí)例化的這個(gè)類不傳參數(shù),則需要多寫一個(gè)無(wú)參的構(gòu)造函數(shù)
方法重載:
特點(diǎn):1.方法名相同 2.方法參數(shù)類型不同或者參數(shù)個(gè)數(shù)不同 3.在同一個(gè)類中
注:方法名及參數(shù)列表相同的方法,僅是返回類型不同,不能稱為方法重載
Base 關(guān)鍵字:表示父類,可以用于訪問(wèn)父類的成員;protected修飾符:用于修飾父類成員則只允許子類訪問(wèn)該成員
Public、private、protected 的區(qū)別
修飾符 | 類內(nèi)部 | 子類 | 其他類 |
Public | 可以 | 可以 | 可以 |
private | 可以 | 可以 | 不可以 |
protected | 可以 | 不可以 | 不可以 |
繼承的特性:1.傳遞性(如果class A:B,class B:C,則A也可以訪問(wèn)C的成員)、
2.單根性(只能有一個(gè)老爸)
使用virtual關(guān)鍵字修飾的方法稱為虛方法,一般寫在父類,可用override關(guān)鍵字修飾在子類中重寫。
里氏原則:子類可以替換父類,父類不能替換子類。
使用abstract關(guān)鍵字修飾的類是抽象類,使用abstract關(guān)鍵字修飾的方法是抽象方法,有抽象方法的類成為抽象類,抽象類中的抽象方法必須要在非抽象子類中使用override關(guān)鍵字重寫。
抽象類不能被實(shí)例化,不能是密封的或靜態(tài)的。
Is 操作符用于檢查對(duì)象和指定的類型是否兼容;as 操作符主要用于兩個(gè)對(duì)象之間的類型轉(zhuǎn)換。
面向?qū)ο蟮娜齻€(gè)特性:
1.封裝:保證對(duì)象自身數(shù)據(jù)的完整性和安全性。
2.繼承:建立類之間的關(guān)系,實(shí)現(xiàn)代碼復(fù)用,方便系統(tǒng)的擴(kuò)展。
3.多態(tài):相同的方法調(diào)用可實(shí)現(xiàn)不同的實(shí)現(xiàn)方式
讀取XML文件的步驟:1.創(chuàng)建操作對(duì)象 2.加載XML文件 3.獲取根節(jié)點(diǎn)對(duì)象 4.逐層次遍歷根節(jié)點(diǎn)下的子節(jié)點(diǎn),獲取節(jié)點(diǎn)的值存到所對(duì)應(yīng)的對(duì)象中。
例:讀取XML文件的一般操作:
XmlDocument myXml=new XmlDocument(); //創(chuàng)建操作對(duì)象
myXml.Load(“文件路徑”); //加載XML文件
XmlNode engineer=myXml.DocumentElement; //讀取XML的根節(jié)點(diǎn)
//循環(huán)遍歷根節(jié)點(diǎn)下的子節(jié)點(diǎn),ChildNodes[0]則跳一級(jí)
Foreach(XmlNode node in engineer.ChildNodes)
{
String name=node[“節(jié)點(diǎn)文本”].InnerText
//如果獲取節(jié)點(diǎn)文本則用node.Name
//如果獲取文本節(jié)點(diǎn)中的name值則用node.Attributes[“節(jié)點(diǎn)文本”].InnerText
}
操作XML的對(duì)象屬性和方法
對(duì)象 | 屬性和方法 | 說(shuō)明 |
XmlDocument | DocumentElement屬性 | 獲取根節(jié)點(diǎn) |
ChildNodes屬性 | 獲取所有子節(jié)點(diǎn) | |
Load()方法 | 讀取整個(gè)XML的結(jié)構(gòu) | |
XmlNode | InnerText屬性 | 當(dāng)前節(jié)點(diǎn)的值 |
Name屬性 | 當(dāng)前節(jié)點(diǎn)的名稱 | |
ChildNodes屬性 | 當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn) |
TreeView控件用于顯示具有層次結(jié)構(gòu)的信息,主要屬性有Nodes和SelectedNode。Nodes屬性包含了TreeView的節(jié)點(diǎn)對(duì)象,SelectedNode表示當(dāng)前選中的節(jié)點(diǎn)。
TreeNode表示TreeView的節(jié)點(diǎn)對(duì)象。Text屬性用于設(shè)置節(jié)點(diǎn)的文字描述,Tag屬性可以設(shè)置與節(jié)點(diǎn)相關(guān)的信息。
通過(guò)TreeNode的Add()方法可以給TreeView添加節(jié)點(diǎn),Remove()方法可以移除指定的節(jié)點(diǎn),Clear() 方法可以移除指定節(jié)點(diǎn)下的所有節(jié)點(diǎn)。
用C#程序讀寫一個(gè)文件的5個(gè)步驟:
1.創(chuàng)建文件流;2.創(chuàng)建閱讀器或者寫入器;3.執(zhí)行讀寫操作;4.關(guān)閉閱讀器或者寫入器;5.關(guān)閉文件流。(注:流是一個(gè)用于數(shù)據(jù)傳輸?shù)膶?duì)象)
例:
//創(chuàng)建文件流
FileStream myfs=new FileStream(保存的路徑,FileMode.Create);
//創(chuàng)建寫入器
StreamWriter mySw=new StreamWriter(myfs);
//將內(nèi)容寫入文件
mySw.Write(“內(nèi)容”);
//關(guān)閉寫入器
mySw.Close();
//關(guān)閉文件流
myfs.Close();
StreamWriter 寫入器
StreamWriter.Write(); 用于寫入流,這個(gè)流就是我們創(chuàng)建好的流。
StreamWriter.WriteLine(); 用于寫入一行數(shù)據(jù),寫入某些數(shù)據(jù)后跟換行符。
StreamWriter.Close(); 用于關(guān)閉寫入器。
StreamReader 讀取器
StreamReader.ReadLine(); 讀取文件流中的一行數(shù)據(jù),并返回字符串
StreamReader.ReadToEnd(); 從當(dāng)前位置讀到末尾,返回字符串
StreamReader.Close(); 用于關(guān)閉讀取器
File類的常用方法(文件操作類,可以不實(shí)例化對(duì)象):
返回值類型 | 方法名稱 | 說(shuō)明 |
bool | Exists(string path) | 用于檢查指定文件是否存在 |
void | Copy(string sourceFilePath, String destinationFilePath) | 將指定路徑的源文件中的內(nèi)容復(fù)制到目標(biāo)文件中,如果目標(biāo)文件不存在,則在指定路徑中新建一個(gè)文件 |
void | Move(string sourceFileName ,string destFileName) | 將指定文件移到一個(gè)新的路徑 |
void | Delete(string path) | 刪除指定的文件,如果指定的文件不存在,則不引發(fā)異常 |
Directory類的常用方法(操作目錄類,可以不實(shí)例化對(duì)象):
返回值類型 | 方法名稱 | 說(shuō)明 |
bool | Exists(string path) | 用于檢查指定文件夾在磁盤上是否存在 |
void | Move(string sourceDirName, String destDirName) | 用于將文件或目錄及其內(nèi)容移到新位置 |
void | Delete(string path,bool recursive) | 刪除指定目錄,如果recursive值為true,則刪除子目錄中的所有目錄內(nèi)容 |
靜態(tài)類和非靜態(tài)類的區(qū)別
靜態(tài)類 | 非靜態(tài)類 |
用static修飾 | 不用static修飾 |
只包含靜態(tài)成員 | 可以包含靜態(tài)成員 |
不可以包含實(shí)例成員 | 可以包含實(shí)例成員 |
使用類名調(diào)用靜態(tài)成員 | 使用實(shí)例對(duì)象調(diào)用非靜態(tài)成員 |
不能被實(shí)例化 | 可以被實(shí)例化 |
不能包含實(shí)例構(gòu)造函數(shù) | 包含實(shí)例構(gòu)造函數(shù) |
FileInfo類的屬性和方法(文件操作類,必須實(shí)例化對(duì)象):
屬性 | 說(shuō)明 | |
Exists | 用于檢查指定文件是否存在,返回一個(gè)布爾值 | |
Extension | 獲取表示文件擴(kuò)展名部分的字符串 | |
Name | 獲取文件名 | |
FullName | 獲取目錄或文件的完整目錄 | |
返回值類型 | 方法 | 說(shuō)明 |
FileInfo | CopyTo(string) | 將現(xiàn)在文件復(fù)制到新文件,不允許覆蓋現(xiàn)在文件 |
void | Delete() | 永久刪除文件 |
void | maveTo(string) | 將指定文件移到新位置(string) |
DirectoryInfo類,與Directory類相似,但必須實(shí)例化對(duì)象,其中GetDirectories()方法:該方法返回當(dāng)前目錄的子目錄對(duì)象數(shù)組;GetFiles():該方法返回當(dāng)前目錄下的文件列表(FileInfo 對(duì)象數(shù)組)。
MyFile類(存儲(chǔ)文件信息類):
屬性 | 類型 | 說(shuō)明 |
FileLength | float | 文件長(zhǎng)度,以KB為單位 |
FileName | string | 文件名 |
FilePath | string | 文件路徑 |
FileType | string | 文件類型 |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。