交通信息系統(tǒng)-專題ppt_第1頁(yè)
交通信息系統(tǒng)-專題ppt_第2頁(yè)
交通信息系統(tǒng)-專題ppt_第3頁(yè)
交通信息系統(tǒng)-專題ppt_第4頁(yè)
交通信息系統(tǒng)-專題ppt_第5頁(yè)
已閱讀5頁(yè),還剩148頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

專題一C#與NET平臺(tái)介紹

了解.NETFramework的結(jié)構(gòu)理解.NETFramework的基本概念CLRJITCTSMSIL了解.NETFramework命名空間了解C#程序的基本結(jié)構(gòu)教學(xué)目標(biāo)C#簡(jiǎn)介任務(wù)1C#語言的由來在過去的二十年里,C和C++已經(jīng)成為在商業(yè)軟件的開發(fā)領(lǐng)域中使用最廣泛的語言。它們?yōu)槌绦騿T提供了十分靈活的操作,不過同時(shí)也犧牲了一定的開發(fā)效率。與VB等語言相比,同等級(jí)別的C/C++應(yīng)用程序往往需要更長(zhǎng)時(shí)間來開發(fā)。由于C/C++語言的復(fù)雜性,許多程序員都試圖尋找一種新的語言,希望能在功能與效率之間找到一個(gè)更為理想的權(quán)衡點(diǎn)。C#(Csharp)是對(duì)這一問題的解決方案。C#是一種新的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft.NET平臺(tái)的應(yīng)用程序,Microsoft.NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通訊領(lǐng)域。

.NET的語言互操作性:不同語言編寫的代碼可互相調(diào)用C#的平臺(tái)移植性:框架JIT編譯器(JustInTime,即時(shí)編譯器)代碼被執(zhí)行C++VB編譯器編譯器可執(zhí)行代碼可執(zhí)行代碼RUNTIMERUNTIME.NET代碼的編譯

語言特定的編譯器和運(yùn)行庫(kù)代碼被執(zhí)行C++VB編譯器編譯器可執(zhí)行代碼可執(zhí)行代碼RUNTIMERUNTIMEIL+元數(shù)據(jù)CLRIL和CLR的使用

IntermediateLanguage

CommonLanguageRuntime編譯執(zhí)行.NET程序MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行CLR第一次編譯第二次編譯.NET程序被編譯兩次,第一次編譯很慢,而第二次編譯較快!語言編譯器.NET源代碼Microsoft中間語言MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行CLRMSIL幫助語言實(shí)現(xiàn)互操作IL不是字節(jié)代碼,但很接近字節(jié)代碼。因此,執(zhí)行應(yīng)用程序時(shí),IL到機(jī)器碼的轉(zhuǎn)換速度非???!通過CLR將MSIL轉(zhuǎn)換為具體CPU的代碼CPU無關(guān)的指令集語言編譯器.NET源代碼程序集module通用語言運(yùn)行時(shí)CLRCLR.NET源代碼MSIL+元數(shù)據(jù)機(jī)器代碼代碼被執(zhí)行管理內(nèi)存易于設(shè)計(jì)組件和應(yīng)用程序,其對(duì)象可以跨語言互動(dòng)跨語言集成(特別是跨語言繼承)JIT編譯器:一次編譯,就可運(yùn)行在支持運(yùn)行庫(kù)的任何CPU和操作系統(tǒng)上語言編譯器.NETFramework的體系結(jié)構(gòu)VisualStudio.NETCLR通用語言運(yùn)行時(shí)(CLR)BaseClassLibrary:IO,Drawing,ThreadingDataandXMLXMLWebservicesWindowsFormsWebForms通用語言規(guī)范(CLS)VBC++C#…JScript操作系統(tǒng).NetFramework類庫(kù)(FCL)CLS和CTS通用語言規(guī)范CLS CommonLanguageSpecification規(guī)定所有.NET語言都應(yīng)遵循的規(guī)則生成可與其他語言互操作的應(yīng)用程序通用類型系統(tǒng)(CommonTypeSystem,CTS)包含標(biāo)準(zhǔn)數(shù)據(jù)類型包含準(zhǔn)則集CLS、CTS和MSIL緊密配合以實(shí)現(xiàn)語言互操作性編譯和執(zhí)行C#應(yīng)用程序任務(wù)2第一個(gè)C#程序:HelloWorld

