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