版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第1章章 C#與與NET平臺(tái)介紹平臺(tái)介紹本章目標(biāo)本章目標(biāo)了解了解.NET Framework 的結(jié)構(gòu)的結(jié)構(gòu)理解理解.NET Framework 的基本概念的基本概念CLRJITCTSMSIL了解了解 .NET Framework 命名空間命名空間了解了解C#程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)1 C#語(yǔ)言的由來(lái)語(yǔ)言的由來(lái)在過(guò)去的二十年里,C和C+已經(jīng)成為在商業(yè)軟件的開(kāi)發(fā)領(lǐng)域中使用最廣泛的語(yǔ)言。它們?yōu)槌绦騿T提供了十分靈活的操作,不過(guò)同時(shí)也犧牲了一定的開(kāi)發(fā)效率。與VB等語(yǔ)言相比,同等級(jí)別的C/C+應(yīng)用程序往往需要更長(zhǎng)時(shí)間來(lái)開(kāi)發(fā)。由于C/C+語(yǔ)言的復(fù)雜性,許多程序員都試圖尋找一種新的語(yǔ)言,希望能在功能與效
2、率之間找到一個(gè)更為理想的權(quán)衡點(diǎn)。VB以犧牲靈活性的代價(jià)來(lái)提高效率。可是這些靈活性正是C/C+程序員所需要的。這些解決方案對(duì)編程人員的限制過(guò)多(如屏蔽一些底層代碼控制的機(jī)制),所提供的功能難以令人滿意。這些語(yǔ)言無(wú)法方便地同早先的系統(tǒng)交互,也無(wú)法很好地和當(dāng)前的網(wǎng)絡(luò)編程相結(jié)合。對(duì)于C/C+用戶來(lái)說(shuō),最理想的解決方案無(wú)疑是在快速開(kāi)發(fā)的同時(shí)又可以調(diào)用底層平臺(tái)的所有功能。他們想要一種和最新的網(wǎng)絡(luò)標(biāo)準(zhǔn)保持同步并且能和已有的應(yīng)用程序良好整合的環(huán)境。另外,一些C/C+開(kāi)發(fā)人員還需要在必要的時(shí)候進(jìn)行一些底層的編程。C# (C sharp) 是對(duì)這一問(wèn)題的解決方案。C#是一種新的、面向?qū)ο蟮木幊陶Z(yǔ)言。它使得程序員可
3、以快速地編寫(xiě)各種基于Microsoft .NET平臺(tái)的應(yīng)用程序,Microsoft .NET提供了一系列的工具和服務(wù)來(lái)最大程度地開(kāi)發(fā)利用計(jì)算與通訊領(lǐng)域。 C#語(yǔ)言的特點(diǎn):C#語(yǔ)言是Microsoft發(fā)布的一種全新的編程語(yǔ)言,是其.Net戰(zhàn)略的一枚重要棋子。C#語(yǔ)言是面向?qū)ο蟮?、現(xiàn)代的編程語(yǔ)言,用C#編寫(xiě)的應(yīng)用程序可以充分利用.Net的框架體系帶來(lái)的優(yōu)點(diǎn).既可以用來(lái)編寫(xiě)基于通用網(wǎng)絡(luò)協(xié)議的Internet服務(wù)軟件,也可以編寫(xiě)各種數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)服務(wù)應(yīng)用程序和Windows窗口界面程序。C#繼承了C/C+的優(yōu)點(diǎn)和靈活性,能夠充分利用OS系統(tǒng)的底層功能,同時(shí)又具備了完全的面向?qū)ο筇匦???梢宰尦鯇W(xué)者直接了解
4、面向?qū)ο缶幊痰母鞣N概念,學(xué)習(xí)現(xiàn)代的編程思想和手段。代碼代碼被執(zhí)行被執(zhí)行C+VB編譯器編譯器編譯器編譯器可執(zhí)行可執(zhí)行代碼代碼可執(zhí)行可執(zhí)行代碼代碼RUNTIMERUNTIME2 .NET代碼的編譯代碼的編譯語(yǔ)言特定的編譯器和運(yùn)行庫(kù)語(yǔ)言特定的編譯器和運(yùn)行庫(kù)代碼代碼被執(zhí)行被執(zhí)行C+VB編譯器編譯器編譯器編譯器可執(zhí)行可執(zhí)行代碼代碼可執(zhí)行可執(zhí)行代碼代碼RUNTIMERUNTIMEIL+元數(shù)據(jù)CLRIL 和和 CLR 的使用的使用Intermediate LanguageCommon Language Runtime編譯執(zhí)行 .NET 程序MSIL+元數(shù)據(jù)元數(shù)據(jù)機(jī)器機(jī)器代碼代碼代碼代碼被執(zhí)行被執(zhí)行CLR第一
5、次編譯第一次編譯第二次編譯第二次編譯.NET 程序被編譯兩次,第一次編譯很慢,而第二次程序被編譯兩次,第一次編譯很慢,而第二次編譯較快!編譯較快!語(yǔ)言語(yǔ)言編譯器編譯器.NET 源代碼源代碼Microsoft 中間語(yǔ)言中間語(yǔ)言MSIL+元數(shù)據(jù)機(jī)器代碼代碼 被執(zhí)行CLRMSIL幫助語(yǔ)言實(shí)現(xiàn)互操作IL 不是字節(jié)代碼,但很接近字節(jié)代碼。因此,執(zhí)行應(yīng)用程序時(shí),IL 到機(jī)器碼的轉(zhuǎn)換速度非???!通過(guò) CLR將 MSIL 轉(zhuǎn)換為具體 CPU 的代碼CPU 無(wú)關(guān)的指令集語(yǔ)言語(yǔ)言編譯器編譯器.NET 源代碼程序集程序集moduleILIL語(yǔ)言范例語(yǔ)言范例 IL_0000: nop IL_0001: call IL
6、_0006: nop IL_0007: ldc.i4.0 IL_0008: call IL_000d: nop IL_000e: ldnull IL_000f: ldftn IL_0015: newobj IL_001a: call IL_001f: nop IL_0020: newobj IL_0025: call IL_002a: nop IL_002b: newobj IL_0030: throw通用語(yǔ)言運(yùn)行時(shí)通用語(yǔ)言運(yùn)行時(shí)CLRCLR.NET 源代碼MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行管理內(nèi)存易于設(shè)計(jì)組件和應(yīng)用程序,其對(duì)象可以跨語(yǔ)言互動(dòng)跨語(yǔ)言集成(特別是跨語(yǔ)言繼承)JIT 編譯器:一次編
7、譯,就可運(yùn)行在支持運(yùn)行庫(kù)的任何 CPU 和操作系統(tǒng)上語(yǔ)言語(yǔ)言編譯器編譯器.NET的語(yǔ)言互操作性:的語(yǔ)言互操作性:不同語(yǔ)言編寫(xiě)的代碼可互相調(diào)用不同語(yǔ)言編寫(xiě)的代碼可互相調(diào)用C#的平臺(tái)移植性:的平臺(tái)移植性:框架框架JIT編譯器編譯器(Just In Time, 即時(shí)編譯器即時(shí)編譯器)3 .NET Framework 簡(jiǎn)介簡(jiǎn)介.NET Framework類(lèi)似于類(lèi)似于JVM.NET Framework 兩個(gè)主要組件:兩個(gè)主要組件:通用語(yǔ)言運(yùn)行時(shí)通用語(yǔ)言運(yùn)行時(shí) (CLR)統(tǒng)一的類(lèi)庫(kù)集統(tǒng)一的類(lèi)庫(kù)集.NET的類(lèi)庫(kù)的類(lèi)庫(kù):線程線程文件輸入文件輸入/輸出輸出 (I/O)數(shù)據(jù)庫(kù)支持?jǐn)?shù)據(jù)庫(kù)支持XML 解析解析數(shù)據(jù)結(jié)構(gòu)
8、數(shù)據(jù)結(jié)構(gòu).NET Framework 的體系結(jié)構(gòu)通用語(yǔ)言運(yùn)行時(shí)通用語(yǔ)言運(yùn)行時(shí) (CLR)IO, Drawing, Threading操作系統(tǒng)操作系統(tǒng).Net Framework 類(lèi)類(lèi)庫(kù)庫(kù) (FCL)CLS和和CTS通用語(yǔ)言規(guī)范通用語(yǔ)言規(guī)范 CLS Common Language Specification規(guī)定所有規(guī)定所有 .NET 語(yǔ)言都應(yīng)語(yǔ)言都應(yīng)遵循的規(guī)則遵循的規(guī)則生成可與其他語(yǔ)言互操作生成可與其他語(yǔ)言互操作的應(yīng)用程序的應(yīng)用程序通用類(lèi)型系統(tǒng)通用類(lèi)型系統(tǒng) (Common Type System, CTS) 包含標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型包含標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型 包含準(zhǔn)則集包含準(zhǔn)則集CLS、CTS 和和 MSIL 緊
9、密配合以實(shí)現(xiàn)語(yǔ)言互操作性緊密配合以實(shí)現(xiàn)語(yǔ)言互操作性命名空間就像在文件系統(tǒng)中一個(gè)文件夾容納多命名空間就像在文件系統(tǒng)中一個(gè)文件夾容納多個(gè)文件一樣,可以看作某些類(lèi)的一個(gè)容器。通個(gè)文件一樣,可以看作某些類(lèi)的一個(gè)容器。通過(guò)把類(lèi)放入命名空間可以把相關(guān)的類(lèi)組織起來(lái),過(guò)把類(lèi)放入命名空間可以把相關(guān)的類(lèi)組織起來(lái),并且可以避免命名沖突。命名空間既用作程序并且可以避免命名沖突。命名空間既用作程序的的“內(nèi)部?jī)?nèi)部”組織系統(tǒng),也用作組織系統(tǒng),也用作“外部外部”組織系組織系統(tǒng)(一種向其他程序公開(kāi)自己擁有的程序元素統(tǒng)(一種向其他程序公開(kāi)自己擁有的程序元素的方法)的方法)使用命名空間:使用命名空間:using類(lèi)似類(lèi)似#inclu
10、de4 命名空間1.Hclass A 2.Hclass A 3.cpp#include “1.h”#include “2.h”.3.cppclass A class A namespace a1class A namespace a2class A 3.csusing a1;using a2;a1.Aa2.A常用命名空間常用命名空間命名空間命名空間說(shuō)明說(shuō)明System.Drawing 處理圖形和繪圖,包括打印處理圖形和繪圖,包括打印 System.Data 處理數(shù)據(jù)存取和管理,在定義處理數(shù)據(jù)存取和管理,在定義 ADO.NET 技術(shù)中扮技術(shù)中扮演重要角色演重要角色System.IO 管理對(duì)文件和
11、流的同步和異步訪問(wèn)管理對(duì)文件和流的同步和異步訪問(wèn)System.Windows 處理基于窗體的窗口的創(chuàng)建處理基于窗體的窗口的創(chuàng)建System.Reflection 包含從程序集讀取元數(shù)據(jù)的類(lèi)包含從程序集讀取元數(shù)據(jù)的類(lèi)System.Threading 包含用于多線程編程的類(lèi)包含用于多線程編程的類(lèi) System.Collections 包含定義各種對(duì)象集的接口和類(lèi)包含定義各種對(duì)象集的接口和類(lèi)5 創(chuàng)建創(chuàng)建“Hello World”應(yīng)用程序應(yīng)用程序單擊單擊“開(kāi)始開(kāi)始”“程序程序”“Microsoft Visual Studio .NET 2005”“Microsoft Visual Studio .NE
12、T 2005”此時(shí)將打開(kāi)此時(shí)將打開(kāi) VS.NET 2005 的起始頁(yè)的起始頁(yè)要?jiǎng)?chuàng)建要?jiǎng)?chuàng)建 C# 控制臺(tái)應(yīng)用程序,請(qǐng)從列表中選擇控制臺(tái)應(yīng)用程序,請(qǐng)從列表中選擇 “創(chuàng)創(chuàng)建建建建”“項(xiàng)目項(xiàng)目”。此時(shí)將打開(kāi)。此時(shí)將打開(kāi)“新建項(xiàng)目新建項(xiàng)目”窗口窗口選擇選擇“Visual C# 項(xiàng)目項(xiàng)目”作為項(xiàng)目類(lèi)型,選擇作為項(xiàng)目類(lèi)型,選擇“控控制臺(tái)應(yīng)用程序制臺(tái)應(yīng)用程序”作為模板作為模板 C# 模板模板Console.WriteLine(Hello World);輸出輸出HelloWorld.csprojAssemblyInfo.csProgram.cs“Hello World”應(yīng)用程序文件應(yīng)用程序文件編譯和執(zhí)行編譯和執(zhí)
13、行 C# 應(yīng)用程序應(yīng)用程序要生成要生成 C# 項(xiàng)目,請(qǐng)從菜單中選擇項(xiàng)目,請(qǐng)從菜單中選擇“生成生成” “生成解決方案生成解決方案”該過(guò)程將編譯項(xiàng)目中包括的所有文件,編譯結(jié)該過(guò)程將編譯項(xiàng)目中包括的所有文件,編譯結(jié)果顯示在果顯示在“輸出輸出”窗口中窗口中 如果結(jié)果顯示如果結(jié)果顯示“生成生成: 1 成功或最新,成功或最新,0失敗,失敗,0被跳過(guò)被跳過(guò)”,則說(shuō)明已經(jīng)成功生成,然后即可交,則說(shuō)明已經(jīng)成功生成,然后即可交付該應(yīng)用程序付該應(yīng)用程序要運(yùn)行剛才生成的應(yīng)用程序,請(qǐng)從菜單中選要運(yùn)行剛才生成的應(yīng)用程序,請(qǐng)從菜單中選擇擇“調(diào)試調(diào)試”“開(kāi)始執(zhí)行開(kāi)始執(zhí)行(不調(diào)試不調(diào)試)”輸出結(jié)果顯示在輸出結(jié)果顯示在 VS.N
14、ET 控制臺(tái)窗口中控制臺(tái)窗口中C# 應(yīng)用程序文件夾結(jié)構(gòu)應(yīng)用程序文件夾結(jié)構(gòu)Visual Studio .NET 2005 創(chuàng)建一個(gè)與項(xiàng)目同名的文創(chuàng)建一個(gè)與項(xiàng)目同名的文件夾,此處為件夾,此處為“HelloWorld” 該文件夾包含項(xiàng)目文件該文件夾包含項(xiàng)目文件“HelloWorld.csproj”和其和其他關(guān)聯(lián)文件他關(guān)聯(lián)文件 每個(gè)新項(xiàng)目都創(chuàng)建了每個(gè)新項(xiàng)目都創(chuàng)建了 bin、obj和和Properties 三個(gè)文三個(gè)文件夾。件夾。 Bin和和obj這兩個(gè)文件夾下都有一個(gè)這兩個(gè)文件夾下都有一個(gè) Debug 子目錄,其子目錄,其中包含可執(zhí)行文件中包含可執(zhí)行文件 HelloWorld.exe 在在“解決方案資
15、源管理器解決方案資源管理器”中啟用中啟用“顯示所有文件顯示所有文件”選選項(xiàng),可查看項(xiàng),可查看“HelloWorld”項(xiàng)目的結(jié)構(gòu)項(xiàng)目的結(jié)構(gòu) /這是用這是用 C# 編寫(xiě)的一個(gè)簡(jiǎn)單的編寫(xiě)的一個(gè)簡(jiǎn)單的 HelloWorld 程序程序using System;namespace Notepadclass HelloWorldstatic void Main()Console.WriteLine(Hello World);聲明 HelloWorld 類(lèi)描述代碼的注釋Hello World 程序程序程序入口點(diǎn), Main 的返回類(lèi)型為 void控制臺(tái)類(lèi)的 WriteLine() 方法用于顯示輸出結(jié)果導(dǎo)入 S
16、ystem 命名空間聲明命名空間 Notepad將文件保存為將文件保存為 *.cs說(shuō)明說(shuō)明:1. 程序一般包括以下幾部分:程序一般包括以下幾部分:名稱(chēng)空間的引用:使用名稱(chēng)空間的引用:使用using關(guān)鍵字指明引用的名稱(chēng)空間。關(guān)鍵字指明引用的名稱(chēng)空間。名稱(chēng)空間的聲明:使用名稱(chēng)空間的聲明:使用namespace關(guān)鍵字聲明名稱(chēng)空間。關(guān)鍵字聲明名稱(chēng)空間。類(lèi):使用類(lèi):使用class關(guān)鍵字聲明類(lèi)。關(guān)鍵字聲明類(lèi)。Main方法:方法:Main方法是方法是C# 程序的入口。程序的入口。2. 類(lèi)中包含了程序所要用到的數(shù)據(jù)和所要執(zhí)行的方法的定義。每個(gè)類(lèi)中類(lèi)中包含了程序所要用到的數(shù)據(jù)和所要執(zhí)行的方法的定義。每個(gè)類(lèi)中可以
17、有:可以有: (1)變量聲明變量聲明 (2)構(gòu)造函數(shù)構(gòu)造函數(shù) (3)方法方法 (4)屬性屬性 (5)事件事件3. 一個(gè)文件中可以有一個(gè)文件中可以有1個(gè)或者多個(gè)類(lèi)。個(gè)或者多個(gè)類(lèi)。4. 所有語(yǔ)句都以分號(hào)所有語(yǔ)句都以分號(hào);結(jié)束。結(jié)束。 ZJWCHCC#語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ)第第2章章目標(biāo)目標(biāo)在在C#中定義變量和常量中定義變量和常量使用使用C#中的基本數(shù)據(jù)類(lèi)型中的基本數(shù)據(jù)類(lèi)型理解裝箱和拆箱的概念理解裝箱和拆箱的概念使用使用C#中的運(yùn)算符,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中的運(yùn)算符,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)定義和使用數(shù)組,了解結(jié)構(gòu)和枚舉定義和使用數(shù)組,了解結(jié)構(gòu)和枚舉了解了解C#中的預(yù)處理指令中的預(yù)處理指令理解理解C#中常用的字符
18、串處理方法中常用的字符串處理方法第一個(gè)第一個(gè) C#程序程序 :HelloWorld1. using System;2. class HelloWorld3. 4. static void Main( )5. 6. Console.WriteLine(“Hello, World!”);7. 8. HelloWorld.cs第一個(gè)第一個(gè) C#程序程序 :HelloWorld1: using System;第第 1 行:行:using 關(guān)鍵字關(guān)鍵字用來(lái)引用用來(lái)引用.NET框架類(lèi)庫(kù)中的資源框架類(lèi)庫(kù)中的資源通常在程序文件的開(kāi)頭使用通常在程序文件的開(kāi)頭使用如果程序中需要多種資源,可以使用多次如果程序中需要
19、多種資源,可以使用多次usingSystem 命名空間命名空間System命名空間提供了構(gòu)建應(yīng)用程序所需的系統(tǒng)統(tǒng)能的訪命名空間提供了構(gòu)建應(yīng)用程序所需的系統(tǒng)統(tǒng)能的訪問(wèn)問(wèn)第一個(gè)第一個(gè) C# 程序程序 :HelloWorld2: class HelloWorld3: .8: 第第 2,3,8 行:行:類(lèi)類(lèi)在在C#或其他面向?qū)ο笳Z(yǔ)言中,需要編寫(xiě)類(lèi)或其他面向?qū)ο笳Z(yǔ)言中,需要編寫(xiě)類(lèi)使用關(guān)鍵字使用關(guān)鍵字class定義一個(gè)類(lèi),類(lèi)的內(nèi)容放在一對(duì)定義一個(gè)類(lèi),類(lèi)的內(nèi)容放在一對(duì) 中中示例中定義了一個(gè)名為示例中定義了一個(gè)名為HelloWorld的類(lèi)的類(lèi)第一個(gè)第一個(gè) C# 程序程序 :HelloWorld4: stati
20、c void Main( )5: .7: 第第 4,5,7 行:行:Main 方法方法w Main 方法是應(yīng)用程序的入口點(diǎn),編譯器將由該處開(kāi)始執(zhí)行方法是應(yīng)用程序的入口點(diǎn),編譯器將由該處開(kāi)始執(zhí)行程序程序w 方法體也放在一對(duì)方法體也放在一對(duì) 中中w 每個(gè)每個(gè)C#的應(yīng)用程序都必須包含的應(yīng)用程序都必須包含Main方法方法4: static void Main( )5: .7: 第第 4,5,7 行:行:Main方法方法 w static表示表示Main方法是一個(gè)全局方法方法是一個(gè)全局方法w void表示表示Main方法沒(méi)有任何返回值,即返回值是空方法沒(méi)有任何返回值,即返回值是空w 參數(shù)放在小括號(hào)中定義
21、。此處括號(hào)內(nèi)沒(méi)有內(nèi)容,表明參數(shù)放在小括號(hào)中定義。此處括號(hào)內(nèi)沒(méi)有內(nèi)容,表明Main方法方法沒(méi)有任何參數(shù)沒(méi)有任何參數(shù)第一個(gè)第一個(gè) C# 程序程序 :HelloWorld6: Console.WriteLine(“Hello, World!”);第第 6 行:行: 語(yǔ)句語(yǔ)句w 在在C#中要執(zhí)行的指令中要執(zhí)行的指令w 語(yǔ)句之間用;分隔,編譯器通過(guò)分號(hào)來(lái)區(qū)分多個(gè)語(yǔ)句語(yǔ)句之間用;分隔,編譯器通過(guò)分號(hào)來(lái)區(qū)分多個(gè)語(yǔ)句w 使用大括號(hào)使用大括號(hào) 標(biāo)識(shí)某個(gè)代碼塊的開(kāi)始和結(jié)束,從而可以對(duì)語(yǔ)標(biāo)識(shí)某個(gè)代碼塊的開(kāi)始和結(jié)束,從而可以對(duì)語(yǔ)句進(jìn)行組合。大括號(hào)必須成對(duì)匹配。句進(jìn)行組合。大括號(hào)必須成對(duì)匹配。第一個(gè)第一個(gè) C# 程序程
22、序 :HelloWorld6: Console.WriteLine(“Hello, World!”);第第 6 行:行: 語(yǔ)句語(yǔ)句w HelloWorld程序的主要目的就是在屏幕上顯示一條問(wèn)候程序的主要目的就是在屏幕上顯示一條問(wèn)候 WriteLine方法用來(lái)將問(wèn)候語(yǔ)寫(xiě)到標(biāo)準(zhǔn)輸出設(shè)備上。方法用來(lái)將問(wèn)候語(yǔ)寫(xiě)到標(biāo)準(zhǔn)輸出設(shè)備上。w Console代表標(biāo)準(zhǔn)輸出設(shè)備代表標(biāo)準(zhǔn)輸出設(shè)備- 屏幕,它屬于屏幕,它屬于System命名空間命名空間 w WriteLine方法是方法是Console類(lèi)的方法。訪問(wèn)類(lèi)或?qū)ο蟮姆椒ㄊ褂妙?lèi)的方法。訪問(wèn)類(lèi)或?qū)ο蟮姆椒ㄊ褂?點(diǎn)取符點(diǎn)取符.來(lái)完成。來(lái)完成。w 字符串用雙引號(hào)字符串用
23、雙引號(hào)“ ”表示表示w 字符串字符串“Hello,World”是是WriteLine方法的參數(shù),表示屏幕輸出方法的參數(shù),表示屏幕輸出 的內(nèi)容的內(nèi)容第一個(gè)第一個(gè) C# 程序程序 :HelloWorld系統(tǒng)預(yù)定義類(lèi)型系統(tǒng)預(yù)定義類(lèi)型類(lèi)型類(lèi)型描描 述述范圍范圍/精度精度例子例子object所有其它類(lèi)型的最根本的基所有其它類(lèi)型的最根本的基礎(chǔ)類(lèi)型礎(chǔ)類(lèi)型object o = null;string字符串類(lèi)型,一個(gè)字符串是字符串類(lèi)型,一個(gè)字符串是一個(gè)一個(gè)Unicode字符序列字符序列string s= Hello;sbyte8-bit 有符號(hào)整數(shù)類(lèi)型有符號(hào)整數(shù)類(lèi)型128.127sbyte val = 12;s
24、hort16-bit有符號(hào)整數(shù)類(lèi)型有符號(hào)整數(shù)類(lèi)型32,768.32,767short val = 12;int32-bit有符號(hào)整數(shù)類(lèi)型有符號(hào)整數(shù)類(lèi)型2,147,483,648.2,147,483,647int val = 12;long64-bit有符號(hào)整數(shù)類(lèi)型有符號(hào)整數(shù)類(lèi)型9,223,372,036,854,775,808.9,223,372,036,854,775,807long val1 = 12;long val2 = 34L;byte8-bit無(wú)符號(hào)整數(shù)類(lèi)型無(wú)符號(hào)整數(shù)類(lèi)型0.255byte val1 = 12;byte val2 = 34U;ushort16-bit無(wú)符號(hào)整數(shù)類(lèi)型無(wú)
25、符號(hào)整數(shù)類(lèi)型0.65,535ushort val1 = 12;ushort val2 = 34U;uint32-bit無(wú)符號(hào)整數(shù)類(lèi)型無(wú)符號(hào)整數(shù)類(lèi)型0.4,294,967,295uint val1 = 12;uint val2 = 34U;系統(tǒng)預(yù)定義類(lèi)型系統(tǒng)預(yù)定義類(lèi)型類(lèi)型類(lèi)型描描 述述范圍范圍/精度精度例子例子ulong64-bit無(wú)符號(hào)整數(shù)類(lèi)型無(wú)符號(hào)整數(shù)類(lèi)型0.18,446,744,073,709,551,615ulong val1 = 12;ulong val2 = 34U;ulong val3 = 56L;ulong val4 = 78UL;float單精度浮點(diǎn)數(shù)類(lèi)型單精度浮點(diǎn)數(shù)類(lèi)型1.5
26、 1045 至至 3.4 1038,7 位精度位精度f(wàn)loat val = 1.23F;double雙精度浮點(diǎn)數(shù)類(lèi)型雙精度浮點(diǎn)數(shù)類(lèi)型5.0 10324 至至 1.7 10308,15 位精度位精度double val1 = 1.23;double val2 = 4.56D;bool布爾類(lèi)型類(lèi)型布爾類(lèi)型類(lèi)型; 一個(gè)布爾類(lèi)型數(shù)據(jù)一個(gè)布爾類(lèi)型數(shù)據(jù)不是真就是假不是真就是假true,falsebool val1 = true;bool val2 = false;char字符類(lèi)型字符類(lèi)型; 一個(gè)字符數(shù)據(jù)是一個(gè)一個(gè)字符數(shù)據(jù)是一個(gè)Unicode字符字符char val = h;decimal精確十進(jìn)制類(lèi)型,有
27、精確十進(jìn)制類(lèi)型,有28個(gè)有效位個(gè)有效位1.0 1028 至至 7.9 1028,28 位精度位精度decimal val = 1.23M;字面量字面量類(lèi)型類(lèi)別后綴示例/允許的值bool布爾布爾無(wú)無(wú)true或或falseint整數(shù)整數(shù)無(wú)無(wú)int x = 100uint,ulog整數(shù)整數(shù)U或或Uuint x = 1000ulong,ulong長(zhǎng)整型長(zhǎng)整型L或或llong x = 100000Lulong無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型ul,uL,Ul,UL,lu,Lu,lU或或LUulong x = 4324ulfloat單精度浮點(diǎn)數(shù)類(lèi)型單精度浮點(diǎn)數(shù)類(lèi)型F或或ffloat x = 34.76Fdouble
28、雙精度浮點(diǎn)數(shù)類(lèi)型雙精度浮點(diǎn)數(shù)類(lèi)型D或或ddouble x = 763.7245Ddecimal精確十進(jìn)制類(lèi)型精確十進(jìn)制類(lèi)型M或或mdecimal x = 1.544Mchar字符字符無(wú)無(wú)char x = astring字符串字符串無(wú)無(wú)string =”abc”int:int iMax = int.MaxValue;int pVal = int.Parse(“100”);short i16 = 50;int i32 = i16;i16 = i32; 錯(cuò)誤錯(cuò)誤i16 = (short)i32;decimaldecimal iRate = 3.9834M;iRate = decimal.Round(
29、iRate, 2); /四舍五入四舍五入iRate = decimal.Remainder(512.0M, 51.0M);boolbool bt = (bool)1; /錯(cuò)誤錯(cuò)誤charstring pattern = “123abcd?”;bool bt;bt = char.IsLetter(pattern, 3);bt = char.IsNumber(pattern, 3);bt = char.IsLower(pattern, 3);bt = char.IsPunctuation(pattern, 7);bt = char.IsLetterOrDigit(pattern, 3);singl
30、e,doublefloat f = 24567.66f;double d = 124.45;If(Single.IsNaN(1/0) 使用使用Parse轉(zhuǎn)換數(shù)字字符串轉(zhuǎn)換數(shù)字字符串short shParse = Int16.Parse(100);int iParse = Int32.Parse(100);long shParse = Int64.Parse(100);decimal dParse=decimal.Parse(“99.99);float sParse=float.Parse(“99.99);double dParse=double.Parse(“99.99);字符串字符串字符串直
31、接量字符串直接量string path;path = ”C:note.txt”;path = “C:note.txt”;字符串操作字符串操作索引字符串中的單個(gè)字符索引字符串中的單個(gè)字符string str = “abcd”;char c = str0;字符串連接字符串連接string s1 = “My age = “;int myAge = 28;string cat = s1 + myAge;字符串操作字符串操作抽取和定位子串抽取和定位子串string poem = “In Xanadu did Kubla Khan”;string poemSeg = poem.Substring(10);
32、poemSeg = poem.Substring(0,9);int index = poem.IndexOf(“I”);index = poem.LastIndexOf(“n”);比較字符串比較字符串bool isMatch;string title = Ancient Mariner;isMatch = (title = ANCIENT AMRINER);isMatch = (title.ToUpper() = ANCIENT MARINER);isMatch = title.Equals(Ancient Mariner);String常用方法常用方法C# 中常用的字符串處理方法:中常用的字
33、符串處理方法:Equals() :比較兩個(gè)字符串的值是否相等:比較兩個(gè)字符串的值是否相等ToLower():將字符串轉(zhuǎn)換成小寫(xiě)形式:將字符串轉(zhuǎn)換成小寫(xiě)形式IndexOf():查找某個(gè)字符在字符串中的位置:查找某個(gè)字符在字符串中的位置SubString():從字符串中截取子字符串:從字符串中截取子字符串Join():連接字符串:連接字符串Split():分割字符串:分割字符串Trim():去掉字符串兩邊的空格:去掉字符串兩邊的空格實(shí)例實(shí)例 將一文件名的擴(kuò)展名改為將一文件名的擴(kuò)展名改為.dat。例:。例:1.txt改為改為1.datusing System;using System.Collect
34、ions.Generic;using System.Linq;using System.Text;namespace _011 class Program static void Main(string args) string filename = 1.2.txt; int indexDot = filename.LastIndexOf(.); string extendName = dat; filename = filename.Substring(0, indexDot+1); filename += extendName; Console.WriteLine(filename); S
35、tring 常用方法應(yīng)用常用方法應(yīng)用1已有如下代碼,按要求增加功能:已有如下代碼,按要求增加功能:static void Main(string args) string email; / 電子郵件地址電子郵件地址 Console.WriteLine(請(qǐng)輸入你的郵箱請(qǐng)輸入你的郵箱:); email = Console.ReadLine(); Console.WriteLine(你的郵箱是你的郵箱是 0, email); 需實(shí)現(xiàn)的功能:需實(shí)現(xiàn)的功能:1、 輸入輸入 yes 時(shí),程序循環(huán)執(zhí)行時(shí),程序循環(huán)執(zhí)行2、 兼容以下各種形式兼容以下各種形式 yes(YES、yes、 YeS .)3、 提取郵箱
36、的用戶名提取郵箱的用戶名using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace _011 class Program static void Main(string args) while(1) string email; / 電子郵件地址 Console.WriteLine(請(qǐng)輸入你的郵箱:); email = Console.ReadLine(); Console.WriteLine(你的郵箱是 0, email); Console.WriteLine(繼續(xù)輸入郵
37、箱嗎?); string input = Console.ReadLine(); if (input.ToUpper() = YES) continue; else break; while (true)String 常用方法應(yīng)用常用方法應(yīng)用2輸入一個(gè)字符串,輸出每個(gè)單詞,重新用下劃線輸入一個(gè)字符串,輸出每個(gè)單詞,重新用下劃線連接輸出連接輸出使用使用 Split() 方法分割字符串方法分割字符串使用使用 Join() 方法連接字符串方法連接字符串Split()方法方法分割字符串分割字符串代碼分析代碼分析splitStrings = inputString.Split( );/ 將分割后的字符串
38、使用下劃線連接在一起將分割后的字符串使用下劃線連接在一起joinString = string.Join(_, splitStrings); 返回值為返回值為字符串?dāng)?shù)組字符串?dāng)?shù)組字符串變量名字符串變量名參數(shù):分隔符(參數(shù):分隔符(char型)型)返回字符串返回字符串靜態(tài)方法靜態(tài)方法參數(shù)參數(shù)1:連接符:連接符參數(shù)參數(shù)2:字符串?dāng)?shù)組:字符串?dāng)?shù)組關(guān)鍵代碼:關(guān)鍵代碼:Join()方法方法連接字符串連接字符串using System;class Program static void Main(string args) string inputString; inputString = Console.
39、ReadLine(); inputString = inputString.Trim(); string splitStrings = inputString.Split( ); string joinString = string.Join(_, splitStrings); Console.WriteLine(joinString); 如果字符串兩邊有空格?如果字符串兩邊有空格?Format() 方法方法兩種輸出字符串的方式:兩種輸出字符串的方式:string name = 李四李四;Console.WriteLine(My name is + name + ,I am + 18);str
40、ing name = 李四李四;Console.WriteLine(My name is 0 ,I am 1 , name,18);格式字符串格式字符串變量列表變量列表String類(lèi)的類(lèi)的Format()方法用來(lái)格式化字符串方法用來(lái)格式化字符串關(guān)鍵代碼:關(guān)鍵代碼:record = string.Format( 姓名姓名:0n出生年月出生年月:1n身高身高:2n 血型血型:3n星座星座:4n最喜歡的食物最喜歡的食物:5, name, birthday, height, bloodType, planet, favourFood);Console.WriteLine(n這是你的個(gè)人檔案這是你的個(gè)人
41、檔案:);Console.WriteLine(record);參數(shù)與參數(shù)與 WritLine() 方法相似方法相似Format() 的語(yǔ)法小結(jié)的語(yǔ)法小結(jié)string myString = string.Format(格式字符串格式字符串, 參數(shù)列表參數(shù)列表);string myString = string.Format (0 乘以乘以 1 等于等于 2 , 2, 3, 2*3);格式字符串格式字符串代表代表參數(shù)列表參數(shù)列表2乘以乘以3等于等于6包括占位符包括占位符x小結(jié)小結(jié)補(bǔ)充補(bǔ)充下劃線處的下劃線處的占位符占位符,輸出五個(gè)成語(yǔ),輸出五個(gè)成語(yǔ)string yi = 一一;string er =
42、 二二;string san = 三三;string word = string.Format( 獨(dú)獨(dú) _ 無(wú)無(wú) _,_ 心心 _ 意意,垂涎垂涎 _ 尺尺,略知略知 _ _,舉舉_ 反反 _, yi, er, san);Console.WriteLine(word);string yi = 一一;string er = 二二;string san = 三三;string word = string.Format( 獨(dú)獨(dú)0無(wú)無(wú)1,2心心1意意,垂涎垂涎2尺尺,略知略知01,舉舉0反反2, yi, er, san);Console.WriteLine(word);枚舉枚舉qaccess modi
43、fiers enum :enum_base enum bodyclass MyAppenum Fabric : int Cotton = 1, Silk = 2, Wool = 4static void Main() Fabric fab = Fabric.Cotton; int fabNum = (int) fab; string fabType = fab.ToString(); Console.WriteLine(fab);整型,默認(rèn)為整型,默認(rèn)為int默認(rèn)為默認(rèn)為internal枚舉和位標(biāo)志枚舉和位標(biāo)志namespace MyHelloApp class myApp Flags enu
44、m Fabric Cotton = 1, Silk = 2 static void Main() Fabric fab1 = (Fabric)3; Console.WriteLine(fab1.ToString(); System.Enum的方法的方法using System;namespace App1 class myApp enum Fabric Cotton = 1, Silk = 2 static void Main() string fabStr = Cotton; if (Enum.IsDefined(typeof(Fabric), fabStr) Fabric fab = (F
45、abric)Enum.Parse(typeof(Fabric), fabStr); Console.WriteLine(Enum.GetName(typeof(Fabric), 2); 變量變量static void Main(string args)/ 聲明布爾型、字符串型、整型、短整型和浮點(diǎn)型變量 bool t = false;short n1 = 30;int n2 = 1200;string str = jeny;float n3 = 23.1f;/ 顯示變量值 Console.WriteLine (布爾值 = + t);Console.WriteLine (短整型值 = + n1);
46、Console.WriteLine (整型值 = + n2);Console.WriteLine (字符串值 = + str);Console.WriteLine (浮點(diǎn)值 = + n3);變量中存儲(chǔ)的值取決于該變量的類(lèi)型常量常量static void Main(string args)/ PI常量PIconst float _pi = 3.1415169F;/ 由地球引力引起的加速度常量,單位為 cm/s*s const float _gravity = 980;/ 鐘擺的長(zhǎng)度 int length = 60;/ 鐘擺的周期 double period = 0;/ 鐘擺周期的計(jì)算公式 per
47、iod = 2 * _pi * Math.Sqrt(length / _gravity);Console.WriteLine (鐘擺的周期為 0 秒, period);聲明常量在表達(dá)式中使用常量qconst 關(guān)鍵字用于聲明常量數(shù)組數(shù)組數(shù)組是同一數(shù)據(jù)類(lèi)型的一組值數(shù)組是同一數(shù)據(jù)類(lèi)型的一組值 數(shù)組屬于引用類(lèi)型,因此存儲(chǔ)在堆內(nèi)存中數(shù)組屬于引用類(lèi)型,因此存儲(chǔ)在堆內(nèi)存中 數(shù)組元素初始化或給數(shù)組元素賦值都可以在聲數(shù)組元素初始化或給數(shù)組元素賦值都可以在聲明數(shù)組時(shí)或在程序的后面階段中進(jìn)行明數(shù)組時(shí)或在程序的后面階段中進(jìn)行 語(yǔ)法語(yǔ)法: 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型, 數(shù)組名稱(chēng)數(shù)組名稱(chēng) = new 類(lèi)型類(lèi)型 n,; int ar
48、rayHere = new int 6;數(shù)組數(shù)組static void Main(string args)int count;Console.WriteLine(“請(qǐng)輸入準(zhǔn)備登機(jī)的乘客人數(shù) );count=int.Parse(Console.ReadLine();/ 聲明一個(gè)存放姓名的字符串?dāng)?shù)組,其長(zhǎng)度等于乘客人數(shù) string names = new stringcount;/ 用一個(gè) for 循環(huán)來(lái)接受姓名 for(int i=0; i檢查一個(gè)數(shù)是否大于檢查一個(gè)數(shù)是否大于另一個(gè)數(shù)另一個(gè)數(shù) 操作數(shù)操作數(shù)1 操作數(shù)操作數(shù)2檢查一個(gè)數(shù)是否小于檢查一個(gè)數(shù)是否小于另一個(gè)數(shù)另一個(gè)數(shù) 操作數(shù)操作數(shù)1 =
49、檢查一個(gè)數(shù)是否大于檢查一個(gè)數(shù)是否大于或等于另一個(gè)數(shù)或等于另一個(gè)數(shù) 操作數(shù)操作數(shù)1 = 操作數(shù)操作數(shù)2= 檢查一個(gè)數(shù)是否小于檢查一個(gè)數(shù)是否小于或等于另一個(gè)數(shù)或等于另一個(gè)數(shù) 操作數(shù)操作數(shù)1 = 操作數(shù)操作數(shù)2= 檢查兩個(gè)值是否相等檢查兩個(gè)值是否相等 操作數(shù)操作數(shù)1 = 操作數(shù)操作數(shù)2!= 檢查兩個(gè)值是否不相檢查兩個(gè)值是否不相等等操作數(shù)操作數(shù)1 != 操作數(shù)操作數(shù)2運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式類(lèi)別類(lèi)別運(yùn)算符運(yùn)算符說(shuō)明說(shuō)明表達(dá)式表達(dá)式成員訪問(wèn)運(yùn)算符成員訪問(wèn)運(yùn)算符.用于訪問(wèn)數(shù)據(jù)結(jié)構(gòu)的成員用于訪問(wèn)數(shù)據(jù)結(jié)構(gòu)的成員 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu).成員成員賦值運(yùn)算符賦值運(yùn)算符=給變量賦值給變量賦值 操作數(shù)操作數(shù)1 = 操作
50、數(shù)操作數(shù)2邏輯運(yùn)算符邏輯運(yùn)算符 & 對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“與與”運(yùn)算運(yùn)算 操作數(shù)操作數(shù)1 & 操作數(shù)操作數(shù)2|對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“或或”運(yùn)算運(yùn)算 操作數(shù)操作數(shù)1 | 操作數(shù)操作數(shù)2!對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“非非”運(yùn)算運(yùn)算! 操作數(shù)操作數(shù)( ) 將操作數(shù)強(qiáng)制轉(zhuǎn)換為給定將操作數(shù)強(qiáng)制轉(zhuǎn)換為給定的數(shù)據(jù)類(lèi)型的數(shù)據(jù)類(lèi)型 (數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型) 操作數(shù)操作數(shù)運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 9-6賦值運(yùn)算符賦值運(yùn)算符 (=)變量 = 表達(dá)式;例如:身高 = 177.5;體重 = 78;性別 = “m”;運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式 9-7一元運(yùn)算符一元運(yùn)
51、算符 (+/-)Variable +; 相當(dāng)于相當(dāng)于 Variable = Variable + 1;Variable -; 相當(dāng)于相當(dāng)于 Variable = Variable - 1;運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式運(yùn)算符運(yùn)算符計(jì)算方法計(jì)算方法表達(dá)式表達(dá)式求值求值結(jié)果(設(shè)結(jié)果(設(shè) X = 10)+=運(yùn)算結(jié)果運(yùn)算結(jié)果 = 操作數(shù)操作數(shù)1 + 操作數(shù)操作數(shù)2X+= 2X=X+212-=運(yùn)算結(jié)果運(yùn)算結(jié)果 = 操作數(shù)操作數(shù)1 - 操作數(shù)操作數(shù)2X-= 2X=X-28*=運(yùn)算結(jié)果運(yùn)算結(jié)果 = 操作數(shù)操作數(shù)1 * 操作數(shù)操作數(shù)2X*= 2X=X*220/=運(yùn)算結(jié)果運(yùn)算結(jié)果 = 操作數(shù)操作數(shù)1 / 操作數(shù)操
52、作數(shù)2X/= 2X=X/25%=運(yùn)算結(jié)果運(yùn)算結(jié)果 = 操作數(shù)操作數(shù)1 % 操作數(shù)操作數(shù)2X%= 2X=X%20運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式C# 運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)優(yōu)先級(jí)說(shuō)明說(shuō)明運(yùn)算符運(yùn)算符結(jié)合性結(jié)合性1括號(hào)括號(hào)( )從左到右從左到右2自加自加/ /自減運(yùn)算符自減運(yùn)算符+/-從右到左從右到左3乘法運(yùn)算符乘法運(yùn)算符除法運(yùn)算符除法運(yùn)算符取模運(yùn)算符取模運(yùn)算符*/%從左到右從左到右4加法運(yùn)算符加法運(yùn)算符減法運(yùn)算符減法運(yùn)算符+-從左到右從左到右5小于小于小于等于小于等于大于大于大于等于大于等于=從左到右從左到右6等于等于不等于不等于=!=從左到右從左到右從左到右從左到右7邏輯與邏輯與&從左
53、到右從左到右8邏輯或邏輯或|從左到右從左到右9賦值運(yùn)算符和快捷運(yùn)賦值運(yùn)算符和快捷運(yùn)算符算符= += *= /= %= -=從右到左從右到左選擇結(jié)構(gòu)選擇結(jié)構(gòu)語(yǔ)法:語(yǔ)法: if () else q選擇結(jié)構(gòu)用于根據(jù)表達(dá)式的值執(zhí)行語(yǔ)句if else條件:只能是條件:只能是bool類(lèi)型的值類(lèi)型的值 選擇結(jié)構(gòu)選擇結(jié)構(gòu)switch (“cotton”)case “COTTON”: case “cotton”: break;case 值3: case 值4: break;switchcase 表達(dá)式可以是表達(dá)式可以是int、字符或字、字符或字符串符串C#不允許從一個(gè)不允許從一個(gè)case塊繼塊繼續(xù)執(zhí)行到下一個(gè)續(xù)
54、執(zhí)行到下一個(gè)case塊。每塊。每個(gè)個(gè)case塊必須以一個(gè)跳轉(zhuǎn)控塊必須以一個(gè)跳轉(zhuǎn)控制語(yǔ)句制語(yǔ)句break、goto或或return結(jié)束結(jié)束多個(gè)多個(gè)case標(biāo)簽可以對(duì)應(yīng)一個(gè)標(biāo)簽可以對(duì)應(yīng)一個(gè)代碼塊代碼塊循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)用于對(duì)一組命令執(zhí)行一定的次數(shù)或反循環(huán)結(jié)構(gòu)用于對(duì)一組命令執(zhí)行一定的次數(shù)或反復(fù)執(zhí)行一組命令,直到指定的條件為真。復(fù)執(zhí)行一組命令,直到指定的條件為真。循環(huán)結(jié)構(gòu)的類(lèi)型循環(huán)結(jié)構(gòu)的類(lèi)型 while 循環(huán)循環(huán)do 循環(huán)循環(huán)for 循環(huán)循環(huán)foreach 循環(huán)循環(huán)條件:只能是條件:只能是bool類(lèi)型的值類(lèi)型的值 while 循環(huán)反復(fù)執(zhí)行指定的語(yǔ)句,直到指定的循環(huán)反復(fù)執(zhí)行指定的語(yǔ)句,直到指定的條
55、件為真條件為真語(yǔ)法語(yǔ)法 :while (條件條件) / 語(yǔ)句語(yǔ)句break 語(yǔ)句可用于退出循環(huán)語(yǔ)句可用于退出循環(huán)continue 語(yǔ)句可用于語(yǔ)句可用于跳過(guò)當(dāng)前循環(huán)并開(kāi)始下跳過(guò)當(dāng)前循環(huán)并開(kāi)始下一循環(huán)一循環(huán) while 循環(huán)循環(huán)dowhile 循環(huán)循環(huán)dowhile 循環(huán)與循環(huán)與 while 循環(huán)類(lèi)似,二循環(huán)類(lèi)似,二者區(qū)別在于者區(qū)別在于 dowhile 循環(huán)中即使條件為假循環(huán)中即使條件為假時(shí)也至少執(zhí)行一次該循環(huán)體中的語(yǔ)句。時(shí)也至少執(zhí)行一次該循環(huán)體中的語(yǔ)句。 語(yǔ)法語(yǔ)法 : do / 語(yǔ)句語(yǔ)句 while (條件條件) for 循環(huán)循環(huán)for 循環(huán)要求只有在對(duì)特定條件進(jìn)行判斷后才允循環(huán)要求只有在對(duì)特定
56、條件進(jìn)行判斷后才允許執(zhí)行循環(huán)許執(zhí)行循環(huán) 這種循環(huán)用于將某個(gè)語(yǔ)句或語(yǔ)句塊重復(fù)執(zhí)行預(yù)定這種循環(huán)用于將某個(gè)語(yǔ)句或語(yǔ)句塊重復(fù)執(zhí)行預(yù)定次數(shù)的情形次數(shù)的情形 語(yǔ)法語(yǔ)法 :for (初始值初始值; 條件條件; 增增/減減) /語(yǔ)句語(yǔ)句foreach 循環(huán)循環(huán) 2-1foreach 循環(huán)用于遍歷整個(gè)集合或數(shù)組 語(yǔ)法: foreach (數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 元素元素(變量變量) in 集合或者數(shù)組集合或者數(shù)組) /語(yǔ)句語(yǔ)句 foreach 循環(huán)循環(huán)2-2static void Main(string args)/ 存放字母的個(gè)數(shù)存放字母的個(gè)數(shù) int Letters = 0;/ 存放存放數(shù)字?jǐn)?shù)字的個(gè)數(shù)的個(gè)數(shù)int
57、 Digits = 0;/ 存放存放標(biāo)點(diǎn)符號(hào)標(biāo)點(diǎn)符號(hào)的個(gè)數(shù)的個(gè)數(shù)int Punctuations = 0;/ 用戶提供的輸入用戶提供的輸入 string instr;Console.WriteLine(請(qǐng)輸入一個(gè)字符串請(qǐng)輸入一個(gè)字符串 );instr = Console.ReadLine();/ 聲明聲明 foreach 循環(huán)以遍歷輸入的字符串中的每個(gè)字符。循環(huán)以遍歷輸入的字符串中的每個(gè)字符。 foreach(char ch in instr) / 檢查字母檢查字母if(char.IsLetter(ch) Letters+;/ 檢查數(shù)字檢查數(shù)字if(char.IsDigit(ch) Digit
58、s+;/ 檢查標(biāo)點(diǎn)符號(hào)檢查標(biāo)點(diǎn)符號(hào)if(char.IsPunctuation(ch) Punctuations+;Console.WriteLine(“字母?jìng)€(gè)數(shù)為:字母?jìng)€(gè)數(shù)為: 0, Letters);Console.WriteLine(“數(shù)字個(gè)數(shù)為:數(shù)字個(gè)數(shù)為: 0, Digits);Console.WriteLine(“標(biāo)點(diǎn)符號(hào)個(gè)數(shù)為:標(biāo)點(diǎn)符號(hào)個(gè)數(shù)為: 0, Punctuations);為所有計(jì)數(shù)器設(shè)置初始值接受輸入對(duì)輸入的每一個(gè)字符都進(jìn)行循環(huán)使用了所有輸入的字符之后,循環(huán)自動(dòng)終止using System;public class WriteTestpublic static void M
59、ain() int array = 1, 2, 3, 4, 5 ; foreach (int item in array) Console.WriteLine(item); using System;public class WriteTestpublic static void Main() int array = 1, 2, 3, 4, 5 ; foreach (int item in array) item += item; Console.WriteLine(item); C#的預(yù)處理指令的預(yù)處理指令2-1預(yù)處理指令是預(yù)處理指令是C#編譯器在詞法分析階段讀取編譯器在詞法分析階段讀取的語(yǔ)
60、句。這些語(yǔ)句可以指示編譯器包含或不的語(yǔ)句。這些語(yǔ)句可以指示編譯器包含或不包含某些代碼,甚至可以根據(jù)預(yù)處理指令的包含某些代碼,甚至可以根據(jù)預(yù)處理指令的值終止編譯。值終止編譯。預(yù)處理指令由字符預(yù)處理指令由字符#標(biāo)識(shí),并且字符標(biāo)識(shí),并且字符#必須是必須是該行的第一個(gè)非空字符。該行的第一個(gè)非空字符。 預(yù)處理指令最常見(jiàn)的三個(gè)用途是:完成條件預(yù)處理指令最常見(jiàn)的三個(gè)用途是:完成條件編譯、增加診斷來(lái)報(bào)告錯(cuò)誤和警告、定義代編譯、增加診斷來(lái)報(bào)告錯(cuò)誤和警告、定義代碼域。碼域。 C#的預(yù)處理指令的預(yù)處理指令2-2 C#預(yù)處理命令預(yù)處理命令說(shuō)明說(shuō)明#define#undef用于定義一個(gè)符號(hào),后取消對(duì)一個(gè)符號(hào)得定用于定義
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 25367-2024柴油機(jī)電控共軌系統(tǒng)噴油器總成
- Porantherine-生命科學(xué)試劑-MCE-2296
- 1-Propinoyl-Lysergic-acid-methylisopropylamide-1P-MiPLA-生命科學(xué)試劑-MCE-1036
- 2025年度銀行賬戶管理與個(gè)人財(cái)富管理合作協(xié)議方
- 2025年度高層建筑基礎(chǔ)鉆孔施工與質(zhì)量控制合同
- 二零二五年度特色餐廳廚師勞動(dòng)合同及勞動(dòng)爭(zhēng)議處理協(xié)議
- 2025年度綠色環(huán)保版商鋪?zhàn)赓U合同
- 2025年度環(huán)保項(xiàng)目短期現(xiàn)場(chǎng)作業(yè)人員勞動(dòng)合同
- 二零二五年度綠色環(huán)保產(chǎn)業(yè)財(cái)產(chǎn)贈(zèng)與協(xié)議
- 2025年度新媒體運(yùn)營(yíng)專(zhuān)員聘用合同簡(jiǎn)易制
- 2025年人教五四新版八年級(jí)物理上冊(cè)階段測(cè)試試卷含答案
- 2025新人教版英語(yǔ)七年級(jí)下單詞表(小學(xué)部分)
- 2025年春季1530安全教育記錄主題
- 礦山2025年安全工作計(jì)劃
- 基本藥物制度政策培訓(xùn)課件
- 2025年包裝印刷項(xiàng)目可行性研究報(bào)告
- 2025年九年級(jí)物理中考復(fù)習(xí)計(jì)劃
- 企業(yè)融資報(bào)告特斯拉成功案例分享
- 給客戶的福利合同(2篇)
- 《銀行融資知識(shí)》課件
- SWITCH 勇者斗惡龍11S 金手指 版本:v1.0.3 最大金幣 最大迷你獎(jiǎng)?wù)?32倍經(jīng)驗(yàn) 最大攻擊 所有材料
評(píng)論
0/150
提交評(píng)論