usingSystem;classHelloWorld{staticvoidMain(){Console.WriteLine(“Hello,World!”);console.readline();//此處用于觀看輸出結(jié)果;}}HelloWorld.cs輸出用CSC編譯搜索CSC.exe這個(gè)程序所在的文件路徑將這個(gè)路徑復(fù)制下來,右擊“我的電腦”-》“屬性”-》“高級(jí)”-》“環(huán)境變量”在“系統(tǒng)變量”選擇“path”,點(diǎn)“編輯”,將剛才復(fù)制的路徑添加到系統(tǒng)變量中,注意將不同路徑之間用分號(hào)隔開環(huán)境變量設(shè)置完畢。點(diǎn)擊開始-》運(yùn)行-》輸入cmd,進(jìn)入控制臺(tái)利用控制臺(tái)命令寫入當(dāng)前存放代碼文件的文件夾,鍵入“cscFirst。cs”,回車運(yùn)行,這時(shí)在該文件夾下找到First.Exe文件輸入First回車查看運(yùn)行結(jié)果用CSC編譯用CSC編譯用CSC編譯CSC命令的用法用CSC編譯關(guān)于編譯結(jié)果EXE文件的說明用VisualStudio編譯單擊“開始”“程序”“MicrosoftVisualStudio.NET2005”“MicrosoftVisualStudio.NET2005”此時(shí)將打開VS.NET2005的起始頁(yè)要?jiǎng)?chuàng)建C#控制臺(tái)應(yīng)用程序,請(qǐng)從列表中選擇“創(chuàng)建建”“項(xiàng)目”。此時(shí)將打開“新建項(xiàng)目”窗口選擇“VisualC#項(xiàng)目”作為項(xiàng)目類型,選擇“控制臺(tái)應(yīng)用程序”作為模板

HelloWorld.csprojAssemblyInfo.csProgram.cs“HelloWorld”應(yīng)用程序文件用VisualStudio編譯要生成C#項(xiàng)目,請(qǐng)從菜單中選擇“生成”“生成解決方案”該過程將編譯項(xiàng)目中包括的所有文件,編譯結(jié)果顯示在“輸出”窗口中如果結(jié)果顯示“生成:1成功或最新,0失敗,0被跳過”,則說明已經(jīng)成功生成,然后即可交付該應(yīng)用程序用VisualStudio編譯要運(yùn)行剛才生成的應(yīng)用程序,請(qǐng)從菜單中選擇“調(diào)試”“開始執(zhí)行(不調(diào)試)”輸出結(jié)果顯示在VS.NET控制臺(tái)窗口中用VisualStudio編譯C#應(yīng)用程序文件夾結(jié)構(gòu)VisualStudio.NET2005創(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)用VisualStudio編譯C#的程序結(jié)構(gòu)任務(wù)3//這是用C#

編寫的一個(gè)簡(jiǎn)單的HelloWorld程序usingSystem;namespaceNotepad{ classHelloWorld {

staticvoidMain() { Console.WriteLine("HelloWorld"); } }}聲明HelloWorld類描述代碼的注釋HelloWorld

程序程序入口點(diǎn),Main的返回類型為void控制臺(tái)類的WriteLine()方法用于顯示輸出結(jié)果導(dǎo)入System命名空間聲明命名空間Notepad將文件保存為*.cs第一個(gè)C#程序:HelloWorld1:usingSystem;第1行:using關(guān)鍵字類似C/C++的#include用來引用.NET框架類庫(kù)中的資源通常在程序文件的開頭使用如果程序中需要多種資源,可以使用多次usingSystem命名空間System命名空間提供了構(gòu)建應(yīng)用程序所需的系統(tǒng)統(tǒng)能的訪問1.HclassA{…}2.HclassA{…}3.cpp#include“1.h”#include“2.h”….3.cppclassA{…}classA{…}…第一個(gè)C#程序:HelloWorldC++的命名空間用法namespacea1{classA{…}}namespacea2{classA{…}}3.csusinga1;usinga2;a1.Aa2.A第一個(gè)C#程序:HelloWorldC#的命名空間用法常用命名空間命名空間說明System.Drawing處理圖形和繪圖,包括打印System.Data處理數(shù)據(jù)存取和管理,在定義ADO.NET技術(shù)中扮演重要角色System.IO管理對(duì)文件和流的同步和異步訪問System.Windows處理基于窗體的窗口的創(chuàng)建System.Reflection

包含從程序集讀取元數(shù)據(jù)的類System.Threading

包含用于多線程編程的類

System.Collections

包含定義各種對(duì)象集的接口和類第一個(gè)C#程序:HelloWorld第一個(gè)C#程序:HelloWorld2:classHelloWorld3:{………..8:}第2,3,8行:類在C#或其他面向?qū)ο笳Z言中,需要編寫類使用關(guān)鍵字class定義一個(gè)類,類的內(nèi)容放在一對(duì){}中示例中定義了一個(gè)名為HelloWorld的類第一個(gè)C#程序:HelloWorld4:staticvoidMain()5:{………..7:}第4,5,7行:Main方法Main方法是應(yīng)用程序的入口點(diǎn),編譯器將由該處開始執(zhí)行程序方法體也放在一對(duì){}中每個(gè)C#的應(yīng)用程序都必須包含Main方法4:staticvoidMain()5:{………..7:}第4,5,7行:Main方法static表示Main方法是一個(gè)全局方法void表示Main方法沒有任何返回值,即返回值是空參數(shù)放在小括號(hào)中定義。此處括號(hào)內(nèi)沒有內(nèi)容,表明Main方法沒有任何參數(shù)第一個(gè)C#程序:HelloWorld6:Console.WriteLine(“Hello,World!”);第6行:語句在C#中要執(zhí)行的指令語句之間用;分隔,編譯器通過分號(hào)來區(qū)分多個(gè)語句使用大括號(hào){}標(biāo)識(shí)某個(gè)代碼塊的開始和結(jié)束,從而可以對(duì)語句進(jìn)行組合。大括號(hào)必須成對(duì)匹配。第一個(gè)C#程序:HelloWorld6:Console.WriteLine(“Hello,World!”);第6行:語句

HelloWorld程序的主要目的就是在屏幕上顯示一條問候 WriteLine方法用來將問候語寫到標(biāo)準(zhǔn)輸出設(shè)備上。

Console代表標(biāo)準(zhǔn)輸出設(shè)備---屏幕,它屬于System命名空間

WriteLine方法是Console類的方法。訪問類或?qū)ο蟮姆椒ㄊ褂?點(diǎn)取符.來完成。字符串用雙引號(hào)“”表示字符串“Hello,World”是WriteLine方法的參數(shù),表示屏幕輸出 的內(nèi)容第一個(gè)C#程序:HelloWorldC#的數(shù)據(jù)類型及變量任務(wù)4系統(tǒng)預(yù)定義數(shù)據(jù)類型類型描

述范圍/精度例子object所有其它類型的最根本的基礎(chǔ)類型objecto=null;string字符串類型,一個(gè)字符串是一個(gè)Unicode字符序列strings="Hello";sbyte8-bit有符號(hào)整數(shù)類型–128...127sbyteval=12;short16-bit有符號(hào)整數(shù)類型–32,768...32,767shortval=12;int32-bit有符號(hào)整數(shù)類型–2,147,483,648...2,147,483,647intval=12;long64-bit有符號(hào)整數(shù)類型–9,223,372,036,854,775,808...9,223,372,036,854,775,807longval1=12;longval2=34L;byte8-bit無符號(hào)整數(shù)類型0...255byteval1=12;byteval2=34U;ushort16-bit無符號(hào)整數(shù)類型0...65,535ushortval1=12;ushortval2=34U;uint32-bit無符號(hào)整數(shù)類型0...4,294,967,295uintval1=12;uintval2=34U;系統(tǒng)預(yù)定義數(shù)據(jù)類型類型描

述范圍/精度例子ulong64-bit無符號(hào)整數(shù)類型0...18,446,744,073,709,551,615ulongval1=12;ulongval2=34U;ulongval3=56L;ulongval4=78UL;float單精度浮點(diǎn)數(shù)類型1.5

×

10?45

3.4

×

1038,7位精度floatval=1.23F;double雙精度浮點(diǎn)數(shù)類型5.0

×

10?324至

1.7

×

10308,15位精度doubleval1=1.23;doubleval2=4.56D;bool布爾類型類型;一個(gè)布爾類型數(shù)據(jù)不是真就是假true,falseboolval1=true;boolval2=false;char字符類型;一個(gè)字符數(shù)據(jù)是一個(gè)Unicode字符charval='h';decimal精確十進(jìn)制類型,有28個(gè)有效位1.0

×

10?28至

7.9

×

1028,28位精度decimalval=1.23M;[accessmodifiers]enum<identifier>[:enum_base]{enumbody}classMyApp{enumFabric:int{Cotton=1,Silk=2,Wool=4

}staticvoidMain(){Fabricfab=Fabric.Cotton;intfabNum=(int)fab;stringfabType=fab.ToString();Console.WriteLine(fab);}}整型,默認(rèn)為int默認(rèn)為internal用戶自定義數(shù)據(jù)類型-枚舉枚舉和位標(biāo)志namespaceMyHelloApp{classmyApp{[Flags]enumFabric{Cotton=1,Silk=2}staticvoidMain(){Fabricfab1=(Fabric)3;Console.WriteLine(fab1.ToString());

}}}用戶自定義數(shù)據(jù)類型-枚舉System.Enum的方法usingSystem;namespaceApp1{classmyApp{enumFabric{Cotton=1,Silk=2}staticvoidMain(){stringfabStr="Cotton";if(Enum.IsDefined(typeof(Fabric),fabStr)){Fabricfab=(Fabric)Enum.Parse(typeof(Fabric),fabStr);Console.WriteLine(Enum.GetName(typeof(Fabric),2));}}}}用戶自定義數(shù)據(jù)類型-枚舉structstructEx{publicintstructDataMember;

publicvoidstructMethod1(){ //structMethod1實(shí)現(xiàn)}}自定義數(shù)據(jù)類型可以在其內(nèi)部定義方法無法實(shí)現(xiàn)繼承屬于值類型主要結(jié)構(gòu):structstudent{ publicintstud_id; publicstringstud_name; publicfloatstud_marks; publicvoidshow_details() { //顯示學(xué)生詳細(xì)信息 }}數(shù)據(jù)成員方法所有與Student關(guān)聯(lián)的詳細(xì)信息都可以作為一個(gè)整體進(jìn)行存儲(chǔ)和訪問用戶自定義數(shù)據(jù)類型-結(jié)構(gòu)體變量

staticvoidMain(string[]args) {

//聲明布爾型、字符串型、整型、短整型和浮點(diǎn)型變量

boolt=false;

shortn1=30;

intn2=1200;

stringstr="jeny";

floatn3=23.1f;

//顯示變量值

Console.WriteLine("布爾值="+t);

Console.WriteLine("短整型值="+n1);

Console.WriteLine("整型值

="+n2);

Console.WriteLine("字符串值="+str);

Console.WriteLine("浮點(diǎn)值="+n3); }變量中存儲(chǔ)的值取決于該變量的類型常量staticvoidMain(string[]args){

//PI常量PI

constfloat_pi=3.1415169F;

//由地球引力引起的加速度常量,單位為cm/s*s

constfloat_gravity=980;

//鐘擺的長(zhǎng)度

intlength=60;

//鐘擺的周期

doubleperiod=0;

//鐘擺周期的計(jì)算公式

period=2*_pi*Math.Sqrt(length/_gravity);

Console.WriteLine("鐘擺的周期為{0}秒",period);}聲明常量在表達(dá)式中使用常量const關(guān)鍵字用于聲明常量變量的常見用法類型類別后綴示例/允許的值bool布爾無true或falseint整數(shù)無intx=100uint,ulog整數(shù)U或Uuintx=1000ulong,ulong長(zhǎng)整型L或llongx=100000Lulong無符號(hào)長(zhǎng)整型ul,uL,Ul,UL,lu,Lu,lU或LUulongx=4324ulfloat單精度浮點(diǎn)數(shù)類型F或ffloatx=34.76Fdouble雙精度浮點(diǎn)數(shù)類型D或ddoublex=763.7245Ddecimal精確十進(jìn)制類型M或mdecimalx=1.544Mchar字符無charx=‘a(chǎn)’string字符串無string=”abc”int:intiMax=int.MaxValue;intpVal=int.Parse(“100”);shorti16=50;inti32=i16;i16=i32;錯(cuò)誤i16=(short)i32;decimaldecimaliRate=3.9834M;iRate=decimal.Round(iRate,2);//四舍五入iRate=decimal.Remainder(512.0M,51.0M);變量的常見用法boolboolbt=(bool)1;//錯(cuò)誤charstringpattern=“123abcd?”;boolbt;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,doublefloatf=24567.66f;doubled=124.45;If(Single.IsNaN(1/0){…}使用Parse轉(zhuǎn)換數(shù)字字符串shortshParse=Int16.Parse("100");intiParse=Int32.Parse("100");longshParse=Int64.Parse("100");decimaldParse=decimal.Parse(“99.99");floatsParse=float.Parse(“99.99");doubledParse=double.Parse(“99.99");變量的常見用法字符串直接量stringpath;path=@”C:\note.txt”;path=“C:\\note.txt”;字符串操作索引字符串中的單個(gè)字符stringstr=“abcd”;charc=str[0];字符串連接strings1=“Myage=“;intmyAge=28;stringcat=s1+myAge;變量的常見用法字符串操作抽取和定位子串stringpoem=“InXanadudidKublaKhan”;stringpoemSeg=poem.Substring(10);poemSeg=poem.Substring(0,9);intindex=poem.IndexOf(“I”);index=poem.LastIndexOf(“n”);比較字符串boolisMatch;stringtitle="AncientMariner";isMatch=(title=="ANCIENTAMRINER");isMatch=(title.ToUpper()=="ANCIENTMARINER");isMatch=title.Equals("AncientMariner");變量的常見用法C#中常用的字符串處理方法:Equals():比較兩個(gè)字符串的值是否相等ToLower():將字符串轉(zhuǎn)換成小寫形式IndexOf():查找某個(gè)字符在字符串中的位置SubString():從字符串中截取子字符串Join():連接字符串Split():分割字符串Trim():去掉字符串兩邊的空格……變量的常見用法實(shí)例將一文件名的擴(kuò)展名改為.dat。例:1.txt改為1.datusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace_011{classProgram{staticvoidMain(string[]args){stringfilename=@"1.2.txt";intindexDot=filename.LastIndexOf('.');stringextendName="dat";filename=filename.Substring(0,indexDot+1);filename+=extendName;Console.WriteLine(filename);}}}變量的常見用法已有如下代碼,按要求增加功能:staticvoidMain(string[]args){stringemail;//電子郵件地址

Console.WriteLine("請(qǐng)輸入你的郵箱:");email=Console.ReadLine();Console.WriteLine("你的郵箱是

{0}",email);}需實(shí)現(xiàn)的功能:1、輸入yes時(shí),程序循環(huán)執(zhí)行2、兼容以下各種形式y(tǒng)es(YES、yes、YeS…..)3、提取郵箱的用戶名變量的常見用法usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace_011{classProgram{staticvoidMain(string[]args){

while(1){stringemail;//電子郵件地址Console.WriteLine("請(qǐng)輸入你的郵箱:");email=Console.ReadLine();Console.WriteLine("你的郵箱是{0}",email);Console.WriteLine("繼續(xù)輸入郵箱嗎?");stringinput=Console.ReadLine();if(input.ToUpper()=="YES")continue;elsebreak;}}}}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()方法——連接字符串變量的常見用法usingSystem;classProgram{staticvoidMain(string[]args){stringinputString;inputString=Console.ReadLine();

inputString=inputString.Trim();string[]splitStrings=inputString.Split('');stringjoinString=string.Join("_",splitStrings);Console.WriteLine(joinString);}}如果字符串兩邊有空格?變量的常見用法Format()方法兩種輸出字符串的方式:stringname="李四";Console.WriteLine("Mynameis"+name+",Iam"+18);stringname="李四";Console.WriteLine("Mynameis

{0},Iam{1}",name,18);格式字符串變量列表變量的常見用法String類的Format()方法用來格式化字符串關(guān)鍵代碼:record=string.Format("姓名:{0}\n出生年月:{1}\n身高:{2}\n

血型:{3}\n星座:{4}\n最喜歡的食物:{5}",name,birthday,height,bloodType,planet,favourFood);Console.WriteLine("\n這是你的個(gè)人檔案:");Console.WriteLine(record);參數(shù)與WritLine()方法相似變量的常見用法Format()的語法小結(jié)stringmyString=string.Format("格式字符串",參數(shù)列表);stringmyString=string.Format("{0}乘以

{1}等于

{2}",2,3,2*3);格式字符串代表參數(shù)列表2乘以3等于6包括占位符{x}變量的常見用法補(bǔ)充下劃線處的占位符,輸出五個(gè)成語stringyi="一";stringer="二";stringsan="三";stringword=string.Format("獨(dú)

_無

_,_心

_意,垂涎

_尺,略知

__,舉_反

_",

yi,er,san);Console.WriteLine(word);stringyi="一";stringer="二";stringsan="三";stringword=string.Format("獨(dú){0}無{1},{2}心{1}意,垂涎{2}尺,略知{0}{1},舉{0}反{2}",

yi,er,san);Console .WriteLine(word);變量的常見用法示例數(shù)組任務(wù)5數(shù)組數(shù)組是同一數(shù)據(jù)類型的一組值數(shù)組屬于引用類型,因此存儲(chǔ)在堆內(nèi)存中數(shù)組元素初始化或給數(shù)組元素賦值都可以在聲明數(shù)組時(shí)或在程序的后面階段中進(jìn)行

語法:數(shù)據(jù)類型[,…]數(shù)組名稱=new類型[n,…];

int[]arrayHere=newint[6];數(shù)組staticvoidMain(string[]args){

intcount;

Console.WriteLine(“請(qǐng)輸入準(zhǔn)備登機(jī)的乘客人數(shù)");

count=int.Parse(Console.ReadLine());

//聲明一個(gè)存放姓名的字符串?dāng)?shù)組,其長(zhǎng)度等于乘客人數(shù)

string[]names=newstring[count];

//用一個(gè)for循環(huán)來接受姓名

for(inti=0;i<count;i++) {

Console.WriteLine(“請(qǐng)輸入第{0}個(gè)乘客的姓名",i+1);

names[i]=Console.ReadLine(); }

Console.WriteLine(“已登機(jī)的乘客有:");

//用foreach循環(huán)顯示姓名

foreach(stringdispinnames) {

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ù)組的聲明語法形式: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ù)組值類型和引用類型任務(wù)6C#的基本數(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ù)類型staticvoidMain(string[]args){

//聲明一個(gè)值類型的整型數(shù)據(jù)類型

intvalue=130;

Console.WriteLine("該變量的初始值為{0}",value);

Test(value);

//由于該數(shù)據(jù)類型屬于值類型,所以將恢復(fù)其初始值

Console.WriteLine("該變量的值此時(shí)為{0}",value);

}staticvoidTest(intbyVal){

intt=20;

byVal=t*30;}將value的初始值傳遞給Test()方法不反映已經(jīng)改變的val值,而保留原始值C#的基本數(shù)據(jù)類型staticvoidMain(string[]args){ DataTypeobjTest=newDataType(); objTest.Value=130; //傳遞屬于引用類型的對(duì)象 Test(objTest); //由于該數(shù)據(jù)類型屬于引用類型,所以會(huì)考慮新處理的值 Console.WriteLine("變量的值為{0}",objTest.Value);}staticvoidTest(DataType

data){ intt=20; data.Val=temp*30;}將DataTypeTest

的引用傳遞給Test()

被傳遞的value在Test()中改變反映已經(jīng)改變的value值classDataType{publicintValue;}引用類型和值類型引用類型和值類型的內(nèi)存分配值類型存儲(chǔ)在運(yùn)行棧,引用類型存儲(chǔ)在托管堆ApparelmyApparel=newApparel();ApparelmyApparel1=myApparel;ClassApparel{publicdoublePrice=250.0;publicstringFabType=“Syn”;}棧托管堆裝箱與拆箱裝箱即將值類型轉(zhuǎn)換為引用intage=17;ObjectrefAge=age拆箱即將引用類型轉(zhuǎn)換為值類型。intnewAge=(int)refAge;doublenewAge=(double)refAge;//錯(cuò)誤,要具有相同類型運(yùn)算符和表達(dá)式任務(wù)7運(yùn)算符和表達(dá)式類別運(yùn)算符說明表達(dá)式算術(shù)運(yùn)算符+執(zhí)行加法運(yùn)算(如果兩個(gè)操作數(shù)是字符串,則該運(yùn)算符用作字符串連接運(yùn)算符,將一個(gè)字符串添加到另一個(gè)字符串的末尾)操作數(shù)1+操作數(shù)2-執(zhí)行減法運(yùn)算操作數(shù)1-

操作數(shù)2*執(zhí)行乘法運(yùn)算操作數(shù)1*

操作數(shù)2/執(zhí)行除法運(yùn)算操作數(shù)1/

操作數(shù)2%獲得進(jìn)行除法運(yùn)算后的余數(shù)操作數(shù)1%

操作數(shù)2++將操作數(shù)加1操作數(shù)++或++操作數(shù)--將操作數(shù)減1操作數(shù)--

或--操作數(shù)~將一個(gè)數(shù)按位取反

~操作數(shù)運(yùn)算符和表達(dá)式類別運(yùn)算符說明表達(dá)式三元運(yùn)算符(條件運(yùn)算符)?:檢查給出的第一個(gè)表達(dá)式expression是否為真。如果為真,則計(jì)算operand1,否則計(jì)算operand2。這是唯一帶有三個(gè)操作數(shù)的運(yùn)算符

表達(dá)式?操作數(shù)1:操作數(shù)2運(yùn)算符和表達(dá)式類別運(yùn)算符說明表達(dá)式比較運(yùn)算符>檢查一個(gè)數(shù)是否大于另一個(gè)數(shù)

操作數(shù)1>操作數(shù)2<檢查一個(gè)數(shù)是否小于另一個(gè)數(shù)

操作數(shù)1<

操作數(shù)2>=檢查一個(gè)數(shù)是否大于或等于另一個(gè)數(shù)

操作數(shù)1>=

操作數(shù)2<=檢查一個(gè)數(shù)是否小于或等于另一個(gè)數(shù)

操作數(shù)1<=

操作數(shù)2==檢查兩個(gè)值是否相等

操作數(shù)1==

操作數(shù)2!=檢查兩個(gè)值是否不相等操作數(shù)1!=

操作數(shù)2運(yùn)算符和表達(dá)式類別運(yùn)算符說明表達(dá)式成員訪問運(yùn)算符.用于訪問數(shù)據(jù)結(jié)構(gòu)的成員數(shù)據(jù)結(jié)構(gòu).成員賦值運(yùn)算符=給變量賦值操作數(shù)1=操作數(shù)2邏輯運(yùn)算符&&對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“與”運(yùn)算

操作數(shù)1&&

操作數(shù)2||對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“或”運(yùn)算操作數(shù)1||

操作數(shù)2!對(duì)兩個(gè)表達(dá)式執(zhí)行邏輯“非”運(yùn)算!操作數(shù)()將操作數(shù)強(qiáng)制轉(zhuǎn)換為給定的數(shù)據(jù)類型

(數(shù)據(jù)類型)操作數(shù)運(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)算符計(jì)算方法表達(dá)式求值結(jié)果(設(shè)X=10)+=運(yùn)算結(jié)果=操作數(shù)1+操作數(shù)2X+=2X=X+212-=運(yùn)算結(jié)果=操作數(shù)1-操作數(shù)2X-=2X=X-28*=運(yùn)算結(jié)果=操作數(shù)1*操作數(shù)2X*=2X=X*220/=運(yùn)算結(jié)果=操作數(shù)1/操作數(shù)2X/=2X=X/25%=運(yùn)算結(jié)果=操作數(shù)1%操作數(shù)2X%=2X=X%20運(yùn)算符和表達(dá)式C#運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)說明運(yùn)算符結(jié)合性1括號(hào)()從左到右2自加/自減運(yùn)算符++/--從右到左3乘法運(yùn)算符除法運(yùn)算符取模運(yùn)算符*/%從左到右4加法運(yùn)算符減法運(yùn)算符+-從左到右5小于小于等于大于大于等于<<=>>=從左到右6等于不等于=!=從左到右從左到右7邏輯與&&從左到右8邏輯或||從左到右9賦值運(yùn)算符和快捷運(yùn)算符=+=*=/=%=-=從右到左控制結(jié)構(gòu)任務(wù)8選擇結(jié)構(gòu)語法:

if(<條件>)

{

<語句塊>

}

else

{

<語句塊>

}選擇結(jié)構(gòu)用于根據(jù)表達(dá)式的值執(zhí)行語句if…else條件:只能是bool類型(布爾類型)的值選擇結(jié)構(gòu)switch(“cotton”){ case“COTTON”: case“cotton”:

… break;

case值3:

case值4: …break;}switch…case表達(dá)式可以是int、字符或字符串C#不允許從一個(gè)case塊繼續(xù)執(zhí)行到下一個(gè)case塊。每個(gè)case塊必須以一個(gè)跳轉(zhuǎn)控制語句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í)行指定的語句,直到指定的條件為真語法:while(條件){//語句}break語句可用于退出循環(huán)continue

語句可用于跳過當(dāng)前循環(huán)并開始下一循環(huán)while循環(huán)do…while循環(huán)

do…while循環(huán)與while循環(huán)類似,二者區(qū)別在于do…while循環(huán)中即使條件為假時(shí)也至少執(zhí)行一次該循環(huán)體中的語句。語法:

do{//語句}while(條件)for循環(huán)for循環(huán)要求只有在對(duì)特定條件進(jìn)行判斷后才允許執(zhí)行循環(huán)

這種循環(huán)用于將某個(gè)語句或語句塊重復(fù)執(zhí)行預(yù)定次數(shù)的情形語法:for(初始值;

條件;增/減){//語句}foreach循環(huán)2-1foreach循環(huán)用于遍歷整個(gè)集合或數(shù)組語法:

foreach(數(shù)據(jù)類型元素(變量)in集合或者數(shù)組)

{

//語句

}foreach循環(huán)2-2staticvoidMain(string[]args){

//存放字母的個(gè)數(shù)

intLetters=0;

//存放數(shù)字的個(gè)數(shù)

intDigits=0;

//存放標(biāo)點(diǎn)符號(hào)的個(gè)數(shù)

int

Punctuations=0;

//用戶提供的輸入

stringinstr;

Console.WriteLine("請(qǐng)輸入一個(gè)字符串");

instr=Console.ReadLine();

//聲明foreach循環(huán)以遍歷輸入的字符串中的每個(gè)字符。

foreach(charchininstr)

{

//檢查字母

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)終止usingSystem;publicclassWriteTest{ publicstaticvoidMain() {int[]array={1,2,3,4,5};foreach(intiteminarray){Console.WriteLine(item);

} }}usingSystem;publicclassWriteTest{ publicstaticvoidMain() {int[]array={1,2,3,4,5};foreach(intiteminarray){

item+=item;

Console.WriteLine(item);} }}類和接口任務(wù)9為什么用類和接口

1、數(shù)據(jù)與方法分離

2、代碼不能重用

3、代碼不容易修改、擴(kuò)充結(jié)構(gòu)化程序設(shè)計(jì)的不足之處voidSpeedUp(int&speed){if(speed<100)++speed;}voidmain(){intspeed=0;SpeedUp(speed);}

voidmain()

{

intdoorN_car1=2;

intcolor_car1=0;

intspeed_car1=100;

printf("%d%d%d\n",doorN_car1,color_car1,

speed_car1);

intdoorN_car2=4;

intcolor_car2=1;

intspeed_car2=80;

printf("%d%d%d\n",doorN_car2,color_car2,

speed_car2);}C#的面向?qū)ο筇匦运袞|西都是對(duì)象:變量和方法的集合。初級(jí)特性:OO最基本的概念,即類和對(duì)象。中級(jí)特性:OO最核心的概念,即封裝、繼承和多態(tài)。高級(jí)特性:由初級(jí)特性和中級(jí)特性引出的一些問題,如構(gòu)造函數(shù)的使用、覆蓋的規(guī)則、靜態(tài)變量和函數(shù)等。初級(jí)特性面向?qū)ο蠹夹g(shù)最基本的概念是類和對(duì)象:– 類是一個(gè)樣板,以操作、表示和算法的形式完整地定義了一組對(duì)象的行為。它通常也是面向?qū)ο笳Z言中的模塊化、封裝和數(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)行的操作定義的。– 使用者只能通過操作方法來訪問其屬性,不用知道這個(gè)數(shù)據(jù)類型內(nèi)部各種操作是如何實(shí)現(xiàn)的。classCar{

publicintdoorN;

publicintcolor;

publicintspeed;

publicvoidSpeedUp(){speed+=10;}}classMyApp{ staticvoidMain(){ Carcar1; car1.doorN=2;car1.color=0;car1.speed=100; Carcar2; car2.doorN=4;car2.color=1;car2.speed=80; }}publicdoublespeed;面向?qū)ο蟪绦蛟O(shè)計(jì)—封裝、代碼重用類:C#所有的代碼都是在某一個(gè)類中,因此不可能在類之外的全局區(qū)域有變量和方法。對(duì)象:C#中的對(duì)象相當(dāng)于一塊內(nèi)存區(qū)域,保存對(duì)象特有的類中所定義的數(shù)據(jù)。引用:C#中對(duì)于對(duì)象的操作全部通過引用進(jìn)行。

類、對(duì)象和引用的聲明聲明一個(gè)類:訪問修飾字class類名{變量聲明,方法聲明}classStudent{longid;//學(xué)號(hào)

chargender;//性別

intclassID;//班級(jí)號(hào),注意不能用class作屬性名

voidChangeClass(intaClassID)//更改班級(jí){…}

}聲明一個(gè)對(duì)象引用:類名引用名Studentstudent;創(chuàng)建一個(gè)對(duì)象:new類構(gòu)造函數(shù)student=newStudent();//如果缺少這一步編譯器會(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)算。publicclassFurniture{constdoublesalesTax=.065;privatedoublepurchPrice;privatestringvendor,inventoryID;publicFurniture(stringvendor,stringinventID,double

purchPrice){this.vendor=vendor;this.inventoryID=inventID;this.purchPrice=purchPrice;}publicstringMyVendor{get{returnvendor;}}publicdoubleCalcSalesTax(doublesalePrice){returnsalePrice*salesTax;}}類聲明常量字段構(gòu)造函數(shù)成員屬性方法類的成員類成員的可訪問性類或結(jié)構(gòu)的默認(rèn)訪問類型是internal。類中所有的成員,默認(rèn)均為private。classFurniture{constdoublesalesTax=.065;privatedoublepurchPrice;privatestringvendor,inventoryID;publicFurniture(stringvendor,stringinventID,double

purchPrice){this.vendor=vendor;this.inventoryID=inventID;this.purchPrice=purchPrice;}publicstringMyVendor{get{returnvendor;}}publicdoubleCalcSalesTax(doublesalePrice){returnsalePrice*salesTax;}}internalprivate類成員的可訪問性classMyApp{staticvoidMain(){Furnituref=newFurniture("aaa","001",1.2);

Console.WriteLine(f.salesTax);Console.WriteLine(Furniture.salesTax);f.purchPrice=10;stringstr=f.MyVendor;}}錯(cuò)誤類成員的可訪問性示例構(gòu)造函數(shù)構(gòu)造函數(shù)是一種用于對(duì)象初始化的特殊方法,有以下特點(diǎn)。

–構(gòu)造函數(shù)只能在對(duì)象創(chuàng)建時(shí)調(diào)用,即和new運(yùn)算符一起被調(diào)用。

–構(gòu)造函數(shù)和類具有相同的名字。

–構(gòu)造函數(shù)可以有0個(gè)、1個(gè)或多個(gè)參數(shù)。

–構(gòu)造函數(shù)沒有返回值。

–每個(gè)類至少有一個(gè)構(gòu)造函數(shù),一個(gè)類可以有多個(gè)構(gòu)造函數(shù)。

–如果沒有為類定義構(gòu)造函數(shù),系統(tǒng)會(huì)自動(dòng)為其定義一個(gè)缺省的構(gòu)造函數(shù)。缺省構(gòu)造函數(shù)不帶參數(shù),作用是將實(shí)例變量都清零。

–一旦為類定義了構(gòu)造函數(shù),則系統(tǒng)不會(huì)再為其定義缺省構(gòu)造函數(shù)。C#中構(gòu)造函數(shù)有三種:實(shí)例構(gòu)造,私有構(gòu)造和靜態(tài)構(gòu)造創(chuàng)建對(duì)象與構(gòu)造函數(shù)類聲明后,可以創(chuàng)建類的實(shí)例,即對(duì)象。創(chuàng)建類的實(shí)例需要使用new關(guān)鍵字。類的實(shí)例相當(dāng)于一個(gè)變量,創(chuàng)建類實(shí)例的格式如下:類名對(duì)象名=new構(gòu)造函數(shù)(參數(shù)類表);例如:PointmyPoint=newPoint();類的構(gòu)造函數(shù)可通過初始值設(shè)定項(xiàng)來調(diào)用基類的構(gòu)造函數(shù),例如:publicStudent(stringno,stringname,charsex,intage):base(name,sex,age){…}類的構(gòu)造函數(shù)也可通過關(guān)鍵字this調(diào)用同一個(gè)類的另一個(gè)構(gòu)造函數(shù),例如:publicPoint():this(0,20){…}構(gòu)造函數(shù)舉例classStudent{longid;chargender;intclassID;publicStudent():this(0,'F',0){}publicStudent(longaID,charaGender,intaClassID){id=aID;gender=aGender;classID=aClassID;}}私有構(gòu)造函數(shù)在某些特殊的情況下,使用私有構(gòu)造函數(shù)能夠達(dá)到意想不到的效果。比如,想建立這樣一個(gè)類:不允許被其他類實(shí)例化,但提供對(duì)外的靜態(tài)接口成員。在.NET框架類庫(kù)中就存在這樣的類,如System.Math類就不能夠?qū)嵗?,它的所有成員都是靜態(tài)的。用關(guān)鍵字private修飾的構(gòu)造函數(shù)就是私有構(gòu)造函數(shù)。析構(gòu)函數(shù)C#支持析構(gòu)函數(shù)。雖然C#能夠自動(dòng)進(jìn)行垃圾回收,但對(duì)于某些資源,.Net不知道如何回收,所以需要人工的內(nèi)存回收。在.net編程環(huán)境中,系統(tǒng)的資源分為托管資源和非托管資源。–托管資源,如簡(jiǎn)單的int,string,float,DateTime等等,是不需要人工干預(yù)回收的。–非托管資源,例如文件,窗口或網(wǎng)絡(luò)連接,對(duì)于這類資源雖然垃圾回收器可以跟蹤封裝非托管資源的對(duì)象的生存期,但它不了解具體如何清理這些資源。在使用完之后,必須顯式的釋放他們,否則會(huì)占用系統(tǒng)的內(nèi)存和資源,而且可能會(huì)出現(xiàn)意想不到的錯(cuò)誤。.net中超過80%的資源都是托管資源。析構(gòu)函數(shù)與Finalize.NETFramework提供Object.Finalize方法,默認(rèn)情況下,F(xiàn)inalize方法不執(zhí)行任何操作。如果需要可以覆蓋Finalize方法。通過析構(gòu)函數(shù)可以自動(dòng)生成Finalize方法和對(duì)基類的Finalize方法的調(diào)用。publicclassChair{publicChair(){...}~Chair(){...}

voidFinalize(){…}}如果試圖既編寫析構(gòu)函數(shù)又編寫Finalize方法,將導(dǎo)致編譯器出錯(cuò)。析構(gòu)函數(shù)Dispose方法意義銷毀對(duì)象銷毀對(duì)象調(diào)用方式不能被顯示調(diào)用,在GC回收是被調(diào)用需要顯示調(diào)用或者通過using語句調(diào)用時(shí)機(jī)不確定確定,在顯示調(diào)用或者離開using程序塊非托管資源:Dispose方法對(duì)象析構(gòu)舉例?Dispose方法是編程人員需要立即釋放資源時(shí)調(diào)用,所以在Dispose方法中調(diào)用Close,并通知GC在回收垃圾時(shí)不需要再釋放資源。?析構(gòu)函數(shù)是編程人員在沒有調(diào)用Dispose方法釋放資源的情況下由GC在回收垃圾時(shí)調(diào)用。1.一般不要提供析構(gòu)函數(shù),因?yàn)樗荒芗皶r(shí)地被執(zhí)行;2.實(shí)現(xiàn)Dispose方法的時(shí)候,一定要加上“GC.SuppressFinalize(this)”語句。usingSystem;classMyFile{publicMyFile(){//…OpenFile}publicvoidClose(){//…CloseFile}publicvoidDispose(){

Close();GC.SuppressFinalize(this);}~MyFile(){Close();}}classMyApp{publicstaticvoidMain(){MyFilefile=newFile();...file.Dispose();}}問題:–用Student對(duì)象保存學(xué)生信息,希望每個(gè)對(duì)象有一個(gè)單獨(dú)的編號(hào)。第一個(gè)創(chuàng)建的對(duì)象編號(hào)為0,第二個(gè)對(duì)象編號(hào)為1,以此類推。–這就需要有一個(gè)所有Student對(duì)象都能訪問的變量counter,而且變量counter在所有實(shí)例中共享。當(dāng)一個(gè)對(duì)象創(chuàng)建時(shí),構(gòu)造函數(shù)增加counter值,下一個(gè)對(duì)象創(chuàng)建時(shí)使用增加過的值。解決方法:–C#編程語言沒有這樣的全局變量,但類變量是可以從類的任何實(shí)例訪問的單個(gè)變量。–類變量在某種程度上與其它語言中的全局變量相似。但僅限于同類型的對(duì)象訪問。類中的靜態(tài)問題靜態(tài)變量類變量是在所有類的實(shí)例(對(duì)象)中共享的變量,在變量聲明中用static關(guān)鍵字表示。類變量可以被標(biāo)記為public或private。如果被標(biāo)記為public,不需要類的實(shí)例就可以訪問。publicclassStudent{privateintserialNumber;

privatestaticintcounter=0;publicStudent(){serialNumber=counter;counter++;}}classMyApp{staticvoidMain(){Studentstu=newStudent();Console.WriteLine(stu.serialNumber);Studentstu1=newStudent();Console.WriteLine(stu1.serialNumber);}}靜態(tài)方法類方法是不需要類的任何實(shí)例就可以被調(diào)用的方法,在方法聲明中用static關(guān)鍵字表示。類方法只能訪問靜態(tài)變量,訪問非靜態(tài)變量的嘗試會(huì)引起編譯錯(cuò)誤。靜態(tài)方法不能被覆蓋成非靜態(tài)的。main是靜態(tài)的,因?yàn)樗仨氃谌魏螌?shí)例化發(fā)生前被訪問,以便應(yīng)用程序的運(yùn)行。publicclassGeneralFunction{publicstaticintAddUp(intx,inty){//靜態(tài)方法

returnx+y;}}publicclassUseGeneral{publicvoidmethod(){intc=GeneralFunction.AddUp(9,10);//調(diào)用靜態(tài)方法

System.Console.WriteLine("addUp()gives"+c);}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論