版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C#C#根底語法二根底語法二西源軟件培訓中心西源軟件培訓中心回想uHello World程序的根本構造uC#的數(shù)據(jù)類型可以分為:值類型、援用類型。u變量是存放特定數(shù)據(jù)類型的值的容器,而常量也存放特定數(shù)據(jù)類型的值,但常量在整個程序中都堅持一致目的目的u了解裝箱和拆箱的概念u掌握表達式和運算符u掌握操作符u掌握流程控制裝箱和取消裝箱u裝箱是將 值類型轉換為 object 類型或由此值類型實現(xiàn)的任一接口類型的過程。當 CLR 對值類型進展裝箱時,會將該值包裝到 System.Object 內(nèi)部,再將后者存儲在托管堆上。取消裝箱將從對象中提取值類型。裝箱和取消裝箱u裝箱 int i = 123; ob
2、ject o = (object)i; u取消裝箱 o = 123; i = (int)o; 裝箱和取消裝箱的性能 u相對于簡單的賦值而言,裝箱和取消裝箱過程需求進展大量的計算。對值類型進展裝箱時,必需分配并構造一個新對象。次之,取消裝箱所需的強迫轉換也需求進展大量的計算。 u假設必需頻繁地將值類型裝箱,那么最好防止運用值類型,例如在非泛型集合類System.Collections.:.ArrayList中??梢越?jīng)過運用泛型集合例如 System.Collections.Generic.:.List(Of )來防止將值類型裝箱。裝箱和取消裝箱都是需求大量運算的過程。對值類型進展裝箱時,必需創(chuàng)建
3、一個全新的對象。此操作所需時間可比簡單的援用賦值操作長 20 倍。取消裝箱時,強迫轉換過程所需時間可達賦值操作的四倍。裝箱 u裝箱用于在渣滓回收堆中存儲值類型。裝箱是 值類型到 object 類型或到此值類型所實現(xiàn)的任何接口類型的隱式轉換。對值類型裝箱會在堆中分配一個對象實例,并將該值復制到新的對象中。 int i = 123; object o = (object)i; 裝箱u上面哪個例子結果是在堆棧上創(chuàng)建對象援用 o,而在堆上那么援用 int 類型的值。該值是賦給變量 i 的值類型值的一個副本。 裝箱u輸出 int i = 123; object o = i; i = 456; Syste
4、m.Console.WriteLine(“i=, i); System.Console.WriteLine(“o=, o); i=456; o=123; u原始值類型和裝箱的對象運用不同的內(nèi)存位置,因此可以存儲不同的值。 取消裝箱u取消裝箱是從 object 類型到 值類型或從接口類型到實現(xiàn)該接口的值類型的顯式轉換。取消裝箱操作包括: u 1.檢查對象實例,以確保它是給定值類型的裝箱值。 u 2.將該值從實例復制到值類型變量中。表達式u表達式是由一個或多個操作數(shù)以及零個或零個以上的運算符所組成的序列,可以經(jīng)過計算得到一個值、對象、方法或命名空間等結果。表達式可以包含文本值、方法調用、運算符及其
5、操作數(shù),或簡單稱號。簡單稱號可以是變量、類型成員、方法參數(shù)、命名空間或類型的稱號。 u表達式可以運用運算符,而運算符又可以將其他表達式用作參數(shù),或者運用方法調用,而方法調用的參數(shù)又可以是其他方法調用,因此表達式既可以非常簡單,也可以非常復雜。(x 5) | (x 20) & (x 25) System.Convert.ToInt32(35)表達式值u在大部分運用表達式的上下文中,例如在語句或方法參數(shù)中,表達式應計算為某個值。假設 x 和 y 是整數(shù),表達式 x + y 將計算為一個數(shù)值。表達式 new MyClass() 計算為對 MyClass 對象的新實例的援用。表達式 myCla
6、ss.ToString() 計算為一個字符串,由于字符串是該方法的前往類型。然而,雖然命名空間稱號歸類為表達式,但它不計算為值,因此永遠不能作為任何表達式的最終結果。命名空間稱號不能傳送給方法參數(shù),不能用在新表達式中,也不能賦值給變量。命名空間稱號只能用作較大表達式的子表達式。同樣如此的還有類型與 System.:.Type 對象不同、方法組稱號與特定方法不同以及事件 add 和 remove 訪問器。 運算符 u運算符就是表達式中的符號。增增 / 減減算術算術關系關系相等相等條件條件賦值賦值 + -* / % + - = != & | ?: = *= /= %= += -= = &a
7、mp;= = |= 運算符詳解u運算符分:u 1.“一元運算符。u 2. “二元運算符。u 3.算術運算符。u 4.條件運算符。u 5.三元運算符?!耙辉\算符+x-x!xx+x-x(T)x標識標識求反求反邏輯求反邏輯求反按位求反按位求反前遞增前遞增前遞減前遞減將將 x 顯式轉換為類型顯式轉換為類型 T乘法,加法,移位運算符*/%x + yx - y x y 乘法乘法除法除法余數(shù)余數(shù)相加、字符串串聯(lián)、委托相加、字符串串聯(lián)、委托組合組合相減、委托移除相減、委托移除左移左移右移右移關系和類型運算符符x yx = yx is Tx as T小于小于大于大于小于或等于小于或等于大于或等于大于或等于假設
8、假設 x 為為 T,那么前往,那么前往 True;否那么前往;否那么前往 False前往類型為前往類型為 T 的的 x,假設,假設 x 不是不是 T,那么前往,那么前往 null相等,賦值和匿名運算符x = yx != y=x op= y(T x) = y等于等于不等于不等于賦值賦值復合賦值,支持的運算符包括:復合賦值,支持的運算符包括: +=、 -=、 *=、 /=、 %=、 &=、 |=、 !=、 = 匿名函數(shù)匿名函數(shù)lambda 表達式表達式邏輯、條件和 null 運算符x & y x yx | yx & yx | yX ?yx ?: y : z 整型按位整型按位
9、“與,布爾型邏輯與,布爾型邏輯“與與 整型按位整型按位“異或,布爾型邏輯異或,布爾型邏輯“異或異或整型按位整型按位“或,布爾型邏輯或,布爾型邏輯“或或僅當僅當 x 為為 True 時計算時計算 y僅當僅當 x 為為 False 時計算時計算 y假設假設 x 為為 Null 那么計算結果為那么計算結果為 y,否那么計算結果為否那么計算結果為 x假設假設 x 為為 True 那么計算結果為那么計算結果為 y,假設假設 x 為為 False 那么計算結果為那么計算結果為 z 運算符的優(yōu)先級u按照運算符的優(yōu)先級計算表達式。u可以運用圓括號控制運算的順序。u左結合和右結合。u 1.一切二元運算符都是左結
10、合的。 u 2.賦值運算符和條件運算符是右結合的。10 + 20 / 5結果是 14(10 + 20) / 5 結果是 610 + (20 / 5) 結果是 14 可重載運算符uC# 允許用戶定義的類型經(jīng)過運用 operator 關鍵字定義靜態(tài)成員函數(shù)來重載運算符。但不是一切的運算符都可被重載。u比較運算符假設重載必需成對重載;也就是說,假設重載 =,也必需重載 !=??芍剌d運算符運算符可重載性+、 -、 !、 、 +、 -、 true 和 false可以重載這些一元運算符。+、 -、 *、 /、 %、 &、 |、 、 可以重載這些二進制運算符。=、 !=、 、 = 比較運算符可以重載
11、(但請參見本表后面的說明)。 &、 | 條件邏輯運算符不能重載,但可使用能夠重載的 & 和 | 進行計算。不能重載數(shù)組索引運算符,但可定義索引器。()不能重載轉換運算符,但可定義新的轉換運算符+=、 -=、 *=、 /=、 %=、 &=、 |=、 =、 = 賦值運算符不能重載,但 += 可使用 + 計算,等等。 =、 .、 ?:、 -、 new、 is、 sizeof、 typeof 不能重載這些運算符。 可重載運算符u假設要在自定義類中重載運算符,您需求在該類中創(chuàng)建具有正確簽名的方法。該方法必需命名為“operator X,其中 X 是正在重載的運算符的稱號或符號。一
12、元運算符具有一個參數(shù),二元運算符具有兩個參數(shù)。在每種情況下,參數(shù)的類型必需與聲明該運算符的類或構造的類型一樣。public static Complex operator +(Complex c1, Complex c2)操作符u操作符就是特殊的運算符?u括號操作符u 格式u點操作符u 格式 E.I) u 其中E是根本表達式或者預定義類型,I是一個標識符。 C+里除了“.之外還有“: “-,C#里用點操作符來替代。比如一個類T有成員變量M,在C+里用T:M來援用,C#里用T.M來援用。另一點不同的是,C里預定義類型也是從Object類派生出來的,因此也定義了成員變量,比如,I是一個short類
13、型的變量,那么I.ToInt()操作將前往一個Int類型的值。操作符unew操作符操作符u 格式:格式: a、 new 類型類型(參數(shù)列表參數(shù)列表)u b、new 數(shù)組類型初始化列表數(shù)組類型初始化列表u c、new 代表類型表達式代表類型表達式utypeof操作符操作符u 該操作前往一個類型對應的該操作前往一個類型對應的system.type,如:如:u typeof(int); typeof(System.Int32); typeof(string);u 各自的結果為各自的結果為int32,int32,string。typeof只對只對類型操作,不能對變量操作,例如,類型操作,不能對變量操作
14、,例如,“int I;typeof(I);是不合法的。;是不合法的。操作符usizeof操作符u 該操作可獲得一個類型所占用的空間大小,以字節(jié)為單位。該操作符用在unsafe模塊中,如u Unsafeu S=sizeof(int);u u 或者在調用該操作符的函數(shù)中運用該前綴。流程控制u程序所執(zhí)行的操作以“語句表達。u常見操作包括聲明變量、賦值、調用方法、循環(huán)訪問集合,以及根據(jù)給定條件分支到一個或另一個代碼塊。u語句在程序中的執(zhí)行順序稱為“控制流或“執(zhí)行流。根據(jù)程序對運轉時所收到的輸入的呼應,在程序每次運轉時控制流能夠有所不同。uC#的控制語句分為兩個主要部分:選擇語句和循環(huán)語句。選擇語句u選
15、擇語句可以根據(jù)布爾表達式的值,有選擇性的執(zhí)行程序的某一部分。u在C# 中的條件語句有 if 和 switch 兩種u if 適宜兩個分支判別。u switch 適宜多個分支判別。 IF語句uIf語句是最先且最常用到的語句,內(nèi)含語句能否被執(zhí)行取決于布爾表達式;u語法:if ( 布爾表達式 ) 語句塊1;else 語句塊2;uelse 部分可選uif else 可以嵌套IF語句u例如:if ( sales 10000 ) bonus = 0.05 * sales;else bonus = 0;u運算符?:是 if else 語句的縮略方式 bonus = (sales1000)? (0.05 *
16、sales):0;Switch語句uSwitch語句和if語句相比, Switch語句有一個控制表達式,而且內(nèi)含語句按它們所關聯(lián)的控制表達式的常量運轉。u語法:switch 控制表達式 case value1 : 語句; break; case value2 : 語句; break; default: 語句; break; Switch語句uSwitch語句中的控制表達式所允許的數(shù)據(jù)類型為:sbyte,byte,short,ushort,uint,u ulong,char,string或者枚舉類型,只需使其它不同數(shù)據(jù)類型能隱式的轉換成上述任何類型,用它做控制表達式都可以。Switch語句uSw
17、itch語句按如下順序執(zhí)行:u 1.控制表達式求值u 2.假設case標簽后的常量表達式符合控制語句所求出的值,內(nèi)含語句被執(zhí)行。u 3.假設沒有常量表達式符合控制語句,在default標簽內(nèi)的內(nèi)含語句被執(zhí)行。u 4.假設沒有一個符合case標簽,且沒有default標簽,控制轉向switch語段的終了端。u 5.可以在swtich語句中運用goto標簽和goto defaultSwitch語句u例如:switch (nRndNumber) case 1:/什么也不做 break; case 2: goto case 3; case 3: Console.WriteLine(Handler fo
18、r 2 and 3); break; case 4: goto default;/ everything beyond a goto will be warned as/ unreachable code default: Console.WriteLine(Random number 0, nRndNumber);循環(huán)語句u循環(huán)語句當需求反復執(zhí)行某些語句段的時候,根據(jù)當前不同的義務,C#提供4個不同的循環(huán)語句選擇供他運用。u 1.For語句.u 2.Foreach語句.u 3.While語句.u 4.Do語句.For語句uFor語句u 當他預先知道一個內(nèi)含語句要執(zhí)行多少次的時候,運用For語
19、句特別有用。u 常規(guī)語法允許反復地執(zhí)行內(nèi)含語句(和循環(huán)表達式):u For(初試化;條件;循環(huán)) 內(nèi)含語句 u 注:初試化,條件和循環(huán)是可選的。假設忽略了條件,他能夠就產(chǎn)生了一個死循環(huán),要用到跳轉語句(break或goto)才干退出。For語句u先執(zhí)行初始化表達式,此部分只執(zhí)行一次。u判別條件表達式,假設滿足條件那么執(zhí)行循環(huán)體;否那么跳出for 循環(huán)。u每次循環(huán)語句執(zhí)行完后要執(zhí)行一次迭代,并重新判別循環(huán)條件。u例如:for (int i = 0; i 0; j -= 10 ) Console.WriteLine(j = 0, j);Break, continue ,goto, returnub
20、reak語句u break語句用于跳出和終止整個循環(huán)。ucontinue語句u 終止當次循環(huán),開場下一次迭代和循環(huán)并不終止整個循環(huán)。ugoto語句u goto語句用于將控制權傳送給由標號闡明的語句。ureturn語句u Return語句將控制權前往給包含該return語句的函數(shù)成員的調用程序。Foreach語句uForeach語句曾經(jīng)在在語句曾經(jīng)在在VB中存在很久的一個中存在很久的一個功能是經(jīng)過運用功能是經(jīng)過運用FOR Each語句搜集枚舉。語句搜集枚舉。C#經(jīng)過經(jīng)過foreach語句語句,也有一個用來搜集枚舉的命也有一個用來搜集枚舉的命令令:u foreach(表達式中的類型標識符表達式中的
21、類型標識符)內(nèi)含語句內(nèi)含語句循環(huán)變量有類型和標識符聲明循環(huán)變量有類型和標識符聲明,且表達式與搜且表達式與搜集相對應。循環(huán)變量代表循環(huán)正在為之運轉的集相對應。循環(huán)變量代表循環(huán)正在為之運轉的搜集元素。搜集元素。Foreach語句uforeach語句允許我們延續(xù)訪問數(shù)組中的每一個元素。u例如:foreach (int i in arr) if (i%2=0) even+; else odd+; While(條件條件)內(nèi)含語句內(nèi)含語句uWhile(條件)內(nèi)含語句。u 條件語句-它也是一個布爾表達式-控制內(nèi)含語句被執(zhí)行的次數(shù)。他可以運用break和continue語句來控制while語句中執(zhí)行語句,它的運轉方式同在for語句中的完全一樣。While(條件條件)內(nèi)含語句內(nèi)含語句u當不知道循環(huán)執(zhí)行的次數(shù)時,可以運用while 。u例如:while ( command != “Exi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度幕墻施工材料運輸與倉儲合同4篇
- 2025年度企業(yè)債券發(fā)行承銷服務合同規(guī)范文本3篇
- 二零二五年度出租車司機勞動合同及職業(yè)規(guī)劃合同4篇
- 二手車買賣合同:2024專用版版B版
- 二零二五年度體育賽事組織打字員賽事資料合同2篇
- 2025版專業(yè)技術人員培訓服務標準合同
- 二零二五年度虛擬現(xiàn)實年薪制合同2篇
- 二零二五版互聯(lián)網(wǎng)直播內(nèi)容審核及分成合同4篇
- 防火排煙系統(tǒng)的設計與應用
- 二零二五版木工行業(yè)電子商務平臺建設與合作合同3篇
- 垃圾車駕駛員聘用合同
- 2024年大宗貿(mào)易合作共贏協(xié)議書模板
- 新聞記者證600道考試題-附標準答案
- 變壓器搬遷施工方案
- 單位轉賬個人合同模板
- 八年級語文下冊 成語故事 第十五課 諱疾忌醫(yī) 第六課時 口語交際教案 新教版(漢語)
- 中考語文二輪復習:記敘文閱讀物象的作用(含練習題及答案)
- 2024年1月高考適應性測試“九省聯(lián)考”數(shù)學 試題(學生版+解析版)
- (正式版)JBT 11270-2024 立體倉庫組合式鋼結構貨架技術規(guī)范
- EPC項目采購階段質量保證措施
- T-NAHIEM 101-2023 急診科建設與設備配置標準
評論
0/150
提交評論