.NET 能夠幹什麼呢?android
一、桌面應用程序 (WinForm )編程
二、internet 應用程序(asp.net)數組
三、手機應用開發(wp7)好像如今C#也能開發android應用了asp.net
如今主要有兩個方向C/S和B/S,各有千秋,並且有向B/S移植的趨勢。函數
.NET平臺上集成了多種語言,只要符合CLS的語言開發的應用均可以在該平臺上運行。學習
如今C#是微軟官方推薦的平臺開發語言,他能把.NET的效果發揮到極致。spa
關於.NET的有關介紹,在這裏就不在贅述。。。。。。。如今只是把我這段時間以來的學習總結一下和你們分享。請大牛指正。.net
1、關於C#學習筆記指針
C#中常見的j簡單數據類型有int char double bool string decimal.等等調試
在使用變量的時候的三種方法有:先申明再賦值,定義變量時直接賦值,一次定義多個同類型變量個變量之間用,隔開以;結束。再分別賦值
變量命名規則
●變量名必須以字母開頭
●變量名只能由字母、數字和下劃線組成,而不能包含空格、標點符號、運算符等其它符號。
●變量名不能與C#中的關鍵字名稱相同。
●變量名不能與C#中的庫函數名稱相同。
但在C#中有一點是例外,那就是容許在變量名前加前綴「@」。在這種狀況下,咱們就可使用前綴「@」加上關鍵字做爲變量的名稱。這主要是爲了與其餘語言進行交互時避免衝突。由於前綴「@」實際上並非名稱的一部分,其它的編程語言就會把它做爲一個普通的變量名。在其它狀況下,咱們不推薦使用前綴「@」做爲變量名的一部分。
運算符
鏈接符+兩邊參與運算的數據類型爲數字則表示數學上的加法,兩邊參與運算的數據有一個是字符類型那麼他表示鏈接的意義
1)算術運算符:+ - *(乘) % (取餘)/(除法) 他們都是二元運算符 要求參與操做的的數據類型必須同樣而且運算結果與操做數類型同樣
2)在算術表達式中改變運算順序正使用小括號
複合運算符
+= - = /= *=
關係運算符
< > ==(相等比較)>= <= !=
邏輯運算符
&&與 ||或 !(非,用於bool型)
&& 和||的短路問題: &&鏈接的表達式第一個錯誤將不計算第二個, || 鏈接的表達式第一個正確將不計算第二個
轉義字符
當咱們須要在字符串中輸入一些特殊字符時,好比半角引號,換行,退格就須要轉義字符。
轉義字符是一個字符,它由 \+一個字母來組成具備特殊意義的
\n換行 \b backspack 退格 \t tab 有多個空格組成有行與行對齊的功能
\\表示一個\第一個爲轉義符,第二個爲特殊字符
@功能
在字符串前面加一個@有兩種意義
1) 字符串中若是\,則再也不理解爲轉義字符。
2) 是字符串能夠換行
3) 在字符串前面加一個@,則字符串中用兩個「」表示一個「
自增自減
++ -- 有前自加後自加 前自減後自減
Int age= 18 ; int sum=age ++ -10;此代碼age是後加。因此在運算時,age++取age原值參與運算,因此sum=8;
Int age =18; int sum =++age -10;此代碼age是前自加,因此在運算時++age先取通過運算後的值19在參與新運算因此sum= 9。
總之,不論是++age仍是age++,通過運算後,age的值都進行了+1 運算
C#中通常狀況下一元運算符的優先級大於二元運算符的優先級
C# 中的數據類型
C#中全部的類型按照存儲方式分爲兩類:值類型,引用類型。C#數據類型包括:值類型(簡單類型、結構類型、枚舉類型),引用類型(類類型、數組類型、接口類型、委託類型 字符串類型string ),指針類型。
值類型的變量包含的是數據自己,而引用變量包含的是一個地址,這個地址指向包含實際數據的內存。值類型變量通常存儲在堆棧中,而引用類型的變量通常存儲在託管堆中。對於引用類型的變量要注意區分變量自己和變量所引用的對象。下面的代碼定義了一個值類型的變量和引用類型的變量: int i=6; Form form1=new Form();
注意:可空(Null)引用類型、自定義類型、string、大部分類都是。
不可空的:值類型。Int double long bool decimal DateTime等。Int ? 就變爲可空的int類型
匿名類型: var news= new {Title=」asda」,Msg=」dfdf」 }
常量
語法:const 類型 常量名 = 常量值;
Const double PI= 3.14;
只能在定義時 賦值,在其餘地方不容許賦值。
枚舉:
讓咱們定義一種枚舉類型而且在定義這種類型時咱們要指定這個類型全部的值。
語法:enum 本身起的類型名稱 { 該類型全部的值列出用逗號隔開};
枚舉的定義,通常和類定義在同一個級別。這樣,在同一個命名空間下的全部類型就均可以使用這個枚舉了。(方法中或類中都能定義)。
枚舉的做用:
1 限制用戶不能隨意賦值,只能在定義枚舉時列舉的值中選擇。
2 不須要死記每個值是什麼,只須要選擇相應的值。
注意:定義枚舉時值不能是int類型!
枚舉類型的變量是有默認編號的能夠強制轉換成int類型,第一量默認爲0,後面依次加1,也能夠把第一個枚舉量賦值爲其餘整數
能夠把字符串轉換成定義的枚舉類型 語法爲 (本身定義的枚舉的類型名)(Enum..Parse(typeof(自枚舉類型名),待轉字符串);
結構
1) 好比咱們上課講的爲了存儲一我的的信息,要申明一組變量。當咱們要存儲N我的的信息時,就要申明N組變量,麻煩。
2) 存儲一我的的信息的這幾個變量沒有關係,容易記錯。
語法:
訪問修飾符 struct 結構名{定義結構成員}(訪問修飾符爲public private protect等)
注意定義一個結構後,就能夠直接聲明相應的變量了。聲明好變量後,經過變量名.成員名 來訪問結構成員
數組
1 數組:能夠幫咱們一次聲明多個同類型的變量,這些變量在內存中是連續存儲的。
2 語法 :數據類型 [ ] 數組名 = new 類型 [數組長度]; string [] names = {"zhang san ","lisi ","wangwu "};聲明字符串數組
// int [] score = new int [5];//聲明瞭一個長度爲5的數組,名爲score ;通俗的說就是聲明瞭一個數組,裏面包含5個int 類型的變量,數組名叫score 裏面的5個int 類型的變量叫作數組的元素。
3 如何訪問數組:經過下標來訪問數組。 數組名 [編號] 向第0個元素賦值3. score[0] = 3
Int 類型數組一旦聲明裏面的元素默認初始化爲0.
數組元素的下標從0 開始
經過 數組名.length 能夠得到數組長度。 Console. Clear();能夠用來清屏。
保存多個值,幾乎任意類型均可以聲明數組。
兩種聲明方法 Int [ ] nums =new int [3] int [ ] nums ={3,5,8}
Int [ ] nums = new int [3]{3,5,7} 個數和聲明數必須一致
Int [ ] nums = new int [5]{1,2,3}是錯的
Int [ ] nums = new int [] {5,3,6}是正確的,能夠省略數組元素個數
N個元素互換 交換N/2次
自動轉化(隱式轉化)與強制轉化
Double 範圍比decimal廣,但精度比他小,二者不能相互轉化。
參與運算(算術運算和賦值運算)的操做數和結果類型必須一致 double a =10/3; 結果爲3
在自動轉化中,轉化是不會丟失精度的,若是丟失精度那麼這個轉化確定不會自動執行
常常見到的就是,參與運算的兩個操做數一個是int 另外一個是double 那麼int 類型會自動轉換成double類型。
Double pi=3.14; int i=(int)pi;把double類型強制轉換成int類型。( Int a=9.14 ;是錯的)
String age =(int ) console.readline(); int a = (int)」33」;是錯誤的;由於強制類型轉換要求待轉換的類型和目標類型必須都爲數字。
Int 變量= Convert.ToInt32(待轉字符串);上面語句的意義是把待轉換的字符串轉換成int類型後賦給變量
String a =」3」; int c = convert. toint32(a);並無把a 的值改變 ,而是把字符串轉化爲int型賦給 c.
Convert.tostring()
Int a = int .parse (string );把字符串轉換成整形。注意若是轉化失敗就會出錯,用Try catch捕獲建議用int.tryparse()
C#中異常捕獲如何完成
Try
{有可能出現錯誤的代碼寫在這裏
}
Catch{出錯後的處理
catch塊能夠同時有不少(如上)可是隻能捕獲與catch內捕獲類型一致的異常,好比catch(int nError)只能捕獲int型異常,catch(CMyexception &Error)只能捕獲CMyexception型異常在有多個Catch時捕獲的異常類型從精確到普遍的Exception
catch 子句使用時能夠不帶任何參數,這種狀況下它捕獲任何類型的異常,並被稱爲通常 catch 子句。它還能夠接受從 System.Exception 派生的對象參數,全部的異常鬥毆纔可以該類繼承
在同一個 try-catch 語句中可使用一個以上的特定 catch 子句。這種狀況下 catch 子句的順序很重要,由於會按順序檢查 catch 子句。將先捕獲特定程度較高的異常,而不是特定程度較小的異常。
}
finally
{
//無論什麼狀況都會執行,包括try catch 裏面用了return ,能夠理解爲只要執行了try或者catch,就必定會執行 finally
}
程序這樣執行:若是try中的代碼沒有出錯,則程序正常運行try中的內容後不會執行catch中的內容。若是try中的代碼一旦出錯程序當即跳入catch中執行,try後面的代碼再也不執行
If結構
If(條件){語句;}
首先判斷條件的結果;若是條件爲true,則執行語句,若是爲false 則跳過語句,執行後面的語句。If後的括號中藥能計算成bool型
If else及結構
If(表達式)
{語句1;}
Else
{語句2;}
if()
{}
else if()
{
}
else if()
{
}
else
{
}//從if開始判斷只要有一個知足條件就跳出語句體若是都不符合就執行else語句
Switch 的結構
Switch ( 表達式)
{
Case 值1: 語句塊1;break;
Case 值2: 語句塊2;break;
Case 值3: 語句塊 3; break;
Default : 語句塊 4;break;
}
首先計算表達式的值,而後比較case後面的值,與case的順序無關,也與default的位置無關。若有匹配項,則執行匹配項, 直到break跳出switch。若是沒有匹配項執行default 到break跳出 switch語句。
While 循環
While(條件表達式)
{
語句體;(循環體變量改變)
}
先執行,再判斷
Do { 循環體;}
While(條件);
執行過程,1 執行循環體,執行完循環體轉向2,
2 判斷條件是否成立,若是條件爲true,則轉向1,若是條件爲false,則轉向3
3 跳出循環,循環結束
FOR循環
語法:
For (表達式1; 表達式2 ;表達式 3 )
{循環體 ;}
For 循環用於已知循環次數的循環。
通常狀況下表達式1 用於定義循環變量和對循環變量賦初始值
表達式2 是循環條件
表達式3 用於改變循環變量的值
執行過程:
第1步 :計算表達式1 ,轉向第2步。
第2步 : 計算表達式2(循環條件),若是表達式2的值爲true轉向第3步;若是爲false,轉向第5步 。
第3步 : 執行循環體,轉向第4 步。
第4步 : 執行表達式3, 轉向第2 步。
第5 步: 循環結束。
Break 用於循環 來結束所在循環能夠用於switch case中 跳出switch
Continue 用於while 循環 當即結束本次循環(continue後的程序不在執行,判斷循環條件,若是成立則進行下一次循環,不然結束循環.。
對於for循環,到達continue後直接執行表達式3 ,在判斷循環條件是否成立。
輸入輸出函數
佔位符{數字}的使用!佔位符有{數字}組成,數字有0 開始編號{0}{1}{2}編號與後面的參數對應。編號小於參數的個數
console.WriteLine();有多個參數,輸出時.輸出的都是第一個參數中的內容. 從第二個參數開始都是用來替換第一個參數中的佔位符.的值,因此從第二個開始要不要輸出,就要看第一個參數中有沒有相關的佔位符。
Console.ReadLine();用於讓用戶在鍵盤上輸入一句話,當程序執行到下面一句話就會暫停而後等待用戶從鍵盤上輸入一句話按回車鍵將繼續執行
Console.readline凡是用戶輸入的東西都安字符串來進行接收
String input= Console.ReadLine();
三元表達式
表達式1 ?表達式 2: 表達式3
執行過程:首先計算表達式 1 ,表達式1 應該是一個可以計算成bool類型的值,若是表達式1的值爲true,則表達式2的值做爲整個表達式的值,若是表達式1 的值爲false,則表達式3,的值做爲整個表達式的值
表達式2 和表達式3 的值類型要兼容
程序調試
設置斷點
單步運行(按 F10 或F11逐句執行)監視、判斷正確與否
觀察變量