歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

C#入門經(jīng)典教程--1.ppt

  • 資源ID:117262606       資源大?。?span id="k6woesm" class="font-tahoma">4.81MB        全文頁(yè)數(shù):430頁(yè)
  • 資源格式: PPT        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

C#入門經(jīng)典教程--1.ppt

第1章 C#與NET平臺(tái)介紹 本章目標(biāo),了解.NET Framework 的結(jié)構(gòu) 理解.NET Framework 的基本概念 CLR JIT CTS MSIL 了解 .NET Framework 命名空間 了解C#程序的基本結(jié)構(gòu),1 C#語(yǔ)言的由來(lái),在過(guò)去的二十年里,C和C+已經(jīng)成為在商業(yè)軟件的開發(fā)領(lǐng)域中使用最廣泛的語(yǔ)言。它們?yōu)槌绦騿T提供了十分靈活的操作,不過(guò)同時(shí)也犧牲了一定的開發(fā)效率。與VB等語(yǔ)言相比,同等級(jí)別的C/C+應(yīng)用程序往往需要更長(zhǎng)時(shí)間來(lái)開發(fā)。由于C/C+語(yǔ)言的復(fù)雜性,許多程序員都試圖尋找一種新的語(yǔ)言,希望能在功能與效率之間找到一個(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é)合。,C#語(yǔ)言的特點(diǎn): C#語(yǔ)言是Microsoft發(fā)布的一種全新的編程語(yǔ)言,是其.Net戰(zhàn)略的一枚重要棋子。 C#語(yǔ)言是面向?qū)ο蟮?、現(xiàn)代的編程語(yǔ)言,用C#編寫的應(yīng)用程序可以充分利用.Net的框架體系帶來(lái)的優(yōu)點(diǎn).既可以用來(lái)編寫基于通用網(wǎng)絡(luò)協(xié)議的Internet服務(wù)軟件,也可以編寫各種數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)服務(wù)應(yīng)用程序和Windows窗口界面程序。 C#繼承了C/C+的優(yōu)點(diǎn)和靈活性,能夠充分利用OS系統(tǒng)的底層功能,同時(shí)又具備了完全的面向?qū)ο筇匦?。可以讓初學(xué)者直接了解面向?qū)ο缶幊痰母鞣N概念,學(xué)習(xí)現(xiàn)代的編程思想和手段。,2 .NET代碼的編譯 語(yǔ)言特定的編譯器和運(yùn)行庫(kù),代碼 被執(zhí)行,IL + 元數(shù)據(jù),C L R,IL 和 CLR 的使用 Intermediate Language Common Language Runtime,編譯執(zhí)行 .NET 程序,Microsoft 中間語(yǔ)言,MSIL + 元數(shù)據(jù),機(jī)器 代碼,代碼 被執(zhí)行,CLR,MSIL,幫助語(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ǔ)言 編譯器,.NET 源 代碼,程序集,client.exe,client.exe,clientlib.dll,client.exe,module,IL語(yǔ)言范例,IL_0000: nop IL_0001: call IL_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í)CLR,.NET的語(yǔ)言互操作性: 不同語(yǔ)言編寫的代碼可互相調(diào)用 C#的平臺(tái)移植性: 框架 JIT編譯器(Just In Time, 即時(shí)編譯器),3 .NET Framework 簡(jiǎn)介,.NET Framework類似于JVM .NET Framework 兩個(gè)主要組件: 通用語(yǔ)言運(yùn)行時(shí) (CLR) 統(tǒng)一的類庫(kù)集 .NET的類庫(kù): 線程 文件輸入/輸出 (I/O) 數(shù)據(jù)庫(kù)支持 XML 解析 數(shù)據(jù)結(jié)構(gòu),.NET Framework 的體系結(jié)構(gòu),Visual Studio .NET,CLR通用語(yǔ)言運(yùn)行時(shí) (CLR),Base Class Library: IO, Drawing, Threading,Data and XML,XML Web services,Windows Forms,Web Forms,通用語(yǔ)言規(guī)范(CLS),VB,C+,C#,JScript,操作系統(tǒng),.Net Framework 類庫(kù) (FCL),CLS和CTS,通用語(yǔ)言規(guī)范 CLS Common Language Specification 規(guī)定所有 .NET 語(yǔ)言都應(yīng)遵循的規(guī)則 生成可與其他語(yǔ)言互操作的應(yīng)用程序 通用類型系統(tǒng) (Common Type System, CTS) 包含標(biāo)準(zhǔn)數(shù)據(jù)類型 包含準(zhǔn)則集,CLS、CTS 和 MSIL 緊密配合以實(shí)現(xiàn)語(yǔ)言互操作性,命名空間就像在文件系統(tǒng)中一個(gè)文件夾容納多個(gè)文件一樣,可以看作某些類的一個(gè)容器。通過(guò)把類放入命名空間可以把相關(guān)的類組織起來(lái),并且可以避免命名沖突。命名空間既用作程序的“內(nèi)部”組織系統(tǒng),也用作“外部”組織系統(tǒng)(一種向其他程序公開自己擁有的程序元素的方法) 使用命名空間:using 類似#include,4 命名空間,1.H class A ,2.H class A ,3.cpp #include “1.h” #include “2.h” .,3.cpp class A class A ,namespace a1 class A ,namespace a2 class A ,3.cs using a1; using a2; a1.A a2.A,常用命名空間,5 創(chuàng)建“Hello World”應(yīng)用程序,單擊“開始”“程序”“Microsoft Visual Studio .NET 2005”“Microsoft Visual Studio .NET 2005” 此時(shí)將打開 VS.NET 2005 的起始頁(yè) 要?jiǎng)?chuàng)建 C# 控制臺(tái)應(yīng)用程序,請(qǐng)從列表中選擇 “創(chuàng)建建”“項(xiàng)目”。此時(shí)將打開“新建項(xiàng)目”窗口 選擇“Visual C# 項(xiàng)目”作為項(xiàng)目類型,選擇“控制臺(tái)應(yīng)用程序”作為模板,C# 模板,Console.WriteLine(“Hello World“);,輸出,HelloWorld.csproj AssemblyInfo.cs Program.cs,“Hello World”應(yīng)用程序文件,編譯和執(zhí)行 C# 應(yīng)用程序,要生成 C# 項(xiàng)目,請(qǐng)從菜單中選擇“生成” “生成解決方案” 該過(guò)程將編譯項(xiàng)目中包括的所有文件,編譯結(jié)果顯示在“輸出”窗口中 如果結(jié)果顯示“生成: 1 成功或最新,0失敗,0被跳過(guò)”,則說(shuō)明已經(jīng)成功生成,然后即可交付該應(yīng)用程序,要運(yùn)行剛才生成的應(yīng)用程序,請(qǐng)從菜單中選擇“調(diào)試”“開始執(zhí)行(不調(diào)試)” 輸出結(jié)果顯示在 VS.NET 控制臺(tái)窗口中,C# 應(yīng)用程序文件夾結(jié)構(gòu),Visual Studio .NET 2005 創(chuàng)建一個(gè)與項(xiàng)目同名的文件夾,此處為“HelloWorld” 該文件夾包含項(xiàng)目文件“HelloWorld.csproj”和其他關(guān)聯(lián)文件 每個(gè)新項(xiàng)目都創(chuàng)建了 bin、obj和Properties 三個(gè)文件夾。 Bin和obj這兩個(gè)文件夾下都有一個(gè) Debug 子目錄,其中包含可執(zhí)行文件 HelloWorld.exe 在“解決方案資源管理器”中啟用“顯示所有文件”選項(xiàng),可查看“HelloWorld”項(xiàng)目的結(jié)構(gòu),/這是用 C# 編寫的一個(gè)簡(jiǎn)單的 HelloWorld 程序 using System; namespace Notepad class HelloWorld static void Main() Console.WriteLine(“Hello World“); ,聲明 HelloWorld 類,描述代碼的注釋,Hello World 程序,程序入口點(diǎn), Main 的返回類型為 void,控制臺(tái)類的 WriteLine() 方法用于顯示輸出結(jié)果,導(dǎo)入 System 命名空間,聲明命名空間 Notepad,將文件保存為 *.cs,說(shuō)明: 1. 程序一般包括以下幾部分: 名稱空間的引用:使用using關(guān)鍵字指明引用的名稱空間。 名稱空間的聲明:使用namespace關(guān)鍵字聲明名稱空間。 類:使用class關(guān)鍵字聲明類。 Main方法:Main方法是C# 程序的入口。 2. 類中包含了程序所要用到的數(shù)據(jù)和所要執(zhí)行的方法的定義。每個(gè)類中可以有: (1)變量聲明 (2)構(gòu)造函數(shù) (3)方法 (4)屬性 (5)事件 3. 一個(gè)文件中可以有1個(gè)或者多個(gè)類。 4. 所有語(yǔ)句都以分號(hào)“;“結(jié)束。,C#語(yǔ)言基礎(chǔ),第2章,目標(biāo),在C#中定義變量和常量 使用C#中的基本數(shù)據(jù)類型 理解裝箱和拆箱的概念 使用C#中的運(yùn)算符,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 定義和使用數(shù)組,了解結(jié)構(gòu)和枚舉 了解C#中的預(yù)處理指令 理解C#中常用的字符串處理方法,第一個(gè) C#程序 :HelloWorld,using System; class HelloWorld static void Main( ) Console.WriteLine(“Hello, World!”); ,HelloWorld.cs,第一個(gè) C#程序 :HelloWorld,1: using System;,第 1 行:,using 關(guān)鍵字 用來(lái)引用.NET框架類庫(kù)中的資源 通常在程序文件的開頭使用 如果程序中需要多種資源,可以使用多次using System 命名空間 System命名空間提供了構(gòu)建應(yīng)用程序所需的系統(tǒng)統(tǒng)能的訪問(wèn),第一個(gè) C# 程序 :HelloWorld,2: class HelloWorld 3: 8: ,第 2,3,8 行:,類 在C#或其他面向?qū)ο笳Z(yǔ)言中,需要編寫類 使用關(guān)鍵字class定義一個(gè)類,類的內(nèi)容放在一對(duì) 中 示例中定義了一個(gè)名為HelloWorld的類,第一個(gè) C# 程序 :HelloWorld,4: static void Main( ) 5: 7: ,第 4,5,7 行:,Main 方法 Main 方法是應(yīng)用程序的入口點(diǎn),編譯器將由該處開始執(zhí)行程序 方法體也放在一對(duì) 中 每個(gè)C#的應(yīng)用程序都必須包含Main方法,4: static void Main( ) 5: 7: ,第 4,5,7 行:,Main方法 static表示Main方法是一個(gè)全局方法 void表示Main方法沒(méi)有任何返回值,即返回值是空 參數(shù)放在小括號(hào)中定義。此處括號(hào)內(nèi)沒(méi)有內(nèi)容,表明Main方法沒(méi)有任何參數(shù),第一個(gè) C# 程序 :HelloWorld,6: Console.WriteLine(“Hello, World!”);,第 6 行:,語(yǔ)句 在C#中要執(zhí)行的指令 語(yǔ)句之間用;分隔,編譯器通過(guò)分號(hào)來(lái)區(qū)分多個(gè)語(yǔ)句 使用大括號(hào) 標(biāo)識(shí)某個(gè)代碼塊的開始和結(jié)束,從而可以對(duì)語(yǔ)句進(jìn)行組合。大括號(hào)必須成對(duì)匹配。,第一個(gè) C# 程序 :HelloWorld,6: Console.WriteLine(“Hello, World!”);,第 6 行:,語(yǔ)句 HelloWorld程序的主要目的就是在屏幕上顯示一條問(wèn)候 WriteLine方法用來(lái)將問(wèn)候語(yǔ)寫到標(biāo)準(zhǔn)輸出設(shè)備上。 Console代表標(biāo)準(zhǔn)輸出設(shè)備- 屏幕,它屬于System命名空間 WriteLine方法是Console類的方法。訪問(wèn)類或?qū)ο蟮姆椒ㄊ褂?點(diǎn)取符.來(lái)完成。 字符串用雙引號(hào)“ ”表示 字符串“Hello,World”是WriteLine方法的參數(shù),表示屏幕輸出 的內(nèi)容,第一個(gè) C# 程序 :HelloWorld,系統(tǒng)預(yù)定義類型,系統(tǒng)預(yù)定義類型,字面量,int: int iMax = int.MaxValue; int pVal = int.Parse(“100”); short i16 = 50; int i32 = i16; i16 = i32; 錯(cuò)誤 i16 = (short)i32; decimal decimal iRate = 3.9834M; iRate = decimal.Round(iRate, 2); /四舍五入 iRate = decimal.Remainder(512.0M, 51.0M);,bool bool bt = (bool)1; /錯(cuò)誤 char string 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);,single,double float f = 24567.66f; double d = 124.45; If(Single.IsNaN(1/0) 使用Parse轉(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“);,字符串,字符串直接量 string path; path = ”C:note.txt”; path = “C:note.txt”; 字符串操作 索引字符串中的單個(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); 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# 中常用的字符串處理方法: Equals() :比較兩個(gè)字符串的值是否相等 ToLower():將字符串轉(zhuǎn)換成小寫形式 IndexOf():查找某個(gè)字符在字符串中的位置 SubString():從字符串中截取子字符串 Join():連接字符串 Split():分割字符串 Trim():去掉字符串兩邊的空格 ,實(shí)例,將一文件名的擴(kuò)展名改為.dat。例:1.txt改為1.dat,using System; using System.Collections.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); ,String 常用方法應(yīng)用1,已有如下代碼,按要求增加功能:,static void Main(string args) string email; / 電子郵件地址 Console.WriteLine(“請(qǐng)輸入你的郵箱:“); email = Console.ReadLine(); Console.WriteLine(“你的郵箱是 0“, email); ,需實(shí)現(xiàn)的功能: 1、 輸入 yes 時(shí),程序循環(huán)執(zhí)行 2、 兼容以下各種形式 yes(YES、yes、 YeS ) 3、 提取郵箱的用戶名,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ù)輸入郵箱嗎?“); string input = Console.ReadLine(); if (input.ToUpper() = “YES“) continue; else break; ,while (true),String 常用方法應(yīng)用2,輸入一個(gè)字符串,輸出每個(gè)單詞,重新用下劃線連接輸出,使用 Split() 方法分割字符串 使用 Join() 方法連接字符串,Split()方法分割字符串,代碼分析,splitStrings = inputString.Split( );,/ 將分割后的字符串使用下劃線連接在一起 joinString = string.Join(“_“, splitStrings);,返回值為 字符串?dāng)?shù)組,字符串變量名,參數(shù):分隔符(char型),返回字符串,靜態(tài)方法,參數(shù)1:連接符 參數(shù)2:字符串?dāng)?shù)組,關(guān)鍵代碼:,Join()方法連接字符串,using System; class Program static void Main(string args) string inputString; inputString = Console.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);,string name = “李四“; Console.WriteLine(“My name is 0 ,I am 1 “, name,18);,格式字符串,變量列表,String類的Format()方法用來(lái)格式化字符串,關(guān)鍵代碼:,record = string.Format( “姓名:0n出生年月:1n身高:2n 血型:3n星座:4n最喜歡的食物:5“, name, birthday, height, bloodType, planet, favourFood); Console.WriteLine(“n這是你的個(gè)人檔案:“); Console.WriteLine(record);,參數(shù)與 WritLine() 方法相似,Format() 的語(yǔ)法小結(jié),string myString = string.Format(“格式字符串“, 參數(shù)列表);,string myString = string.Format (“0 乘以 1 等于 2 “, 2, 3, 2*3);,格式字符串,代表,參數(shù)列表,2乘以3等于6,包括占位符x,小結(jié),補(bǔ)充下劃線處的占位符,輸出五個(gè)成語(yǔ),string yi = “一“; string er = “二“; string san = “三“; string word = string.Format( “獨(dú) _ 無(wú) _,_ 心 _ 意,垂涎 _ 尺,略知 _ _,舉_ 反 _“, yi, er, san); Console.WriteLine(word);,string yi = “一“; string er = “二“; string san = “三“; string word = string.Format( “獨(dú)0無(wú)1,2心1意,垂涎2尺,略知01,舉0反2“, yi, er, san); Console .WriteLine(word);,枚舉,access modifiers enum :enum_base enum body,class MyApp enum Fabric : int Cotton = 1, Silk = 2, Wool = 4 static void Main() Fabric fab = Fabric.Cotton; int fabNum = (int) fab; string fabType = fab.ToString(); Console.WriteLine(fab); ,整型,默認(rèn)為int,默認(rèn)為internal,枚舉和位標(biāo)志,namespace MyHelloApp class myApp Flags enum 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 = (Fabric)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); Console.WriteLine (“整型值 = “ + n2); Console.WriteLine (“字符串值 = “ + str); Console.WriteLine (“浮點(diǎn)值 = “ + n3); ,變量中存儲(chǔ)的值取決于該變量的類型,常量,static void Main(string args) / PI常量PI const float _pi = 3.1415169F; / 由地球引力引起的加速度常量,單位為 cm/s*s const float _gravity = 980; / 鐘擺的長(zhǎng)度 int length = 60; / 鐘擺的周期 double period = 0; / 鐘擺周期的計(jì)算公式 period = 2 * _pi * Math.Sqrt(length / _gravity); Console.WriteLine (“鐘擺的周期為 0 秒“, period); ,聲明常量,在表達(dá)式中使用常量,const 關(guān)鍵字用于聲明常量,數(shù)組,數(shù)組是同一數(shù)據(jù)類型的一組值 數(shù)組屬于引用類型,因此存儲(chǔ)在堆內(nèi)存中 數(shù)組元素初始化或給數(shù)組元素賦值都可以在聲明數(shù)組時(shí)或在程序的后面階段中進(jìn)行 語(yǔ)法: 數(shù)據(jù)類型, 數(shù)組名稱 = new 類型 n,; int arrayHere = new int 6;,數(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; icount; i+) Console.WriteLine(“請(qǐng)輸入第 0 個(gè)乘客的姓名 “,i+1); namesi=Console.ReadLine(); Console.WriteLine(“已登機(jī)的乘客有: “); / 用 foreach 循環(huán)顯示姓名 foreach(string disp in names) Console.WriteLine(“0“, disp); ,數(shù)組聲明,初始化數(shù)組元素的循環(huán),顯示輸出的循環(huán),一維數(shù)組和多維數(shù)組都屬于矩形數(shù)組,而C#所特有的不規(guī)則數(shù)組是數(shù)組的數(shù)組,在它的內(nèi)部,每個(gè)數(shù)組的長(zhǎng)度可以不同,就像一個(gè)鋸齒形狀。 (1)不規(guī)則數(shù)組的聲明 語(yǔ)法形式: type arrayName ; 方括號(hào) 的個(gè)數(shù)與數(shù)組的維數(shù)相關(guān)。 例如: int jagged ; / jagged是一個(gè)int類型的二維不規(guī)則數(shù)組 (2)創(chuàng)建數(shù)組對(duì)象 以二維不規(guī)則數(shù)組為例:,3不規(guī)則數(shù)組,struct structEx public int structDataMember; public void structMethod1() /structMethod1 實(shí)現(xiàn) ,自定義數(shù)據(jù)類型 可以在其內(nèi)部定義方法 無(wú)法實(shí)現(xiàn)繼承 屬于值類型 主要結(jié)構(gòu):,struct student public int stud_id; public string stud_name; public float stud_marks; public void show_details() /顯示學(xué)生詳細(xì)信息 ,結(jié)構(gòu),數(shù)據(jù)成員,方法,所有與 Student 關(guān)聯(lián)的詳細(xì)信息都可以作為一個(gè)整體進(jìn)行存儲(chǔ)和訪問(wèn),C# 的基本數(shù)據(jù)類型,C#中的數(shù)據(jù)類型分為兩個(gè)基本類別 值類型 表示實(shí)際數(shù)據(jù) 只是將值存放在內(nèi)存中 值類型都存儲(chǔ)在堆棧中 int、char、結(jié)構(gòu) 引用類型 表示指向數(shù)據(jù)的指針或引用 包含內(nèi)存堆中對(duì)象的地址 為 null,則表示未引用任何對(duì)象 類、接口、數(shù)組、字符串,C# 的基本數(shù)據(jù)類型,static void Main(string args) / 聲明一個(gè)值類型的整型數(shù)據(jù)類型 int value = 130; Console.WriteLine(“該變量的初始值為 0“, value); Test(value); / 由于該數(shù)據(jù)類型屬于值類型,所以將恢復(fù)其初始值 Console.WriteLine(“該變量的值此時(shí)為 0“, value); static void Test(int byVal) int t = 20; byVal = t* 30; ,將value的初始值傳遞給Test()方法,不反映已經(jīng)改變的val值,而保留原始值,C# 的基本數(shù)據(jù)類型,static void Main(string args) DataType objTest = new DataType (); objTest.Value = 130; / 傳遞屬于引用類型的對(duì)象 Test(objTest); / 由于該數(shù)據(jù)類型屬于引用類型,所以會(huì)考慮新處理的值 Console.WriteLine(“變量的值為 0“, objTest.Value); static void Test(DataType data) int t = 20; data.Val = temp * 30; ,將 DataTypeTest 的引用傳遞給 Test(),被傳遞的value在Test()中改變,反映已經(jīng)改變的value值,class DataType public int Value; ,引用類型和值類型,System.Object方法,引用類型和值類型的內(nèi)存分配,值類型存儲(chǔ)在運(yùn)行棧,引用類型存儲(chǔ)在托管堆 Apparel myApparel = new Apparel(); Apparel myApparel1 = myApparel;,Class Apparel public double Price = 250.0; public string FabType = “Syn”; ,棧,托管堆,裝箱與拆箱,裝箱即將值類型轉(zhuǎn)換為引用 int age = 17; Object refAge = age 拆箱即將引用類型轉(zhuǎn)換為值類型。 int newAge = (int)refAge; double newAge = (double)refAge; /錯(cuò)誤,要具有相同類型,運(yùn)算符和表達(dá)式,運(yùn)算符和表達(dá)式,運(yùn)算符和表達(dá)式,運(yùn)算符和表達(dá)式,運(yùn)算符和表達(dá)式 9-6,賦值運(yùn)算符 (=),變量 = 表達(dá)式; 例如: 身高 = 177.5; 體重 = 78; 性別 = “m”;,運(yùn)算符和表達(dá)式 9-7,一元運(yùn)算符 (+/-),Variable +; 相當(dāng)于 Variable = Variable + 1; Variable -; 相當(dāng)于 Variable = Variable - 1;,運(yùn)算符和表達(dá)式,運(yùn)算符和表達(dá)式,C# 運(yùn)算符的優(yōu)先級(jí),選擇結(jié)構(gòu),語(yǔ)法: if () else ,選擇結(jié)構(gòu)用于根據(jù)表達(dá)式的值執(zhí)行語(yǔ)句,if else,條件:只能是bool類型的值,選擇結(jié)構(gòu),switch (“cotton”) case “COTTON”: case “cotton”: break; case 值3: case 值4: break; ,switchcase,表達(dá)式可以是int、字符或字符串 C#不允許從一個(gè)case塊繼續(xù)執(zhí)行到下一個(gè)case塊。每個(gè)case塊必須以一個(gè)跳轉(zhuǎn)控制語(yǔ)句break、goto或return結(jié)束 多個(gè)case標(biāo)簽可以對(duì)應(yīng)一個(gè)代碼塊,循環(huán)結(jié)構(gòu),循環(huán)結(jié)構(gòu)用于對(duì)一組命令執(zhí)行一定的次數(shù)或反復(fù)執(zhí)行一組命令,直到指定的條件為真。 循環(huán)結(jié)構(gòu)的類型 while 循環(huán) do 循環(huán) for 循環(huán) foreach 循環(huán),條件:只能是bool類型的值,while 循環(huán)反復(fù)執(zhí)行指定的語(yǔ)句,直到指定的條件為真 語(yǔ)法 : while (條件) / 語(yǔ)句 break 語(yǔ)句可用于退出循環(huán) continue 語(yǔ)句可用于跳過(guò)當(dāng)前循環(huán)并開始下一循環(huán),while 循環(huán),dowhile 循環(huán),dowhile 循環(huán)與 while 循環(huán)類似,二者區(qū)別在于 dowhile 循環(huán)中即使條件為假時(shí)也至少執(zhí)行一次該循環(huán)體中的語(yǔ)句。 語(yǔ)法 : do / 語(yǔ)句 while (條件),for 循環(huán),for 循環(huán)要求只有在對(duì)特定條件進(jìn)行判斷后才允許執(zhí)行循環(huán) 這種循環(huán)用于將某個(gè)語(yǔ)句或語(yǔ)句塊重復(fù)執(zhí)行預(yù)定次數(shù)的情形 語(yǔ)法 : for (初始值; 條件; 增/減) /語(yǔ)句 ,foreach 循環(huán) 2-1,foreach 循環(huán)用于遍歷整個(gè)集合或數(shù)組 語(yǔ)法: foreach (數(shù)據(jù)類型 元素(變量) in 集合或者數(shù)組) /語(yǔ)句 ,foreach 循環(huán)2-2,static void Main(string args) / 存放字母的個(gè)數(shù) int Letters = 0; / 存放數(shù)字的個(gè)數(shù) int Digits = 0; / 存放標(biāo)點(diǎn)符號(hào)的個(gè)數(shù) int Punctuations = 0; / 用戶提供的輸入 string instr; Console.WriteLine(“請(qǐng)輸入一個(gè)字符串 “); instr = Console.ReadLine(); / 聲明 foreach 循環(huán)以遍歷輸入的字符串中的每個(gè)字符。 foreach(char ch in instr) / 檢查字母 if(char.IsLetter(ch) Letters+; / 檢查數(shù)字 if(char.IsDigit(ch) Digits+; / 檢查標(biāo)點(diǎn)符號(hào) if(char.IsPunctuation(ch) Punctuations+; Console.WriteLine(“字母?jìng)€(gè)數(shù)為: 0“, Letters); Console.WriteLine(“數(shù)字個(gè)數(shù)為: 0“, Digits); Console.WriteLine(“標(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 WriteTest public static void Main() int array = 1, 2, 3, 4, 5 ; foreach (int item in array) Console.WriteLine(item); ,using System; public class WriteTest public static void Main() int array = 1, 2, 3, 4, 5 ; foreach (int item in array) item += item; Console.WriteLine(item); ,C#的預(yù)處理指令2-1,預(yù)處理指令是C#編譯器在詞法分析階段讀取的語(yǔ)句。這些語(yǔ)句可以指示編譯器包含或不包含某些代碼,甚至可以根據(jù)預(yù)處理指令的值終止編譯。 預(yù)處理指令由字符#標(biāo)識(shí),并且字符#必須是該行的第一個(gè)非空字符。 預(yù)處理指令最常見(jiàn)的三個(gè)用途是:完成條件編譯、增加診斷來(lái)報(bào)告錯(cuò)誤和警告、定義代碼域。,C#的預(yù)處理指令2-2,#define CLIENT #define DEBUG using System; public class MyApp public static void Main() #if DEBUG & INHOUSE #warning Debug in on. #elif DEBUG & CLIENT #error Debug not allowed in Client Code. #endif ,控制臺(tái)輸入和輸出,數(shù)據(jù)輸入(Read,ReadLine) Console.Read ()方法 Console.Read方法用來(lái)從控制臺(tái)讀取一個(gè)字符,其定義如下: Public static int Read(); Read方法返回所讀取的字符的Unicode編碼值。 注意: Read方法的返回變量是32位的整數(shù),如果需要得到輸入的字符,則必須通過(guò)數(shù)據(jù)類型的顯式轉(zhuǎn)換才能得到相應(yīng)的字符。,控制臺(tái)輸入和輸出,Console.Read () /ReadTest.cs using System; public class ReadTest public static void Main() int i; char ch; i=Console.Read(); ch=(char) i; /顯式類型轉(zhuǎn)換 Console.WriteLine(i); Console.WriteLine(ch); ,運(yùn)行結(jié)果: A 65 A,控制臺(tái)輸入和輸出,Console.ReadLine ()方法 Console.ReadLine方法用來(lái)從控制臺(tái)讀取一行字符,定義如下: Public static string ReadLine(); Read方法返回所讀取一行字符的字符串。一般情況下,一行輸入是指從輸入一個(gè)字符開始,遇到回車符號(hào)為止。,控制臺(tái)輸入和輸出,/ReadLine.cs using System; using System.Globalization; public class ReadTest public static void Main() int i; double d; string str; str=Console.ReadLine(); /由控制臺(tái)輸入整數(shù)字符串 i=int.Parse(str); /整數(shù)字符串轉(zhuǎn)換為整數(shù) Console.WriteLine(i); str=Console.ReadLine(); /由控制臺(tái)輸入浮點(diǎn)字符串 d=double.Parse(str); /浮點(diǎn)字符串轉(zhuǎn)換為浮點(diǎn)數(shù) Console.WriteLine(d); ,運(yùn)行結(jié)果: 1234 1234 123.456 123.456,控制臺(tái)輸入和輸出,數(shù)據(jù)輸出(Write WriteLine) Console.Write ()方法 Console.Write方法用來(lái)向控制臺(tái)輸出一個(gè)字符,但控制臺(tái)的光標(biāo)不會(huì)移到下一行。其定義如下: public static void Write(XXX value); public static void Write(string format,object o1,); 注意:格式化format同格式化函數(shù)Format中的格式化串類似,其格式如下: N,M:formatstring 其中,字符N表示輸出變量的序號(hào),M表示輸入變量在控制臺(tái)中所占的字符空間,如果這個(gè)數(shù)字為負(fù)數(shù),則按照左對(duì)齊的方式輸出,若為正數(shù),則按照右對(duì)齊方式輸出。,控制臺(tái)輸入和輸出,/WriteTest.cs using System; public class WriteTest public static void Main() int i=32767; double d=456.56789; /由控制臺(tái)。按照十進(jìn)制輸出整數(shù)及浮點(diǎn)數(shù) Console.Write(“i=0 x0,8:Xtd=1,10:F3”,i,d); /由控制臺(tái)。按照十六進(jìn)制輸出整數(shù) Console.Write(“i=0 x0,-8:Xtd=1,-10:F3”,i,d); 輸出結(jié)果: i=0 x 7FFF d= 456.568i=0 x7FFF d=456.568,控制臺(tái)輸入和輸出,Console.WriteLine()方法 Console.WriteLine方法用來(lái)向控制臺(tái)輸出一行字符,即WriteLine方法在輸出信息之后,在信息的尾部自動(dòng)添加“rn”字符,表示回車換行。 public static void WriteLine(XXX value); public static void WriteLine(string format,object o1,); 注意:格式化format同WriteLine中的格式化參數(shù)完全一樣。,控制臺(tái)輸入和輸出,/WriteLine.cs using System; public class WriteTest public static void Main() int i=32767; double d=456.56789; /格式化輸出 Console.WriteLine(“i=0 x0,8:Xtd=1,10:F3”,i,d); Console.WriteLine(“i=0 x0,-8:Xtd=1,-10:F3”,i,d); Console.WriteLine(“i=0 x0,-8:Dtd=1,-10:C3”,i,d); 輸出結(jié)果: i=0 x 7FFF d= 456.568 i=0 x7FFF d=456.568 i=32767 d=¥456.568,第3章 C#面向?qū)ο笤O(shè)計(jì),結(jié)構(gòu)程序設(shè)計(jì)的不足數(shù)據(jù)與方法分離,void SpeedUp(int ,double speed = 0;,結(jié)構(gòu)程序設(shè)計(jì)的不足代碼不能重用,void main() int doorN_car1 = 2; int color_car1 = 0; int speed_car1 = 100; printf(“%d %d %dn“, doorN_car1, color_car1, speed_car1); int doorN_car2 = 4; int color_car2 = 1; int speed_car2 = 80; printf(“%d %d %dn“, doorN_car2, color_car2, speed_car2); ,C#的面向?qū)ο筇匦?所有東西都是對(duì)象:變量和方法的集合。 初級(jí)特性:OO最基本的概念,即類和對(duì)象。 中級(jí)特性:OO最核心的概念,即封裝、繼承和多態(tài)。 高級(jí)特性:由初級(jí)特性和中級(jí)特性引出的一些問(wèn)題,如構(gòu)造函數(shù)的使用、覆蓋的規(guī)則、靜態(tài)變量和函數(shù)等。,初級(jí)特性,面向?qū)ο蠹夹g(shù)最基本的概念是類和對(duì)象: 類是一個(gè)樣板,以操作、表示和算法的形式完整地定義了一組對(duì)象的行為。它通常也是面向?qū)ο笳Z(yǔ)言中的模塊化、封裝和數(shù)據(jù)抽象的基礎(chǔ)。 對(duì)象是類的一個(gè)實(shí)例,是一個(gè)軟件單元,它由一組結(jié)構(gòu)化的數(shù)據(jù)和在其上的一組操作構(gòu)成。,抽象數(shù)據(jù)類型,類實(shí)際上為實(shí)際的物體在計(jì)算機(jī)中定義了一種抽象數(shù)據(jù)類型。 抽象數(shù)據(jù)類型是僅由數(shù)據(jù)類型和可能在這個(gè)數(shù)據(jù)類型上進(jìn)行的操作定義的。 使用者只能通過(guò)操作方法來(lái)訪問(wèn)其屬性,不用知道這個(gè)數(shù)據(jù)類型內(nèi)部各種操作是如何實(shí)現(xiàn)的。,class Car public int doorN; public int color; public int speed; public void SpeedUp() speed += 10; class MyApp static void Main() Car car1; car1.doorN = 2; car1.color = 0; car1.speed = 100; Car car2; car2.doorN = 4; car2.color = 1; car2.speed = 80; ,public double speed;,面向?qū)ο蟪绦蛟O(shè)計(jì)封裝、代碼重用,3.2 類與對(duì)象,類:C#所有的代碼都是在某一個(gè)類中,因此不可能在類之外的全局區(qū)域有變量和方法。 對(duì)象:C#中的對(duì)象相當(dāng)于一塊內(nèi)存區(qū)域,保存對(duì)象特有的類中所定義的數(shù)據(jù)。 引用:C#中對(duì)于對(duì)象的操作全部通過(guò)引用進(jìn)行。,3.2.1 類的定義 類使用class關(guān)鍵字聲明。采用的形式為: 類修飾符 class 類名稱:基類以及實(shí)現(xiàn)的接口列表 類體 ;,類、對(duì)象和引用的聲明,聲明一個(gè)類:訪問(wèn)修飾字 class 類名變量聲明,方法聲明 class Student long id; / 學(xué)號(hào) char gender; /性別 int classID; / 班級(jí)號(hào),注意不能用class作屬性名 void ChangeClass(int aClassID) /更改班級(jí) 聲明一個(gè)對(duì)象引用:類名引用名Student student; 創(chuàng)建一個(gè)對(duì)象:new 類構(gòu)造函數(shù) student = new Student(); /如果缺少這一步編譯器會(huì)報(bào)錯(cuò) 使用對(duì)象:引用名. 變量名/方法名(參數(shù)) student.id = 200328013203194;,引用與對(duì)象舉例,引用類似于C+中的對(duì)象指針。但又有區(qū)別: 在C#中”引用“是指向一個(gè)對(duì)象在內(nèi)存中的位置,在本質(zhì)上是一種帶有很強(qiáng)的完整性和安全性的限制的指針。 當(dāng)聲明某個(gè)類、接口或數(shù)組類型的一個(gè)變量時(shí),變量的值總是某個(gè)對(duì)象的引用或者是null引用。 指針就是簡(jiǎn)單的地址而已,而引用除了表示地址而外,還是被引用的數(shù)據(jù)對(duì)象的縮影,可以提供其他信息。 指針可以有+、-運(yùn)算,引用不可以運(yùn)算。,3.1.2 類的成員 1類的成員分類 常量:表示與該類相關(guān)聯(lián)的常量值。 字段:即該類的變量。 類型:用于表示一些類型,它們是該類的局部類型。 方法:用于實(shí)現(xiàn)可由該類執(zhí)行的計(jì)算和操作。 屬性:用于定義一些命名特性,通過(guò)它來(lái)讀取和寫入相關(guān)的特性。 事件:用于定義可由該類生成的通知。 索引器:使該類的實(shí)例可按與數(shù)組相同的(語(yǔ)法)方式進(jìn)行索引。 運(yùn)算符:用于定義表達(dá)式運(yùn)算符,通過(guò)它對(duì)該類的實(shí)例進(jìn)行運(yùn)算。 實(shí)例構(gòu)造函數(shù):用于規(guī)定在初始化該類的實(shí)例時(shí)需要做些什么。 析構(gòu)函數(shù):用于規(guī)定在永久地放棄該類的一個(gè)實(shí)例之前需要做些什么。 靜態(tài)構(gòu)造函數(shù):用于規(guī)定在初始化該類自身時(shí)需要做些什么。,public class Furniture const double salesTax = .065; private double purchPrice; private string vendor, inventoryID; public Furniture(string vendor, string inventID, double purchPrice) this.vendor = vendor; this.inventoryID = inventID; this.purchPrice = purchPrice; public string MyVendor get return vendor; public double CalcSalesTax(double salePrice) return salePrice * salesTax; ,字段,構(gòu)造函數(shù),成員屬性,方法,2類成員的可訪問(wèn)性,類或結(jié)構(gòu)的默認(rèn)訪問(wèn)類型是internal。 類中所有的成員,默認(rèn)均為private。,class Furniture const double salesTax = .065; private double purchPrice; private string vendor, inventoryID; public Furniture(string vendor, string inventID, double purchPrice) this.vendor = vendor; this.inventoryID = inventID; this.purchPrice = purchPrice; publ

注意事項(xiàng)

本文(C#入門經(jīng)典教程--1.ppt)為本站會(huì)員(good****022)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