第一部分:面向物件 封裝 繼承(里氏轉換) 多型
第二部分:值型別、參考型別、字串操作
第三部分:集合檔案操作
第四部分:正則運算式
第五部分:XML操作
第六部分:委托、事件
第七部分:反射,
1、變數的命名首先我們要保證的就是變數的名稱一定要有意義(就是我們看到了變數的名字,就知道變數在這段程式中的作用)Camel:多余用給變數或者欄位命名,第一個單詞的首字母小寫,其余每個單詞的首字母大寫,我們給欄位命名,前面必須加下劃線,_highSchoolStudentPascal:要求我們每個單詞的首字母都要大寫,其余每個單詞的首字母小寫,HighSchoolStudentint max= GetMax();int min= GetMin();2、行程 一個應用程式就是一個行程,而一個行程又是由多個執行緒組成的,行程幫助我們在記憶體中分配應用程式執行所需要的空間,
//存盤著我們當前正在運行的行程
//Process[] pro = Process.GetProcesses();
//foreach (var item in pro)
//{
// //item.Kill();不試的不是爺們
// Console.WriteLine(item.ProcessName);
//}
//使用行程來打開應用程式
//Process.Start("notepad");//打開記事本
//Process.Start("mspaint");//打開畫圖工具
//Process.Start("iexplore", "http://www.baidu.com");
//Process.Start("calc");//打開計算器
//使用行程來打開檔案
//封裝我們要打開的檔案 但是并不去打開這個檔案
ProcessStartInfo psi = new ProcessStartInfo(@"C:\Users\SpringRain\Desktop\打開檔案練習.exe");
//創建行程物件
Process pro = new Process();
//告訴行程要打開的檔案資訊
pro.StartInfo = psi;
//呼叫函式打開
pro.Start();
Console.ReadKey();
---->我們可以通過行程來直接操作應用程式, 3、面向物件復習類決定了物件將要擁有的屬性和行為,
class BaseFile
{
//欄位、屬性、建構式、函式、索引器
private string _filePath;
public string FilePath//ctrl+R+E
{
get { return _filePath; }
set { _filePath = value; }
}
//自動屬性 prop+兩下tab
public string FileName { get; set; }
public BaseFile(string filePath, string fileName)
{
this.FilePath = filePath;
this.FileName = fileName;
}
//設計一個函式 用來打開指定的檔案
public void OpenFile()
{
ProcessStartInfo psi = new ProcessStartInfo(this.FilePath + "\\" + this.FileName);
Process pro = new Process();
pro.StartInfo = psi;
pro.Start();
}
}
封裝:--->減少了大量的冗余代碼--->封裝將一坨很難理解的功能封裝起來,但是對外提供了一個很簡單的使用介面,我們會使用就OK,繼承:--->減少了類中的冗余代碼--->讓類與類產生了關系,為多型打下了基礎,特性:單根性:一個子類只能有一個父類傳遞性:爺爺類 爹類 兒子類里氏轉換:1、子類可以賦值給父類2、如果父類中裝的是子類物件,則可以將這個父類轉換為對應的子類物件---->關鍵字1、is:回傳bool型別,指示是否可以做這個轉換2、as:如果轉換成功,則回傳物件,否則回傳null作用:我們可以將所有的子類都當做是父類來看,針對父類進行編程,寫出通用的代碼,適應需求的不斷改變, 多型:--->虛方法virtual override--->抽象類abstract override--->介面interface 4、關鍵字new1、創建物件--->在堆中開辟空間--->在開辟的堆空間中創建物件--->呼叫物件的建構式2、隱藏父類的成員 this1、代表當前類的物件2、顯示的呼叫自己的建構式base1、顯示呼叫父類的建構式2、呼叫父類的成員5、抽象類實作多型練習模擬將外部的移動存盤設備插到電腦上進行讀寫資料,U盤Read()Write()移動硬碟Read();Write();MP3Read();Write();PlayMusic();手機....平板電腦......6、介面---->介面是一種能力---->介面也是一種規范---->如果你繼承了這個介面,就必須按照介面的要求來實作這個介面,interface I開頭...able結尾7、石頭剪刀布案例玩家--->出拳的方法,是我們指定的電腦--->出拳的方法,隨機的裁判--->判斷輸贏或者平手石頭1 剪刀2 布3玩家贏:石頭1 剪刀2 =-1 剪刀2 布3 =-1 布3 石頭1=2平手:玩家-電腦=0;電腦贏: 8、訪問修飾符public private internal protected protected internalpublic:在哪都可以訪問private:私有的,只能在當前類的內部進行訪問internal:只能在當前程式集中訪問,protected:受保護的,可以在當前類以及該類的子類中訪問注意點:1、能夠修飾類的訪問修飾符只有兩個:public internal(默認就是internal),2、在同一個專案中,public的權限跟internal是一樣的,3、子類的訪問權限不能高于父類,
1、匯入命名空間 命名空間就是類的"檔案夾",類就是"檔案夾"中的檔案,需要匯入命名空間 添加參考: 如果我需要在一個專案中,訪問另一個專案中的某一個類 --->添加對另一個專案的參考 --->匯入命名空間2、靜態和非靜態 靜態成員:被static修飾 實體成員:不被static修飾 靜態成員先于實體成員被加載到記憶體中,只有創建了物件,才有實體成員, 靜態類中只能存在靜態成員 呼叫: 靜態成員呼叫: 類名.靜態成員名; 實體成員呼叫: 實體名.實體成員;(實體就是我們的物件) 什么時候使用靜態? ---->作為工具類 ---->在整個專案中資源共享,正因為它是資源共享的,所以靜態成員必須要等到整個專案都結束的時候 才會被資源釋放, 在我們的專案中應該盡可能的少使用靜態成員, 繼承是創建物件的程序,3、設計模式 ---->單例設計模式 在整個程式中,我們要保證物件必須是唯一的, 實作: ---->第一步:建構式私有化 ---->第二步:宣告一個靜態欄位,作為全域唯一的單例物件 ---->第三步:宣告一個靜態函式,回傳全域唯一的物件 ---->簡單工廠設計模式 核心:把所有的子類都當做父類來看待 練習: 提示用戶分別的輸入兩個數字: 再輸入運算子:回傳一個計算的父類,并呼叫方法得到結果, Add Sub Cheng Chu 建筑行業最早應用到設計模式這個概念 1、注冊一個公司 2、招兵買馬 3、投標買地 4、安排施工隊開始施工 5、賣樓 設計模式就是用來專門解決一些特定的問題, 4、類別庫 .dll檔案,我們使用類別庫來幫助我們封裝一些常用的功能 5、值型別和參考型別 值型別:int double char bool decimal struct enum 參考型別:string 陣列 自定義類 介面 委托 值型別的值存盤在記憶體的堆疊上,參考型別的值存盤在堆中, 堆疊上存盤資料的效率要高于堆, 值傳遞:把值型別作為引數傳遞,把值本身進行傳遞, 注意: ref可以把值傳遞改變為參考傳遞, 參考傳遞:把參考型別的值作為引數傳遞,傳遞的是參考, 6、字串的學習 重要特性: 不可變性,我們不管對字串做什么操作,都會在記憶體中產生一塊新的實體, 駐留池 我們可以將一個字串看作是char型別的只讀陣列, GC:Garbage Collection垃圾回收 ,每隔一段時間,會掃描整個記憶體,發現,如果有的空間沒有被指向,則立即把它銷毀,
1、StringBuilder 它就是拼接字串的一個工具,拼成完成后,還是需要將它轉回字串,2、ref引數 ref引數側重于將一個值帶到函式中進行改變,再講改變后的值帶出去,ref引數在函式內不用賦值 函式外必須為ref引數賦值,3、out引數4、params可變引數 5、集合的學習 非泛型集合 ArrayList Hashtable 泛型集合 List<T> Dictionary<Tkey,Tvalue>6、裝箱和拆箱 裝箱:值型別---->參考型別 拆箱:參考型別--->值型別 我們判斷是否發生了拆箱或者裝箱,首先要判斷這兩種資料型別是否存在繼承關系, 你裝箱的時候拿什么型別裝的箱,你拆的時候,就得拿什么型別去拆, 7、List<T>常用的函式Add():添加單個元素AddRange():添加一個集合Insert():插入一個元素InsertRange():插入一個集合Remove():移除指定的元素RemoveAt():根據下標移除元素RemoveRange():移除一定范圍內的元素ToArray():集合轉換成陣列ToList():陣列轉換成集合 8、編碼格式將字串是怎樣的形式保存為二進制,ascii 2566000 GB2312GBK GB18030ISO Unicode utf-16 utf-8出現亂碼的原因:我們保存這個檔案的時候采取的編碼跟打開這個檔案的時候采取的編碼格式不一致,文本檔案:拖到txt中還能看得懂得就是文本檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/2960.html
標籤:ASP.NET
