版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C#基本語法C#基本語法C#代碼的外觀和操作方式和C++、Java十分的相似,在C#編程的過程中,不需要花費太多的精力就可以編寫出十分清晰的代碼。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceHello_New_World{classProgram{staticvoidMain(string[]args){Console.WriteLine("HelloNewWorld——我的第一個C#應(yīng)用程序");Console.ReadKey();}}}C#的基本語法概況C#代碼的外觀和操作方式和C++、Java十分C#的每條語句都用一個分號來結(jié)束;為了程序的可讀性和易維護(hù)性,建議一行一語句,C#編譯器自動過濾回車符之類的空白字符;C#是一個塊結(jié)構(gòu)的編程語言,代碼塊使用“{”和“}”來界定,代碼塊中可以包含任意條語句,也可以根本不包含語句。在VS2005中編寫代碼時,系統(tǒng)會根據(jù)代碼塊的層次進(jìn)行自動縮進(jìn);C#代碼嚴(yán)格區(qū)分大小寫,這與其他許多編程語言是不同的,否則將會引起編譯出錯。例如將上述控制臺程序中的輸出語句“Console.writeLine("HelloNewWorld——我的第一個C#應(yīng)用程序")”更改為“ConSole.WriteLine("HelloNewWorld——我的第一個C#應(yīng)用程序")”,程序?qū)⒉荒苷>幾g和執(zhí)行。C#的基本語法概況C#的每條語句都用一個分號來結(jié)束;為了程序的可讀性和易維護(hù)性
在C#中,可以使用兩種方式來注釋代碼:單行注釋和多行注釋。單行注釋使用“//”來標(biāo)記注釋,其后可以編寫任何內(nèi)容,但一次只能注釋一行語句,使用多行注釋時,C#以“/*”標(biāo)記注釋的起始位置,以“*/”標(biāo)記注釋結(jié)束。usingSystem.Text;//引用System.Text命名空間/*這是一個簡單的C#控制臺應(yīng)用程序程序開始*/namespaceHello_New_World{……C#的基本語法概況usingSystem.Text;//引用System
VS2005具有代碼的突出顯示功能,及代碼的折疊和隱藏功能。在編寫C#代碼時,可以使用“#region”和“#endregion”關(guān)鍵字,來定義需要擴展和收縮的代碼,#region引用的命名空間usingSystem;usingSystem.Collections.Generic;usingSystem.Text;#endregionC#的基本語法概況#region引用的命名空間C#的基本語法概況變量變量是計算機內(nèi)存中的一塊存儲單元,可以將數(shù)據(jù)存放到變量中,需要的時候再從中取出進(jìn)行查看或修改。變量的基本類型變量和表達(dá)式類型別名存儲的值sbyteSystem.SByte-128~127之間的整數(shù)byteSystem.Byte0~255之間的整數(shù)shortSystem.Int16-32768~32767之間的整數(shù)ushortSystem.UInt160~65535之間的整數(shù)intSystem.Int32-2147483648~2147483647之間的整數(shù)uintSystem.UInt320~4294967259之間的整數(shù)longSystem.Int64-9223372036854775808~9223372036854775807之間的整數(shù)ulongSystem.Unt640~18446744073709551615之間的整數(shù)整型變量變量變量和表達(dá)式類型別名存儲的值sbyteSystem.SB浮點型變量類型別名m的最小值m的最大值e的最小值e的最大值最小近似值最大近似值floatSystem.Single0224-1491041.5×10-453.4×1038doubleSystem.Double0253-10759705.0×10-3241.7×10308decimalSystem.Decimal0296-2601.0×10-287.9×1028其他3種常用變量類型類型別名存儲的值charSystem.Char一個Unicode字符,存儲0~65535之間的整數(shù)boolSystem.Boolean布爾值:true或falsestringSystem.String存儲一組字符變量和表達(dá)式浮點型變量類型別名m的最m的最e的最e的最最小近最大近似值f變量的命名規(guī)則和命名方法變量是計算機中占據(jù)一定內(nèi)存單元的存儲區(qū)域,通過指定變量的名稱來使用和管理變量。從數(shù)據(jù)存儲的角度來看,變量名相當(dāng)于存儲數(shù)據(jù)的變量所占據(jù)的那塊內(nèi)存單元的標(biāo)識名。變量名的第一個字符必須是字母、下劃線(_)或@;其后的字符可以是字母、下劃線、數(shù)字等;不能使用C#中的關(guān)鍵字作為變量名,如using、namespace等,因為這些關(guān)鍵字對于C#編譯器而言有特定的含義;C#是區(qū)分大小寫的,因而在命名變量時,一定要使用正確的大小寫,因為在程序中使用它們時,即使只有一個字母的大小寫出錯,也會引起編譯錯誤。對于簡單的變量,建議使用camelCase命名方法,而對于比較高級的變量,則使用PascalCase命名方法。productIdproductNameproductDiscontentProductIdProductNameProductDiscontentcamelCasePascalCase變量和表達(dá)式變量的命名規(guī)則和命名方法productIdProductId識別下列標(biāo)識符Personyearly-costyearly_costint@intmyclassChecking#thisFloat5day變量名最好使用具有實際意義的英文單詞,能夠“見名知意”識別下列標(biāo)識符Person第二講C基本語法課件變量 staticvoidMain(string[]args) { //聲明布爾型、字符串型、整型、短整型和浮點型變量 booltest=true; shortnum1=19; intnum2=14000; stringval="John"; floatnum3=14.5f;
//顯示變量值
Console.WriteLine("布爾值="+test); Console.WriteLine("短整型值="+num1); Console.WriteLine("整型值
="+num2); Console.WriteLine("字符串值="+val); Console.WriteLine("浮點值="+num3); }變量中存儲的值取決于該變量的類型變量 staticvoidMain(string[]a變量的作用域ClassScope{ publicstaticvoidMain() { intx; x=10; if(x==10) { inty=20; Console.WriteLine(“xandy:{0},{1}”,x,y); } y=100; Console.WriteLine(“xis“+x); }}程序中的一個塊就定義就定義了一個作用域,域內(nèi)的變量對外部不可見。變量在進(jìn)入其作用域時創(chuàng)建,在離開作用域時被釋放。變量的作用域ClassScope程序中的一個塊就定義就定義常量常量又稱為字面值,是一種在使用過程中值不發(fā)生改變的特殊變量。常量的聲明方法和變量類似,只要在類型關(guān)鍵字前面加上const關(guān)鍵字并指定常量值即可。和變量一樣,常量也包括多種類型:數(shù)值常量、字符常量等。注意:常量在程序中只能被賦值一次,否則編譯器便會報告錯誤。常量具有以下顯著特征:常量必須在聲明時進(jìn)行初始化,其指定值后便不能再進(jìn)行修改;常量的值必須能夠在編譯時用于計算,因而,從一個變量中提取某個時刻的值并將其賦值給常量,這種做法是不允許的;常量是靜態(tài)的,但不必在聲明時使用static修飾符。
在程序中使用常量有以下幾個好處:常量使用易于理解的名稱,來代替含義不明確的數(shù)字或字符串,使程序更易于閱讀;常量使程序更易于修改。constintpi=3.1415926;變量和表達(dá)式常量constintpi=3.1415926;變量和表達(dá)常量staticvoidMain(string[]args){ //PI常量PI constfloat_pi=3.14F; //由地球引力引起的加速度常量,單位為cm/s*s constfloat_gravity=980; //鐘擺的長度 intlength=40; //鐘擺的周期 doubleperiod=0; //鐘擺周期的計算公式 period=2*_pi*Math.Sqrt(length/_gravity); Console.WriteLine("鐘擺的周期為{0}秒",period);}聲明常量在表達(dá)式中使用常量const關(guān)鍵字用于聲明常量常量staticvoidMain(string[]ar字符串常量存儲的是一組字符,例如一個用于連接數(shù)據(jù)庫的字符常量:上述常量中便發(fā)生了轉(zhuǎn)義字符的問題,應(yīng)用程序在使用該字符串常量來連接數(shù)據(jù)庫時,便會出現(xiàn)連接錯誤,原因是系統(tǒng)將字符串常量中的字符“\”看作是轉(zhuǎn)義字符來處理了。如果要解決前面連接數(shù)據(jù)庫的字符串常量中的反斜杠字符識別問題,可使用兩個反斜杠,即更改成如下所示:“server=wjl\tupwk_wjl;IntegratedSecurity=SSPI;database=電子商務(wù)系統(tǒng)”“server=wjl\\tupwk_wjl;IntegratedSecurity=SSPI;database=電子商務(wù)系統(tǒng)”變量和表達(dá)式字符串常量存儲的是一組字符,例如一個用于連接數(shù)據(jù)庫的字符常量第二講C基本語法課件C#兩種數(shù)值類型類別說明值類型簡單類型有符號整型:sbyte,short,int,long無符號整型:byte,ushort,uint,ulongUnicode字符:charIEEE浮點型:float,double高精度小數(shù):decimal布爾型:bool枚舉類型enumE{...}形式的用戶定義的類型結(jié)構(gòu)類型structS{...}形式的用戶定義的類型引用類型類類型所有其他類型的最終基類:objectclassC{...}形式的用戶定義的類型接口類型interfaceI{...}形式的用戶定義的類型Unicode字符串string數(shù)組類型一維和多維數(shù)組,例如int[]和int[,]委托類型delegateTD(...)形式的用戶定義的類型值類型變量包含本身數(shù)據(jù),而引用類型變量存放的是指向真正數(shù)據(jù)塊的引用(指針)C#兩種數(shù)值類型類別說明值簡單類型有符號整型:sby第二講C基本語法課件C#的基本數(shù)據(jù)類型staticvoidMain(string[]args){
DataTypeDemoobjTest=newDataTypeDemo(); objTest.Val=100; //傳遞屬于引用類型的對象 Test(objTest); //由于該數(shù)據(jù)類型屬于引用類型,所以會考慮新處理的值 Console.WriteLine("變量的值為{0}",objTest.Val);}staticvoidTest(DataTypeDemo
dataTest){ inttemp=10; dataTest.Val=temp*20;}將DataTypeTest的引用傳遞給Test()
被傳遞的val在Test()中改變反映已經(jīng)改變的val值,不而保留原始值classDataTypeDemo{publicintVal;}C#的基本數(shù)據(jù)類型staticvoidMain(str第二講C基本語法課件裝箱和拆箱intval=100;objectobj=val;Console.WriteLine(“對象的值={0}",obj);intval=100;objectobj=val;intnum=(int)obj;Console.WriteLine("num:{0}",num);值類型引用類型拆箱裝箱值類型引用類型值類型被裝過箱的對象才能被拆箱裝箱和拆箱intval=100;intval=1裝箱/拆箱實現(xiàn)值類型/引用類型之間轉(zhuǎn)換的機制inti=110;objectobj=i;//objectobj=(object)i;intj=(int)obj;注意:拆箱轉(zhuǎn)換的數(shù)據(jù)類型必須與裝箱的類型一致(兼容),否則出錯!obji110Stack區(qū)Heap區(qū)110……裝箱/拆箱實現(xiàn)值類型/引用類型之間轉(zhuǎn)換的機制obji110S對象類型System.Object所有其他對象的基類,所有的數(shù)據(jù)類型都直接或間接的從object類型繼承Object類型的變量可接受任何類型的數(shù)值是實現(xiàn)裝箱/拆箱的本源所在對象類型System.Object所有其他對象的基類,所有的usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceHelloWorld{classObjectApp{intnumber=918;staticvoidMain(string[]args){objectobj=124;Console.WriteLine(obj);Console.WriteLine(obj.GetType());obj=newObjectApp();ObjectAppvalue;value=(ObjectApp)obj;Console.WriteLine(value.number);Console.WriteLine(obj.GetType());Console.Read();}}}可用object引用指向任何類型的對象,用相同的代碼對不同類型的數(shù)據(jù)執(zhí)行不同的操作,這就是單一繼承體系的好處,GetType()可動態(tài)獲得對象的真正類型usingSystem;可用object引用指向任何類型的Object.ToString()獲得對象的字面量獲得一個對象的用戶友好的字符串表示類型類別后綴示例/允許的值bool布爾無true或falseint整數(shù)無intx=100uint,ulog整數(shù)U或Uuintx=1000ulong,ulong長整型L或llongx=100000Lulong無符號長整型ul,uL,Ul,UL,lu,Lu,lU或LUulongx=4324ulfloat單精度浮點數(shù)類型F或ffloatx=34.76Fdouble雙精度浮點數(shù)類型D或ddoublex=763.7245Ddecimal精確十進(jìn)制類型M或mdecimalx=1.544Mchar字符無charx=‘a(chǎn)’string字符串無string=”abc”O(jiān)bject.ToString()獲得對象的字面量獲得一個對通過改寫ToString來進(jìn)行自定義輸出classTeacher{publicstringname;publicstringcourseName;publicoverridestringToString(){returnstring.Format("I'mateacher,mynameis{0}andIteach{1}",,this.courseName);}}classStudent{publicstringname;publicintage;publicStudent(stringname,intage){=name;this.age=age;}publicoverridestringToString(){returnstring.Format("Iamastudent,mynameis{0}andIam{1}yearsold",name,age);}}通過改寫ToString來進(jìn)行自定義輸出classTeacstaticvoidMain(string[]args){Teachert=newTeacher();="BillGates";t.courseName="Objectsorientationprogramming";Students=newStudent("TomHanks",18);Console.WriteLine(t);Console.WriteLine(s); //等價于調(diào)用Console.WriteLine(s.ToString());Console.Read();}通過改寫ToString方法,可以提供一致的形式來顯示對象的信息,這里體現(xiàn)了面向?qū)ο缶幊痰氖裁刺匦阅??多態(tài)性!staticvoidMain(string[]arg隱式轉(zhuǎn)換和強制轉(zhuǎn)換隱式(賦值和混合表達(dá)式中)自動算術(shù)表達(dá)式轉(zhuǎn)換,低類型的操作數(shù)被提升到高類型,結(jié)果也為高類型doubles;inti;s+i顯式強制將高級數(shù)據(jù)類型轉(zhuǎn)換成低級數(shù)據(jù)類型inti=(int)(1.2*y+0.5);一般會導(dǎo)致丟失一些數(shù)據(jù)精度隱式轉(zhuǎn)換和強制轉(zhuǎn)換隱式(賦值和混合表達(dá)式中)C#所支持的隱式類型轉(zhuǎn)換源類型目的類型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、ulong、float、double、decimalshortint、long、float、double、decimalushortint、uint、long、ulong、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimallong、ulongfloat、double、decimalfloatdoublecharushort、int、uint、long、ulong、float、double、decimalC#所支持的隱式類型轉(zhuǎn)換源類型目的類型sbyteshort、顯式轉(zhuǎn)換
明確要求顯示器把一種變量類型轉(zhuǎn)換為另外一種變量類型時,便是顯式轉(zhuǎn)換,這相當(dāng)于告訴編譯器“我已經(jīng)知道你對我這么做提出了警告,但我將對這么做的后果負(fù)責(zé)”。
但這種轉(zhuǎn)換很可能在程序運行期間因類型轉(zhuǎn)換而造成數(shù)據(jù)丟失,造成極大破壞,這又被稱為數(shù)據(jù)的溢出。
推薦使用Convert命令來進(jìn)行顯式轉(zhuǎn)換,這種轉(zhuǎn)換能夠成功執(zhí)行的前提是:所要轉(zhuǎn)換的字符串必須是數(shù)值的有效表達(dá)方式,而且不會溢出。(目標(biāo)類型)源變量;顯式轉(zhuǎn)換(目標(biāo)類型)源變量;可使用Convert命令轉(zhuǎn)換的數(shù)據(jù)類型命令結(jié)果Convert.ToBoolean(源變量)布爾型Convert.ToByte(源變量)byte型Convert.ToChar(源變量)字符型Convert.ToDecimal(源變量)Decimal型Convert.ToDouble(源變量)Double型Convert.ToInt16(源變量)short型Convert.ToInt32(源變量)int型Convert.ToInt64(源變量)long型Convert.ToSByte(源變量)sbyte型Convert.ToSingle(源變量)float型Convert.ToString(源變量)字符串型Convert.ToUInt16(源變量)ushort型Convert.ToUInt32(源變量)uint型Convert.ToUInt64(源變量)ulong型可使用Convert命令轉(zhuǎn)換的數(shù)據(jù)類型命令結(jié)果Convertas實現(xiàn)轉(zhuǎn)型語法:Tt2=t1asT含義:如果對象t1為類型T(或其子類)的實例,則將t1賦值給t2,否則t2為null與顯式強制類型轉(zhuǎn)換相比,它避免了由于類型不匹配造成的異常拋出as實現(xiàn)轉(zhuǎn)型語法:Tt2=t1asTusingSystem;classClass1{}classClass2{}classMainClass{staticvoidMain(){object[]objArray=newobject[6];objArray[0]=newClass1();objArray[1]=newClass2();objArray[2]="hello";objArray[3]=123;objArray[4]=123.4;objArray[5]=null;for(inti=0;i<objArray.Length;++i){strings=objArray[i]asstring;Console.Write("{0}:",i);if(s!=null) Console.WriteLine("'"+s+"'");else{Console.WriteLine("notastring");}}}}0:notastring1:notastring2:'hello'3:notastring4:notastring5:notastringusingSystem;classMainClass0:運算符與表達(dá)式變量和常量解決了數(shù)據(jù)的存儲問題,而表達(dá)式則用于數(shù)據(jù)的處理,它是計算的的基本建立塊。在C#中,將變量、常量和運算符組合在一起,便形成了表達(dá)式。運算符用于解決數(shù)據(jù)的處理方式,根據(jù)能夠處理的操作數(shù)的多少,可以分為:一元運算符——處理一個操作數(shù);二元運算符——處理兩個操作數(shù);三元運算符——處理三個操作數(shù)。運算符與表達(dá)式變量和常量解決了數(shù)據(jù)的存儲問題,而表達(dá)式則用于數(shù)學(xué)表達(dá)式運算符類別示例表達(dá)式運算結(jié)果+二元變量1=變量2+變量3變量2和變量3的和-二元變量1=變量2-變量3變量2的值減去變量3的值所得的值×二元變量1=變量2×變量3變量2和變量3的乘積/二元變量1=變量2/變量3變量2的值除以變量3的值所得的值%二元變量1=變量2%變量3變量2的值除以變量3的值所得的余數(shù)+一元變量1=+變量2變量1的值等于變量2的值-一元變量1=-變量2變量1的值等于變量2的值乘以-1數(shù)學(xué)運算符變量和表達(dá)式數(shù)學(xué)表達(dá)式運算符類別示例表達(dá)式運算結(jié)果+二元變量1=變量2+關(guān)系表達(dá)式運算符類別示例表達(dá)式運算結(jié)果==二元變量1=變量2==變量3如果變量2的值等于變量3的值,則變量1的值為true,反之為false!=二元變量1=變量2!=變量3如果變量2的值不等于變量3的值,則變量1的值為true,反之為false<二元變量1=變量2<變量3如果變量2的值小于變量3的值,則變量1的值為true,反之為false>二元變量1=變量2>變量3如果變量2的值大于變量3的值,則變量1的值為true,反之為false<=二元變量1=變量2<=變量3如果變量2的值小于或等于變量3的值,則變量1的值為true,反之為false>=一元變量1=變量2>=變量3如果變量2的值大于或等于變量3的值,則變量1的值為true,反之為false比較運算符變量和表達(dá)式關(guān)系表達(dá)式運算符類別示例表達(dá)式運算結(jié)果==二元變量1=變量2邏輯運算符運算符類別示例表達(dá)式運算結(jié)果!一元變量1=!變量2邏輯非,如果變量2的值為true(false),則變量1的值為true(false)&&二元變量1=變量2&&變量3邏輯與,如果變量2的值和變量3的值都為true,則變量1的值為true,反之為false||二元變量1=變量||變量3邏輯或,只要變量2的值或變量3的值有一個為true,則變量1的值為true,反之為false變量和表達(dá)式注意,&&和||具有短路計算規(guī)則,即可能會不完全運算而得到結(jié)果(p69)邏輯運算符運算符類別示例表達(dá)式運算結(jié)果!一元變量1=!變量2賦值表達(dá)式賦值運算符運算符類別示例表達(dá)式運算結(jié)果=二元變量1=變量2將變量2的值賦予變量1+=二元變量1+=變量2將變量1和變量2值的和賦予變量1-=二元變量1-=變量2將變量1的值減去變量2的值的結(jié)果賦予變量1*=二元變量1*=變量2將變量1的值乘以變量2的值的結(jié)果賦予變量1/=二元變量1/=變量2將變量1的值除以變量2的值的結(jié)果賦予變量1%=二元變量1%=變量2將變量1的值除以變量2的值的余數(shù)賦予變量1變量和表達(dá)式注意,引用類型的賦值是地址的拷貝,而不是值本身賦值表達(dá)式賦值運算符運算符類別示例表達(dá)式運算結(jié)果=二元變量1布爾賦值運算符運算符類別示例表達(dá)式運算結(jié)果&=二元變量1&=變量2變量1的值為變量2&變量3|=二元變量1|=變量2變量1的值為變量2|變量3^=一元變量1^=變量2變量1的值為變量2^變量3變量和表達(dá)式布爾賦值運算符運算符類別示例表達(dá)式運算結(jié)果&=二元變量1&=第二講C基本語法課件算術(shù)運算符staticvoidMain(string[]args){ //x2的系數(shù) intcf1=2; //x的系數(shù) intcf2=-7; //二次方程的常數(shù)值 intconstant=3; //存放表達(dá)式b2-4ac的值 doubleexpression=0; doublex1=0; doublex2=0;
Console.WriteLine("二次方程為:{0}x2+{1}x+{2}",cf1,cf2,constant); expression=Math.Sqrt(cf2*cf2-(4*cf1*constant)); x1=((-cf2)+expression)/(2*cf1); x2=((-cf2)-expression)/(2*cf1); Console.Write("x={0:F2}",x1); Console.Write("或"); Console.WriteLine("x={0:F2}",x2);}將值賦給變量在表達(dá)式中使用的算術(shù)運算符算術(shù)運算符staticvoidMain(string[]位運算&與|或^異或~取補<<左移>>右移位操作符就是對數(shù)據(jù)按二進(jìn)制位進(jìn)行運算的操作符。位運算&與位操作符就是對數(shù)據(jù)按二進(jìn)制位進(jìn)行運算的操作符。求補運算求補(~)運算對操作數(shù)的每一位取補,如對10取補結(jié)果為: 10的二進(jìn)制表示:00001010 求補運算的結(jié)果:11110101//按位求補usingSystem; classBitWiseCompl{publicstaticvoidMain(){shorta=10;ushortb=10;intc=10;uintd=10;Console.WriteLine(~10);Console.WriteLine("short:{0}",~a);Console.WriteLine("ushort:{0}",~b);Console.WriteLine("int:{0}",~c);Console.WriteLine("uint:{0}",~d);}}求補運算求補(~)運算對操作數(shù)的每一位取補,如對10取補結(jié)果閱讀代碼61頁例4.6閱讀代碼61頁例4.6運算符的優(yōu)先級優(yōu)先級運算符優(yōu)先級由高到低++,--(用作前綴);(),-(一元),!,~*,/,%+,-<,>,<=,>===,!=&^|&&||=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=++,--(用作后綴)變量和表達(dá)式運算符的優(yōu)先級優(yōu)先級運算符優(yōu)++,--(用作前綴);()類別運算符說明位運算符&將操作數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),并按位進(jìn)行與運算|將操作數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),并按位進(jìn)行或運算移位運算符<<將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后左移>>將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后右移賦值運算符<<=將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后左移賦值>>=將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后右移賦值成員訪問.成員訪問索引[]索引轉(zhuǎn)換()強制轉(zhuǎn)換條件?:三元if語句創(chuàng)建對象new創(chuàng)建對象的一個實例類型信息as安全轉(zhuǎn)換為指定類型is檢查所給類型是否為指定類型溢出checked控制溢出檢查上下文unchecked控制溢出檢查上下文間接尋址和地址*指針取消引用->指針成員訪問[]指針?biāo)饕?取地址變量和表達(dá)式其他C#運算符類別運算符說明位運算符&將操作數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),new操作符
new操作符用于創(chuàng)建一個新的類型實例。它有三種形式:對象創(chuàng)建表達(dá)式,用于創(chuàng)建一個類類型或值類型的實例。數(shù)組創(chuàng)建表達(dá)式,用于創(chuàng)建一個數(shù)組類型實例。代表創(chuàng)建表達(dá)式,用于創(chuàng)建一個新的代表類型實例。
例:
classA{};Aa=newA; int[]int_arr=newint[10]; delegatedoubleDFunc(intx);DFuncf=newDFunc(5);new操作符new操作符用于創(chuàng)建一個新的類型實例。它有三is操作符
//is操作符usingSystem;classOptIsExample{publicstaticvoidMain(){Console.WriteLine(1isint);Console.WriteLine(1isfloat);Console.WriteLine(1.0isfloat);Console.WriteLine(1.0isdouble);}}is操作符被用于動態(tài)地檢查運行時對象類型是否和給定的類型兼容。運算“eisT”的結(jié)果,其中,e是一個表達(dá)式,T是一個類型,返回值是一個布爾值。is操作符//is操作符is操作符被用于動態(tài)地檢查運行命名空間銷售部技術(shù)部張三張三命名空間銷售部技術(shù)部張三張三命名空間ClassManager{longintsalary;………………}…….…….{longintsalary;…….………}ClassManager命名空間SaleDept命名空間ITDeptAdminDept.ManagerITDept.Manager類庫命名空間ClassManagerClassManager命名空間ClassSamsungTelevision{}ClassSonyWalkman{}ClassSonyTelevision{}ClassSamsungWalkman{}長名稱難以維護(hù)namespace
Tcl{
class
Television{...}
class
WalkMan
{...}}CH.TelevisionTcl.Televisionnamespace
CH{
class
Television
{...}
class
WalkMan
{...}}有條理,有結(jié)構(gòu)命名空間ClassSamsungTelevisionCla命名空間namespace命名空間的名稱{
//該名稱空間的所有類都放在這里。}語法命名空間namespace命名空間的名稱語法命名空間namespaceTcl{ classMonitor { publicvoidListModels() { Console.WriteLine(“供應(yīng)Tcl以下型號的顯示器:"); Console.WriteLine("14\",15\"\n"); }
staticvoidMain(string[]args) { // //TODO:在此處添加代碼以啟動應(yīng)用程序 // } }}命名空間namespaceTcl命名空間namespaceCH{publicclassMonitor
{
publicvoidListModelStocks() {
Console.WriteLine(“以下是長虹顯示器的規(guī)格及其庫存量:");
Console.WriteLine("14\"=1000,15\"=2000, 17\"=3000"); }
staticvoidMain(string[]args) {
Tcl.MonitorobjTcl=newTcl.Monitor();
MonitorobjCh=newMonitor();
objTcl.ListModels();
objCh.ListModelStocks(); }
}}命名空間namespaceCH為什么使用命名空間(1)
C#采用的是單一的全局變量命名空間,若有兩個變量或函數(shù)的名稱完全相同,就會出現(xiàn)沖突.如定義了一個用戶名變量userName,可能在調(diào)用某個庫文件或別的程序代碼中也定義了相同的變量名,此時便出現(xiàn)了沖突。
命名空間就是為解決C#中變量、函數(shù)的命名沖突而服務(wù)的??梢詫⑼幻Q的變量定義在不同的命名空間中。如:張家有電視機,李家也有電視機,王家也有電視機,但因為它們屬于不同的家庭,使用時只需將它們所屬的家庭作為前綴名即可。命名空間和using語句為什么使用命名空間(1)命名空間和using語句為什么使用using語句(2)創(chuàng)建了命名空間后,如果命名空間中嵌套比較深,在外部引用它們時是十分不方便的,可以使用using語句來簡化對它們的訪問,using語句的意思就好比是“我們需要對這個命名空間中的變量,所以不要每次總是要求對它們分類”。什么情況下使用命名空間的別名
使用using語句可以簡化對命名空間的引用,然而某些命名空間中很可能包含相同名稱的類,在某些情況下卻恰恰需要用到這些同名的類。例如在.NETFramework類庫中存在3個Timer類:System.Timer.Timer、System.Threading.Timer和System.Windows.Forms.Timer,我們需要使用System.Timer.Timer在后臺以固定的時間間隔檢查所有應(yīng)用程序或系統(tǒng)的狀態(tài),而使用System.Windows.Forms.Timer來在用戶界面中顯示一個簡單的動畫,這時,開發(fā)人員就必須在類前面加上命名空間。命名空間和using語句為什么使用using語句(2)命名空間和using語句此時程序顯得比較冗長,可以使用using語句來給命名空間指定一個別名。當(dāng)程序中需要引用這個命名空間時,可以簡單地使用它的別名,使用別名的方法和使用命名空間完全相同。using語句本身不能訪問另一個命名空間中的名稱,除非命名空間中的代碼以某種方式鏈接到項目上,或者代碼是在該項目的源文件中定義的,或在鏈接到該項目的其他代碼中定義的,否則就不能訪問其中包含的名稱。另外,如果包含命名空間的代碼鏈接到項目上,無論是否使用using關(guān)鍵字,都可以訪問其中包含的變量或類。using別名=命名空間名;命名空間和using語句此時程序顯得比較冗長,可以使用using語句來給命名空間指定命名空間別名
usingClass1=Namespace1.Test; //別名到類usingNs2=Namespace2.NameSpace3.NameSpace4;//別名到命名空間namespaceNamespace1{classTest{publicTest(){System.Console.WriteLine("HellofromNamespace1.Test");}}}classMainClass{publicstaticvoidMain() { Class1obj1=newClass1(); Ns2.Testobj2=newNs2.Test(); System.Console.Read(); }}namespaceNamespace2{…namespaceNamespace3{ …namespaceNamespace4{ …classTest{publicTest(){System.Console.WriteLine("HellofromNamespace2.Test");}}}}}命名空間別名usingClass1=NamespacString類型由一個或多個字符組成,一般以“”為界System.String類中定義了很多對字符串的操作:比較、連接、查找子串。。。staticvoidMain(string[]args){ stringa="\u0068ello"; stringb="world"; stringc=a+b; Console.WriteLine(c); Console.WriteLine(c.Length); a="你好"; Console.WriteLine(c); c=string.Copy(a); Console.WriteLine(c); Console.Read(); }String類型由一個或多個字符組成,一般以“”為界statString類的用法string.Format實現(xiàn)字符串的格式化輸入兩個整數(shù),輸出他們的實數(shù)除商,并輸出上的第二位小數(shù)staticvoidMain(){inti=Convert.ToInt32(Console.ReadLine());intj=Convert.ToInt32(Console.ReadLine());doubleshang=(double)i/j;stringstr=string.Format("{0:F3}",shang);charc=str[str.Length-2];Console.WriteLine(c);Console.Read();}String類的用法string.Format實現(xiàn)字符串的格日期DateTime類型表示時間上的一刻,通常以日期和當(dāng)天的時間表示。示例:Console.WriteLine(DateTime.Now);DateTimedate=newDateTime(2006,2,28,12,12,12);Console.WriteLine(date);Console.WriteLine(date.DayOfWeek);Console.WriteLine(date.DayOfYear);TimeSpanduration=newSystem.TimeSpan(36,0,0,0);DateTimejinian=date.Add(duration);Console.WriteLine(jinian);日期DateTime類型表示時間上的一刻,通常以日期和當(dāng)天的DateTime的格式化輸出P.45參數(shù)format格式詳細(xì)用法
格式字符關(guān)聯(lián)屬性/說明
dShortDatePattern
DLongDatePattern
f完整日期和時間(長日期和短時間)
FFullDateTimePattern(長日期和長時間)
g常規(guī)(短日期和短時間)
G常規(guī)(短日期和長時間)
m、MMonthDayPattern
r、RRFC1123Pattern
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東惠州市博羅縣產(chǎn)業(yè)投資集團有限公司下屬子公司招聘5人備考題庫附答案
- 2025年11月重慶市萬州區(qū)孫家鎮(zhèn)人民政府招聘非全日制公益性崗位2人(公共基礎(chǔ)知識)綜合能力測試題附答案
- 2025年河南通航機場管理有限公司社會招聘23人模擬試卷附答案
- 2025廣東湛江市公安局麻章分局招聘警務(wù)輔助人員12人(第三次)參考題庫附答案
- 2025安徽合肥市直機關(guān)遴選公務(wù)員100人備考題庫附答案
- 2026寶雞太白縣總工會招聘社會化工作者(2人)筆試備考試題及答案解析
- 2026福建泉州市石獅市鴻山鎮(zhèn)人民政府招聘編外人員4人筆試備考試題及答案解析
- 2026北京市育英學(xué)??茖W(xué)城學(xué)校招聘筆試模擬試題及答案解析
- 2025秋人教版道德與法治八年級上冊4.2遵守規(guī)則同步練習(xí)
- 2026湖北省面向北京化工大學(xué)普通選調(diào)生招錄筆試模擬試題及答案解析
- Smaart7產(chǎn)品使用說明手冊
- 煙站述職報告(4篇)
- 蓋州市水務(wù)有限責(zé)任公司2025年工作總結(jié)暨2026年工作計劃
- 幼兒園老師面試高分技巧
- 瓷磚工程驗收課程
- 難治性癌痛護(hù)理
- 中醫(yī)內(nèi)科學(xué)考試題庫及答案(二)
- 2025年江蘇省公務(wù)員面試模擬題及答案
- 2025中國家庭品牌消費趨勢報告-OTC藥品篇-
- 廣東省2025屆湛江市高三下學(xué)期第一次模擬考試-政治試題(含答案)
- 天津市河?xùn)|區(qū)2026屆七年級數(shù)學(xué)第一學(xué)期期末復(fù)習(xí)檢測試題含解析
評論
0/150
提交評論