點擊更多驚喜(基礎資源) 立刻畢業了,把本身當初作的C#筆記分享下來,獻給剛剛接觸.NET的童鞋 這些筆記都是之前自學時候整理的,你們也能夠去看看:點擊進入.後面還有ASP.NET基礎,中級,高級教程,你們能夠參考下. 筆記以下: 若是是對你有用,趕忙保存下來吧,過2天就我就把文章下了 概念:.net與c# .net/dontnet:通常指.net framework框架,一種平臺,一種技術 c# http://www.fpshamen.com/linked/20130317.do (charp):一種編程語言,能夠開發基於.net的應用。 *java既是一種技術又是一種編程語言。 .net都能幹什麼? 開發桌面應用程序 Winform internet應用程序 Asp.net/webservice C/S:客戶機(Client)/服務器模式(Server) B/S:瀏覽器(Browser)/務器模式(Server) 兩句話 第一句Console.WriteLine(「你想顯示的內容」); 第二句Console.ReadKey();當程序執行到這句話的時候,程序會停在這裏,等待用戶在鍵盤上鍵入一個鍵,以後,程序繼續執行。 PS:在C#中。每句話必須一:分號結束。 Main方法是咱們程序的入口方法,當咱們只想一個程序時,會首先找到Main方法,從Main的第一句程序開始執行,當Main方法執行完成後(即執行到Main方法的反大括號)程序就結束了。 基礎知識 在C#中有三種註釋,註釋是給人看的,和程序無關: 第一種:單行註釋 以//到本行結束 第二種:多行註釋 以/*開始,*/結束,之間的都爲註釋 第三種: 文檔註釋 用於對類和方法進行註釋的 連續輸入3個/// Ps:計算機使用基本技巧 經常使用鍵:Home/End/PageUp/PageDown/Shift 刪除文字:Del/Backspace 複製粘貼:Ctrl+C/V/P/ 使用Ctrl+Z ; ;()等的全角半角的問題 快捷鍵:F5/F6 摺疊一段代碼:#Region和#EndDregion 變量 RAM:內存有個特色,斷電后里面的數據就會丟失 變量:變量表明着一塊內存空間,咱們能夠經過變量名稱向內存存/取數據 向內存空間聲明變量的語法格式: 數據類型 變量名; 給變量賦值: 變量名=值; 變量的使用和命名規則 整數在C#中的數據類型叫int 小數 double 字符型,一個字符 char 字符串,就是把一個或多個字符鏈接起來 string 變量聲明的三種方法: 1數據類型 變量名稱; 2數據類型 變量名稱=值; 3一次聲明多個相同類型的變量 數據類型 變量名=值,變量名=值,變量名=值; PS:變量必定要先聲明,再賦值,才能取值/調用 變量的命名規則: 1必須以「字母」或@開頭 後面能夠跟任意「字母」,數字,下劃線 Ps:)變量名不能和C#系統中的關鍵字重複 )在C#中,大小寫是敏感的 )同一個變量名不容許重複定義(新手先這麼認爲) 定義變量時變量名要有意義 )變量命名編碼規範-首個單詞的字母小寫,其他單詞的字母大寫 輸出變量的值連_賦值符_鏈接符_佔位符 賦值運算符:= A=A+1;這裏的=號是賦值運算符,不是數學上意義上的相等 變量能夠重複賦值,一旦給一個變量賦了新值,那麼變量中的老值就不存在了 +在C#中有兩種意義: )是數學中的加法運算:兩邊參與加法運算的數據類型爲數字類型,則+表示數學上加法的意義 )是鏈接的意思:兩邊參與加號運算的數據,有一個不是數據類型,那麼這個加號表示鏈接的意義 在console.writelin(); 第一個變量/字符串可使用佔位符 佔位符又{數字} {0}第一個佔位符 {1}第二個佔位符 {2}第三個佔位符 ...... Console.writeline();有多個參數時,輸出都是第一個參數的內容,從第二哥參數開始,都是用來替換第一個參數佔位符的值,因此從第二個參數開始,要不要輸出,就要看第一個參數中有沒有相關的佔位符 變量交換_輸入 學習一句話,用於讓用戶從鍵盤上輸入一句話,當程序執行到下面這句話,就會暫停,而後等待用戶從鍵盤上輸入一句話,按回車鍵程序繼續執行,若是想獲得用戶輸入的內容,就須要定義一個String類型的變量,謝在下面這句話的前面,接收用戶輸入的內容 String 變量名=Console.ReadLine(); 數據類型的自動轉換 轉義字符: 何時用,當咱們須要在字符串中輸入一些特殊的字符時,好比:半角引號,換行,退格等就須要轉義字符 轉義字符是一個特殊的字符,它由一個\+一個字母來組成具備特殊意義的一個字符。 經常使用的轉義字符: \n: 換行 \b: backspace 退格 \t: tab 有多個空格組成的一個字符,具備行與行之間的對齊功能 \\:表示一個\ 在字符串前面加一個@有2種意義: )字符串中若是有\,則不理解爲轉義符 )使字符串能夠換行 Ps:若是字符串前面加@,在字符串上用兩雙引號表明一個雙引號 在C#中,有五個算術運算符:+,-,*,/,% 二元運算符,要求:參與的兩個操做數類型必須相同,而且通過運算後的結果也與操做數的類型相同 在算術表達式中,若是要改變計算的優先級 用小括號,小括號能夠無限套用,必須成對出現 發生自動轉換的條件: )參與運算的兩個數據類型必須相兼容 )必須一邊的數據類型表示範圍小,,一邊的範圍大,而且把小的轉換大的不丟書精度 類型的強制轉換語法: (數據類型名)待轉換的值 強制類型轉換,數據類型必定要相兼容 類型轉換 參與運算(算術運算和賦值運算)的操做數和結果類型必須一致,當不一致時,知足如下條件,系統自動完成類型轉換 兩種類型兼容: 目標類型大於源類型 對於表達式: 若是一個操做數爲double類型,則整個表達式可提高爲double類型 在自動轉換中,是不會丟失精度的。若是丟失精度,那麼這個轉換就不是自動完成 強制類型轉換 語法:(數據類型名)待轉換的值; PS:強制類型轉換,數據類型必定要相兼容 Convert不只是內存級別的轉換,而是考慮數據意義的轉換,是一個加工改造的國產 語法: convert.toint32(待轉字符串); Convert.tostring();//一切類型均可以轉換成string類型 try-catch C#中異常捕獲: Try { 有可能出現錯誤的代碼寫這裏 } Catch { 出錯後煩人處理 } 上面的程序如何執行: 若是try中的代碼沒有出錯,則程序正常運行try中的內容,不會執行catch中的內容。 若是try中的代碼一旦出錯,程序當即跳入catch中去執行代碼,那麼try中的代碼後面的代碼再也不執行了 自加自減複合賦值-關係表達式 算術運算符: ++自加1 有前加和後加 --自減1 有前減和後減 Ps:一元運算符++/--比二元運算符+/-優先級高 )+= )-= )*= )/= )%= 在C#中,有6個關係運算符,用於比較兩個事物之間的關係 關係運算符(比較運算): )>,< )==/!= )>=/<= Bool(布爾)類型 在計算機中,一個條件成立與不成立能夠用bool類型來表達 Bool類型值只有2個: 真:true 假:false 邏輯表達式 三個邏輯運算符: &&、||、! 關於表達式:由關係運算符鏈接起來的式子 表達式1&&表達式2:當表達式一、2全爲true時,其表達式的結果爲true 表達式1||表達式2:當表達式一、2有一個爲ture時,其結果爲true !表達式:若是表達式的結果爲true,則去反爲false,反之爲true if If結構的基本語法: If(條件) { 語句塊1;...... } 執行過程: 首先判斷條件的結果,若是條件爲true,則執行語句。若是爲false,則跳過語句塊1。執行後面的語句 PS:if後面括號中的條件要能計算成一個bool類型的值即true/false。if語句只能帶if後面大括號中的代碼 if-else If-slse語法: If(條件) {語句塊1;} Else {語句塊2;} 執行國過程: )若是條件爲true,則執行if帶的語句塊1, 而且跳過else帶的語句塊2 )若是條件爲false,則跳過if帶的語句塊1,執行else帶的語句塊2 )上面的2個語句塊,根據條件結果爲true或false,總要執行一個 if-else if 在if-else if語句中,只有當上一個條件不成立時(即結果爲false),纔會進入下一個if語句並進行if語句後面的條件判斷,一旦有一個if後面的條件爲true, 則執行次if所帶的語句塊,語句塊執行完成後,程序跳出if-else if結構。若是全部的if條件都不成立,最後若是有else則執行else所帶的語句。不然什麼都不執行 switch-case switch-case語法: Switch(表達式/變量) { Case 值1:語句塊1; Break; Case 值2:語句塊2; Break; Default:語句塊3; Break; } 執行過程: )首先計算表達式,而後根據計算結果與匹配case後面的值,若是有匹配項,則執行匹配項後面的語句,直到break語句跳出switch-case。若是全部的case值都不匹配,那麼有default則執行default後面的語句塊,知道break結束,若是沒有default,則跳出switch-case,什麼都不執行 總結分支結構 If-else if和switch的比較: 相同點:均可以實現多分支結構 不一樣點: Switch:通常只能用於等值比較 If-else if:能夠處理範圍 while 特色:先判斷,後執行 |While循環語法: While(循環條件) { 循環體; } 執行過程: )1先判斷循環條件,若是條件爲true,則轉向)2若是條件爲false,則轉向)3; )2執行循環體,循環體執行完成後,轉向)1; )3跳出循環,循環結束 PS:在循環體中,必定要有那麼一句話,改變循環條件中的某個變量的值,使循環條件終有那麼一天爲false do-while 特色:先執行,後判斷 語法: Do { 循環體; } While(循環條件); 執行過程: )1執行循環體,執行完循環體後轉向)2; )2判斷條件是否成立,若是條件爲true,則轉向)1,若是條件爲false,則轉向)3; )3跳出循環,循環結束; While和do-while區別: )1語法不一樣; )2初始值不知足循環條件時 While循環一次都不會執行; Do-while循環會執行一次。 調試 程序調試: )1設置斷點; )2單步運行; )3觀察變量。 for 特色:通常用於已知循環次數的循環 For語法: For(表達式1;表達式2;表達式3) { 循環體; } 執行過程: )1計算表達式1,轉向)2; )2計算表達式2(循環條件),若是表達式2的值爲true轉向)3。若是表達式2的值爲false,轉向)5; )3執行循環體,轉向)4; )4執行表達式3.轉向)2; )5循環結束。 PS:通常狀況下 表達式1:用於定義循環變量和對循環變量賦初值; 表達式2:循環條件; 表達式3:用於改變循環變量的值。 break/continue Break:用於循環中,退出當前循環 )1能夠用於switch-case判斷中,用於跳出switch )2用在循環中,用於當即跳出(終止)循環。 Ps:用於循環中時,跳出的是break所在的循環 Continue:當即本次循環,判斷循環條件,若是成立,則進入下一次循環,不然退出循環。 用於循環中,程序一旦執行到continue語句,當即結束本次循環(就是不在執行循環體中continue下面的語句了),直接進行下一次循環,(do-while、while直接進行下一次循環條件的判斷,若是成立則再次進入循環。對於for循環,先執行表達式3,再判斷循環條件是否成功!) 常量枚舉 常量 語法: Const 類型 常量名=常量值; 在定義時賦值,在其餘地方不容許賦值 枚舉 特色: )1限制用戶不能隨意賦值,只能在定義枚舉時列舉的值中選擇; )2不須要死記每個值是什麼,只須要選擇相應的值。 語法: Enum 本身起的類型名稱(值1,值2,值3...值N); PS:定義枚舉時,值不能是int類型。枚舉的值在定義時均可以強制轉換成一個int類型。枚舉的值在定義時是有一個默認編號的,編號從0開始。 枚舉的定義通常和類定義在同一級別,這樣在同一個命名空間下的全部類就均可以使用這個枚舉了,(方法中、類中均可以)。 如何把一個字符串轉換成枚舉類型: (枚舉名)(enum.parse(typeof(枚舉),「待轉換的字符串」); 結構體 語法: 訪問修飾符 struct 結構名 { 定義的結構成員; } PS:定義好一個結構後,就能夠直接聲明相應的變量了。 聲明好變量後,經過變量名.成員名。來訪問結構的成員 計算機中國最小的單位叫「位」,bit 比特 01011 b 把8個二進制位分紅1組,那麼8個二進制位叫作 字節 Byte b 計算機可以處理的最小單位 1KB=1024B; 1MB=1024KB; 1GB=1024MB; 1TB=1024GB; 數組 特色:能夠幫咱們一次聲明多個同類型的變量,這些變量在內存中是連續儲存的, 語法: 定義數組:數據類型[] 數組名=new 數據類型[數組長度];賦值:數據名[編號]=值; 定義數組時直接賦值:數據類型[] 數組名=new 數據類型[值1,值2,值3,...] 如何訪問數組:經過下標(索引)來訪問數組:數組名[編號]。 經過 數組名.length能夠得到數組的長度 PS:int類型數組一旦聲明,裏面的每個元素被初始化成0 清屏: Console.Clear(); 冒泡排序 讓數組中的元素兩兩比較(第i個和第i+1個比較),通過n(i-1)遍兩兩比較,數組中的元素能按照咱們預期的規律排序 語法: For(int i=0;i<數組名.length-1-i;i++) { For(int j=0;j<數組名.length-1-i;j++) { If(>) { 交換 } } 方法 特色:用來複用代碼的,當咱們在一個程序中反覆的寫一樣的代碼,那通常狀況下,咱們能夠把須要重複寫的代碼定義在一個方法中,用的時候只須要調用就好了。 語法: [訪問修飾符] [static] 返回值類型 方法名() { 方法體; } PS: )1通常狀況下,方法通常要定義在類中; )2若是方法沒有分返回值,返回值類型寫void; )3若是沒有參數,()不能省略; 在方法後面的括號內定義變量,叫作定義這個方法的參數,這裏定義的變量用於接收調用者傳過來的數據。若是一個方法,一旦有參數,那麼調用者就必須傳參數的個數與對應位置上的類型必須一致。 方法命名規則:方法名開頭大寫,參數名開頭小寫,參數,變量名要有意義、 方法的調用:對於靜態方法,若是在同一個類中,直接寫名字調用就能夠了 Retun:能夠當即退出方法 返回值 當調用者想訪問咱們方法中的變量時,能夠經過返回值返回。 只要在方法中返回了值,那麼在調用方法中,前面就應該用一個變量來接收返回值。 一旦一個方法有了返回值,那麼在這個方法值中就必須經過tesutn語句返回一個值,而且這個值要與返回值類型是相同的。 語法:rsturn 值; PS:一個方法只能有一個返回值 參數 在方法名後面的括號內定義變量,叫作定義這個方法的參數,這裏的定義的變量用於接收調用者傳過來的數據。 PS:若是一個方法一旦有參數,那麼調用者就必須傳參數,而且傳參數的個數與對應位置上的類型必須一致 變量的做用域: 在方法中定義稱爲局部變量,其做用域從定義開始,到期所在的大括號結束爲止。 當被調用者想獲得調用者方法中的變量時,則可讓調用者經過參數的形式給被調用者。 [訪問修飾符] [static] 返回值類型 方法名(參數) { 方法體; } out / ref Out用於傳出值,在方法中必須對out修飾的參數進行賦值。 Ref能夠理解成雙向的,既能夠傳入,也能夠傳出。 在傳參數的過程當中,若是參數有out或ref修飾的話,那麼改變方法中的參數變量的值,調用者方法中的變量的值也會相應改變 一個變量必定定義在方法外,類的裏面,就叫作類的字段,這個變量能夠被本類的全部方法所訪問,可是要注意,靜態方法只能訪問靜態字段 由const修飾的常量不能靜態的 什麼叫方法的重載: 通常在同一個類中,方法名相同,而且方法的參數的個數不一樣或者對應位置上的類型不一樣,才能構成方法的重載 PS:方法重載和返回值沒有關係 經過參數來返值: )1在方法的參數類型前加out,那麼傳參數的時候,也必須在調用方法的()裏的參數前加OUT 表示這個參數不是傳入的,而是用來傳出值的; )2若是參數是以out形式傳入的,那麼在傳入前能夠不賦初值; )3在方法中對於由out修飾的參數,必須賦值,而且必須在使用前賦值; 類 類是對象的類型 定義類的語法: [訪問修飾符] class 類名 { 成員; ...... } 在咱們寫的類中先不用加static 如何經過一個類來產生一個對象了: 經過類產生一個對象叫作類的實例化 語法: 類 實例名 =new 類(); 訪問類的屬性:實例名.屬性名 訪問類的方法:實例名.方法名() 只要是沒有加static的方法或屬性,都必須先實例化,在經過實例名.方法名或實例名.屬性來訪問; 加static的方法或屬性,能夠直接經過 類名。方法名活 類名.屬性來訪問 屬性 容許外部訪問的便利必定要聲明爲屬性 什麼叫屬性: 定義一個public的具備get/set方法的變量,這個變量用來保護私有變量的。 讀寫屬性:具備get/set方法的屬性; 只讀屬性:只有get方法的屬性,這個屬性只能讀取,不能寫入; 只寫屬性:這個屬性只能寫,不能寫讀(只寫屬性用的不多)。 在C#中有4個訪問修飾符: Public:能夠在任何地方訪問 Internal:只能在本項目訪問 Private:只能在本類中被訪問 Preotected:只能在本類和子類中訪問 在類這個級別,不寫訪問修飾符默認爲internal 在一個類中定義變量或方法時,沒有寫訪問修飾符,那麼默認的訪問修飾符爲private 構造方法 定義構造方法語法: 構造方法是一個特殊的方法,他的名字和類的名字相同,而且沒有返回值,連void均可以省略不寫,咱們一旦手寫一個構造方法後,系統原先默認給咱們添加的那個無參數的構造方法就再也不爲咱們添加了 Ps:當咱們定義好一個類以後,若是沒有寫構造方法,那麼系統會自動給咱們加上一個默認的沒有參數的構造方法,在這個構造方法中,什麼也不作咱們也看不到。 特色: )1對多個屬性進行賦值時,不須要寫實例名 )2能夠保證用戶在new一個對象的時候必須對某一個屬性進行賦值 )3和第二相似,在建立對象時,對只讀屬性進行初始化 當咱們實例化一個類時,系統會自動對這個類的屬性進行初始化: 數字類型初始化爲:0/0.0 String類型初始化爲:null Char類型初始化爲:\0 要實例化一個類,就必須調用它的構造方法 析構函數 *析構函數: )1不能在結構中定義析構函數。只能對類使用析構函數; )2一個類只能有一個析構函數 )3沒法調用析構函數,他們是被自動調用的 )4析構函數既沒有修飾符,也沒有參數 要想拋一個異常,能夠這樣寫: Throw new exception(「錯誤信息」); 命名空間空間 Namespace(命名空間),用於解決類的重名問題,能夠看做「類的文件夾」。 不在同一個命名空間下的類,不能被直接訪問,要想訪問別的命名空間下的類有兩種方法: )1經過using 引用對方的命名空間 )2寫全稱.命名空間.類名 String類 String能夠看做是char的只讀數組。 C#中字符串有一個重要的特性:不可變性,字符串一旦聲明就再也不能夠改變,因此只能經過索引來讀取指定位置的char,不能對指定位置的char進行修改: Char 變量名=string變量名[1]; 字符串講解 String類經常使用的方法: 比較字符串的方法: Trim():去掉字符串兩端的空白。 tolower():能夠獲得字符串的小寫形式。 Toupper():獲得字符串的大寫形式 Ps:字符串是不可變的,因此這個方法都不會直接改變字符串的內容,而是把修改後的字符串的值經過方法的返回值的形式返回。 Str1.equals(s2.stringcomparison.ordinallgnoercase):兩個字符串進行不區分大小寫的比較 分割字符串的方法: String[] split(params char[] separator):將字符串按照指定的分割符分割爲字符串數組; String [] split(char[] separator,stringsplitoptions):將字符串按照指定的char分割符分割爲字符串數組(options取removeemptyentries的時候移除結果中的空白字符串)。 這些筆記都是之前自學時候整理的,你們也能夠去看看:點擊進入.後面還有ASP.NET基礎,中級,高級教程,你們能夠參考下. http://www.163123.info/linked/20130317.do