版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二講C基本語法C#基本語法第二講C基本語法 C#代碼的外觀和操作方式和代碼的外觀和操作方式和C+、Java十分的相似,在十分的相似,在C#編程的過程中,不需要花費(fèi)太多的精力就可以編寫出十分清晰編程的過程中,不需要花費(fèi)太多的精力就可以編寫出十分清晰的代碼。的代碼。using System;using System.Collections.Generic;using System.Text;namespace Hello_New_World class Program static void Main(string args) Console.WriteLine(Hello New World我
2、的第一個(gè)C#應(yīng)用程序); Console.ReadKey(); C#的基本語法概況的基本語法概況第二講C基本語法lC#的每條語句都用一個(gè)分號(hào)來結(jié)束;為了程序的可讀性和易的每條語句都用一個(gè)分號(hào)來結(jié)束;為了程序的可讀性和易維護(hù)性,建議一行一語句,維護(hù)性,建議一行一語句,C#編譯器自動(dòng)過濾回車符之類的編譯器自動(dòng)過濾回車符之類的空白字符;空白字符;lC#是一個(gè)塊結(jié)構(gòu)的編程語言,代碼塊使用是一個(gè)塊結(jié)構(gòu)的編程語言,代碼塊使用“”和和“”來界來界定,代碼塊中可以包含任意條語句,也可以根本不包含語句。定,代碼塊中可以包含任意條語句,也可以根本不包含語句。在在VS 2005中編寫代碼時(shí),系統(tǒng)會(huì)根據(jù)代碼塊的層次進(jìn)
3、行自動(dòng)中編寫代碼時(shí),系統(tǒng)會(huì)根據(jù)代碼塊的層次進(jìn)行自動(dòng)縮進(jìn);縮進(jìn);lC#代碼嚴(yán)格區(qū)分大小寫,這與其他許多編程語言是不同的,代碼嚴(yán)格區(qū)分大小寫,這與其他許多編程語言是不同的,否則將會(huì)引起編譯出錯(cuò)。例如將上述控制臺(tái)程序中的輸出語否則將會(huì)引起編譯出錯(cuò)。例如將上述控制臺(tái)程序中的輸出語句句“Console.writeLine (Hello New World我的第一個(gè)我的第一個(gè)C#應(yīng)用程序應(yīng)用程序)”更改為更改為“ConSole.WriteLine(Hello New World我的第一個(gè)我的第一個(gè)C#應(yīng)用程序應(yīng)用程序)”,程序?qū)⒉荒苷>?,程序?qū)⒉荒苷>幾g和執(zhí)行。譯和執(zhí)行。C#的基本語法概況的基本語法概
4、況第二講C基本語法 在在C#中,可以使用兩種方式來注釋代碼:?jiǎn)涡凶⑨尯投嘈凶⑨尅涡凶⒅?,可以使用兩種方式來注釋代碼:?jiǎn)涡凶⑨尯投嘈凶⑨?。單行注釋使用釋使用?”來標(biāo)記注釋,其后可以編寫任何內(nèi)容,但一次只能注釋一行語來標(biāo)記注釋,其后可以編寫任何內(nèi)容,但一次只能注釋一行語句,使用多行注釋時(shí),句,使用多行注釋時(shí),C#以以“/*”標(biāo)記注釋的起始位置,以標(biāo)記注釋的起始位置,以“*/”標(biāo)記注釋標(biāo)記注釋結(jié)束。結(jié)束。using System.Text; /引用System.Text命名空間/* 這是一個(gè)簡(jiǎn)單的C#控制臺(tái)應(yīng)用程序程序開始 */namespace Hello_New_WorldC#的基本語法概況
5、的基本語法概況第二講C基本語法 VS 2005具有代碼的突出顯示功能,及代碼的折疊和隱藏功能。具有代碼的突出顯示功能,及代碼的折疊和隱藏功能。在編寫在編寫C#代碼時(shí),可以使用代碼時(shí),可以使用“#region”和和“#endregion”關(guān)鍵關(guān)鍵字,來定義需要擴(kuò)展和收縮的代碼,字,來定義需要擴(kuò)展和收縮的代碼,#region 引用的命名空間using System;using System.Collections.Generic;using System.Text;#endregionC#的基本語法概況的基本語法概況第二講C基本語法變量變量變量是計(jì)算機(jī)內(nèi)存中的一塊存儲(chǔ)單元,可以將數(shù)據(jù)存放到變量中,
6、需要的時(shí)變量是計(jì)算機(jī)內(nèi)存中的一塊存儲(chǔ)單元,可以將數(shù)據(jù)存放到變量中,需要的時(shí)候再?gòu)闹腥〕鲞M(jìn)行查看或修改。候再?gòu)闹腥〕鲞M(jìn)行查看或修改。變量的基本類型變量的基本類型變量和表達(dá)式變量和表達(dá)式類型別名存儲(chǔ)的值sbyteSystem.SByte128127之間的整數(shù)byteSystem.Byte0255之間的整數(shù)shortSystem.Int163276832767之間的整數(shù)ushortSystem.UInt16065535之間的整數(shù)intSystem.Int3221474836482147483647之間的整數(shù)uintSystem.UInt3204294967259之間的整數(shù)longSystem.Int
7、649223372892233727之間的整數(shù)ulongSystem.Unt640184467445之間的整數(shù)整型變量整型變量第二講C基本語法浮點(diǎn)型變量浮點(diǎn)型變量類型別名m的最小值m的最大值e的最小值e的最大值最小近似值最大近似值floatSystem.Single02241491041.510453.41038doubleSystem.Double025310759705.0103241.710308decimalSystem.Decimal02962601.010287.91028其他其他3種常用變量類型種常用變量類型類型別名存儲(chǔ)的值charSystem.Char一個(gè)Unicode字符,存
8、儲(chǔ)065535之間的整數(shù)boolSystem.Boolean布爾值:true或falsestringSystem.String存儲(chǔ)一組字符變量和表達(dá)式變量和表達(dá)式第二講C基本語法變量的命名規(guī)則和命名方法變量的命名規(guī)則和命名方法變量是計(jì)算機(jī)中占據(jù)一定內(nèi)存單元的存儲(chǔ)區(qū)域,通過指定變量的名稱來使用變量是計(jì)算機(jī)中占據(jù)一定內(nèi)存單元的存儲(chǔ)區(qū)域,通過指定變量的名稱來使用和管理變量。從數(shù)據(jù)存儲(chǔ)的角度來看,變量名相當(dāng)于存儲(chǔ)數(shù)據(jù)的變量所占據(jù)和管理變量。從數(shù)據(jù)存儲(chǔ)的角度來看,變量名相當(dāng)于存儲(chǔ)數(shù)據(jù)的變量所占據(jù)的那塊內(nèi)存單元的標(biāo)識(shí)名。的那塊內(nèi)存單元的標(biāo)識(shí)名。l變量名的第一個(gè)字符必須是字母、下劃線變量名的第一個(gè)字符必須是
9、字母、下劃線(_)或或;l其后的字符可以是字母、下劃線、數(shù)字等;其后的字符可以是字母、下劃線、數(shù)字等;l不能使用不能使用C#中的關(guān)鍵字作為變量名,如中的關(guān)鍵字作為變量名,如using、namespace等,因?yàn)檫@些關(guān)鍵字對(duì)等,因?yàn)檫@些關(guān)鍵字對(duì)于于C#編譯器而言有特定的含義;編譯器而言有特定的含義;lC#是區(qū)分大小寫的,因而在命名變量時(shí),一定要使用正確的大小寫,因?yàn)樵诔绦蚴菂^(qū)分大小寫的,因而在命名變量時(shí),一定要使用正確的大小寫,因?yàn)樵诔绦蛑惺褂盟鼈儠r(shí),即使只有一個(gè)字母的大小寫出錯(cuò),也會(huì)引起編譯錯(cuò)誤。中使用它們時(shí),即使只有一個(gè)字母的大小寫出錯(cuò),也會(huì)引起編譯錯(cuò)誤。對(duì)于簡(jiǎn)單的變量,建議使用對(duì)于簡(jiǎn)單的變
10、量,建議使用camelCase命名方法,而對(duì)于比較高級(jí)的變量,命名方法,而對(duì)于比較高級(jí)的變量,則使用則使用PascalCase命名方法。命名方法。productIdproductNameproductDiscontentProductIdProductNameProductDiscontentcamelCasePascalCase變量和表達(dá)式變量和表達(dá)式第二講C基本語法識(shí)別下列標(biāo)識(shí)符nPersonnyearly-cost yearly_costnint intnmyclassnChecking#thisnFloatn5dayn變量名最好使用具有實(shí)際意義的英文單詞,變量名最好使用具有實(shí)際意義的英
11、文單詞,能夠能夠“見名知意見名知意”第二講C基本語法變量static void Main(string args)/ 聲明布爾型、字符串型、整型、短整型和浮點(diǎn)型變量 bool test = true;short num1 = 19;int num2 = 14000;string val = John;float num3 = 14.5f;/ 顯示變量值 Console.WriteLine (布爾值 = + test);Console.WriteLine (短整型值 = + num1);Console.WriteLine (整型值 = + num2);Console.WriteLine (字符串
12、值 = + val);Console.WriteLine (浮點(diǎn)值 = + num3);變量中存儲(chǔ)的值取決于該變量的類型第二講C基本語法變量的作用域Class Scopepublic static void Main()int x;x=10;if(x= =10)int y=20;Console.WriteLine(“ x and y:0,1”,x,y);y=100;Console.WriteLine(“x is “+x);程序中的一個(gè)塊就定義就定義了一個(gè)作用域,域內(nèi)的變量對(duì)外部不可見。變量在進(jìn)入其作用域時(shí)創(chuàng)建,在離開作用域時(shí)被釋放。第二講C基本語法常量常量常量又稱為字面值,是一種在使用過程中值
13、不發(fā)生改變的特殊變量。常量的常量又稱為字面值,是一種在使用過程中值不發(fā)生改變的特殊變量。常量的聲明方法和變量類似,只要在類型關(guān)鍵字前面加上聲明方法和變量類似,只要在類型關(guān)鍵字前面加上const關(guān)鍵字并指定常量關(guān)鍵字并指定常量值即可。和變量一樣,常量也包括多種類型:數(shù)值常量、字符常量等。值即可。和變量一樣,常量也包括多種類型:數(shù)值常量、字符常量等。注意:常量在程序中只能被賦值一次,否則編譯器便會(huì)報(bào)告錯(cuò)誤。注意:常量在程序中只能被賦值一次,否則編譯器便會(huì)報(bào)告錯(cuò)誤。常量具有以下顯著特征:常量具有以下顯著特征:l常量必須在聲明時(shí)進(jìn)行初始化,其指定值后便不能再進(jìn)行修改;常量必須在聲明時(shí)進(jìn)行初始化,其指定
14、值后便不能再進(jìn)行修改;l常量的值必須能夠在編譯時(shí)用于計(jì)算,因而,從一個(gè)變量中提取某個(gè)時(shí)刻常量的值必須能夠在編譯時(shí)用于計(jì)算,因而,從一個(gè)變量中提取某個(gè)時(shí)刻的值并將其賦值給常量,這種做法是不允許的;的值并將其賦值給常量,這種做法是不允許的;l常量是靜態(tài)的,但不必在聲明時(shí)使用常量是靜態(tài)的,但不必在聲明時(shí)使用static修飾符。修飾符。 在程序中使用常量有以下幾個(gè)好處:在程序中使用常量有以下幾個(gè)好處:l常量使用易于理解的名稱,來代替含義不明確的數(shù)字或字符串,使程序更常量使用易于理解的名稱,來代替含義不明確的數(shù)字或字符串,使程序更易于閱讀;易于閱讀;l常量使程序更易于修改。常量使程序更易于修改。cons
15、t int pi3.1415926;變量和表達(dá)式變量和表達(dá)式第二講C基本語法常量static void Main(string args)/ PI常量PIconst float _pi = 3.14F;/ 由地球引力引起的加速度常量,單位為 cm/s*s const float _gravity = 980;/ 鐘擺的長(zhǎng)度 int length = 40;/ 鐘擺的周期 double period = 0;/ 鐘擺周期的計(jì)算公式 period = 2 * _pi * Math.Sqrt(length / _gravity);Console.WriteLine (鐘擺的周期為 0 秒, peri
16、od);聲明常量在表達(dá)式中使用常量qconst 關(guān)鍵字用于聲明常量第二講C基本語法字符串常量存儲(chǔ)的是一組字符,例如一個(gè)用于連接數(shù)據(jù)庫(kù)的字符串常量存儲(chǔ)的是一組字符,例如一個(gè)用于連接數(shù)據(jù)庫(kù)的字符常量:字符常量:上述常量中便發(fā)生了轉(zhuǎn)義字符的問題,應(yīng)用程序在使用該字上述常量中便發(fā)生了轉(zhuǎn)義字符的問題,應(yīng)用程序在使用該字符串常量來連接數(shù)據(jù)庫(kù)時(shí),便會(huì)出現(xiàn)連接錯(cuò)誤,原因是系統(tǒng)將符串常量來連接數(shù)據(jù)庫(kù)時(shí),便會(huì)出現(xiàn)連接錯(cuò)誤,原因是系統(tǒng)將字符串常量中的字符字符串常量中的字符“”看作是轉(zhuǎn)義字符來處理了。如果要解決看作是轉(zhuǎn)義字符來處理了。如果要解決前面連接數(shù)據(jù)庫(kù)的字符串常量中的反斜杠字符識(shí)別問題,可使前面連接數(shù)據(jù)庫(kù)的字符
17、串常量中的反斜杠字符識(shí)別問題,可使用兩個(gè)反斜杠,即更改成如下所示:用兩個(gè)反斜杠,即更改成如下所示:“server=wjltupwk_wjl;Integrated Security=SSPI;database=電子商務(wù)系統(tǒng)”“server=wjltupwk_wjl;Integrated Security=SSPI;database=電子商務(wù)系統(tǒng)”變量和表達(dá)式變量和表達(dá)式第二講C基本語法C#兩種數(shù)值類型類類 別別說說 明明值類型簡(jiǎn)單類型有符號(hào)整型:sbyte, short, int, long無符號(hào)整型:byte, ushort, uint, ulongUnicode 字符:charIEEE浮點(diǎn)型
18、:float, double高精度小數(shù):decimal布爾型:bool 枚舉類型enum E . 形式的用戶定義的類型結(jié)構(gòu)類型struct S . 形式的用戶定義的類型引用類型類類型所有其他類型的最終基類:objectclass C . 形式的用戶定義的類型接口類型interface I .形式的用戶定義的類型Unicode字符串string數(shù)組類型一維和多維數(shù)組,例如int和int,委托類型delegate T D(.) 形式的用戶定義的類型值類型變量包含本身數(shù)據(jù),而引用類型變量存放的是指向真正數(shù)據(jù)塊的引用(指針)第二講C基本語法C# 的基本數(shù)據(jù)類型static void Main(stri
19、ng args) DataTypeDemo objTest = new DataTypeDemo();objTest.Val = 100;/ 傳遞屬于引用類型的對(duì)象Test(objTest);/ 由于該數(shù)據(jù)類型屬于引用類型,所以會(huì)考慮新處理的值 Console.WriteLine(變量的值為 0, objTest.Val); static void Test(DataTypeDemo dataTest)int temp = 10;dataTest.Val = temp * 20; 將 DataTypeTest 的引用傳遞給 Test() 被傳遞的 val 在 Test() 中改變反映已經(jīng)改變的
20、 val 值,不而保留原始值class DataTypeDemo public int Val;第二講C基本語法裝箱和拆箱int val = 100;object obj = val;Console.WriteLine (“對(duì)象的值 = 0, obj);int val = 100;object obj = val;int num = (int) obj;Console.WriteLine (num: 0, num);值類型引用類型拆箱裝箱值類型引用類型值類型被裝過箱的對(duì)象才能被拆箱第二講C基本語法裝箱/拆箱n實(shí)現(xiàn)值類型/引用類型之間轉(zhuǎn)換的機(jī)制int i=110;object obj=i; /o
21、bject obj=(object)i;int j=(int)obj;注意:拆箱轉(zhuǎn)換的數(shù)據(jù)類型必須與裝箱的類型一致(兼容),否則出錯(cuò)!obji110Stack區(qū)Heap區(qū)110第二講C基本語法對(duì)象類型System.Objectn所有其他對(duì)象的基類,所有的數(shù)據(jù)類型都直接或間接的從object類型繼承nObject類型的變量可接受任何類型的數(shù)值n是實(shí)現(xiàn)裝箱/拆箱的本源所在第二講C基本語法using System;using System.Collections.Generic;using System.Text;namespace HelloWorld class ObjectApp int nu
22、mber = 918; static void Main(string args) object obj = 124; Console.WriteLine(obj); Console.WriteLine(obj.GetType(); obj = new ObjectApp(); ObjectApp value; value = (ObjectApp)obj; Console.WriteLine(value.number); Console.WriteLine(obj.GetType(); Console.Read(); 可用object引用指向任何類型的對(duì)象,用相同的代碼對(duì)不同類型的數(shù)據(jù)執(zhí)行不
23、同的操作,這就是單一繼承體系的好處,GetType()可動(dòng)態(tài)獲得對(duì)象的真正類型第二講C基本語法Object.ToString()獲得對(duì)象的字面量n獲得一個(gè)對(duì)象的用戶友好的字符串表示類型類型類別類別后綴后綴示例示例/允許的值允許的值bool布爾無true或falseint整數(shù)無int x = 100uint,ulog整數(shù)U或Uuint x = 1000ulong,ulong 長(zhǎng)整型L或llong x = 100000Lulong無符號(hào)長(zhǎng)整型ul,uL,Ul,UL,lu,Lu,lU或LUulong x = 4324ulfloat單精度浮點(diǎn)數(shù)類型 F或ffloat x = 34.76Fdouble雙
24、精度浮點(diǎn)數(shù)類型 D或ddouble x = 763.7245Ddecimal精確十進(jìn)制類型M或mdecimal x = 1.544Mchar字符無char x = astring字符串無string =”abc”第二講C基本語法通過改寫ToString來進(jìn)行自定義輸出class Teacher public string name; public string courseName; public override string ToString() return string.Format(Im a teacher,my name is 0 and I teach 1,,t
25、his.courseName); class Student public string name; public int age; public Student(string name, int age) = name; this.age = age; public override string ToString() return string.Format(I am a student,my name is 0 and I am 1 years old,name,age); 第二講C基本語法 static void Main(string args) Teacher
26、t = new Teacher(); = Bill Gates; t.courseName = Objects orientation programming; Student s = new Student(Tom Hanks, 18); Console.WriteLine(t); Console.WriteLine(s);/等價(jià)于調(diào)用Console.WriteLine(s.ToString(); Console.Read(); 通過改寫ToString方法,可以提供一致的形式來顯示對(duì)象的信息,這里體現(xiàn)了面向?qū)ο缶幊痰氖裁刺匦阅??多態(tài)性!第二講C基本語法隱式轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換n隱式
27、(賦值和混合表達(dá)式中)n自動(dòng)算術(shù)表達(dá)式轉(zhuǎn)換,低類型的操作數(shù)被提升到高類型,結(jié)果也為高類型ndouble s;int i;s+i n顯式n強(qiáng)制將高級(jí)數(shù)據(jù)類型轉(zhuǎn)換成低級(jí)數(shù)據(jù)類型nint i=(int)(1.2*y+0.5);n一般會(huì)導(dǎo)致丟失一些數(shù)據(jù)精度第二講C基本語法C#所支持的隱式類型轉(zhuǎn)換所支持的隱式類型轉(zhuǎn)換源類型目的類型sbyteshort、int、long、float、double、decimalbyteshort、ushort、int、uint、long、ulong、float、double、decimalshortint、long、float、double、decimalushortin
28、t、uint、long、ulong、float、double、decimalintlong、float、double、decimaluintlong、ulong、float、double、decimallong、ulongfloat、double、decimalfloatdoublecharushort、int、uint、long、ulong、float、double、decimal第二講C基本語法顯式轉(zhuǎn)換顯式轉(zhuǎn)換 明確要求顯示器把一種變量類型轉(zhuǎn)換為另外一種變明確要求顯示器把一種變量類型轉(zhuǎn)換為另外一種變量類型時(shí),便是顯式轉(zhuǎn)換,這相當(dāng)于告訴編譯器量類型時(shí),便是顯式轉(zhuǎn)換,這相當(dāng)于告訴編譯器“我我已
29、經(jīng)知道你對(duì)我這么做提出了警告,但我將對(duì)這么做已經(jīng)知道你對(duì)我這么做提出了警告,但我將對(duì)這么做的后果負(fù)責(zé)的后果負(fù)責(zé)”。 但這種轉(zhuǎn)換很可能在程序運(yùn)行期間因類型轉(zhuǎn)換而造但這種轉(zhuǎn)換很可能在程序運(yùn)行期間因類型轉(zhuǎn)換而造成數(shù)據(jù)丟失,造成極大破壞,這又被稱為數(shù)據(jù)的溢出。成數(shù)據(jù)丟失,造成極大破壞,這又被稱為數(shù)據(jù)的溢出。 推薦使用推薦使用Convert命令來進(jìn)行顯式轉(zhuǎn)換,這種轉(zhuǎn)換能夠命令來進(jìn)行顯式轉(zhuǎn)換,這種轉(zhuǎn)換能夠成功執(zhí)行的前提是:所要轉(zhuǎn)換的字符串必須是數(shù)值的成功執(zhí)行的前提是:所要轉(zhuǎn)換的字符串必須是數(shù)值的有效表達(dá)方式,而且不會(huì)溢出。有效表達(dá)方式,而且不會(huì)溢出。(目標(biāo)類型)源變量;第二講C基本語法可使用可使用Conv
30、ert命令轉(zhuǎn)換的數(shù)據(jù)類型命令轉(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(源
31、變量)字符串型Convert.ToUInt16(源變量)ushort型Convert.ToUInt32(源變量)uint型Convert.ToUInt64(源變量)ulong型第二講C基本語法as實(shí)現(xiàn)轉(zhuǎn)型n語法:T t2=t1 as Tn含義:如果對(duì)象t1為類型T(或其子類)的實(shí)例,則將t1賦值給t2,否則t2為nulln與顯式強(qiáng)制類型轉(zhuǎn)換相比,它避免了由于類型不匹配造成的異常拋出第二講C基本語法using System;class Class1class Class2class MainClass static void Main() object objArray = new object
32、6; objArray0 = new Class1(); objArray1 = new Class2(); objArray2 = hello; objArray3 = 123; objArray4 = 123.4; objArray5 = null; for (int i = 0; i objArray.Length; +i) string s = objArrayi as string; Console.Write(0:, i); if (s != null)Console.WriteLine( + s + ); else Console.WriteLine(not a string);
33、 0:not a string 1:not a string 2:hello 3:not a string4:not a string 5:not a string 第二講C基本語法運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式變量和常量解決了數(shù)據(jù)的存儲(chǔ)問題,而表達(dá)式則變量和常量解決了數(shù)據(jù)的存儲(chǔ)問題,而表達(dá)式則用于數(shù)據(jù)的處理,它是計(jì)算的的基本建立塊。在用于數(shù)據(jù)的處理,它是計(jì)算的的基本建立塊。在C#中,將變量、常量和運(yùn)算符組合在一起,便形成了中,將變量、常量和運(yùn)算符組合在一起,便形成了表達(dá)式。表達(dá)式。運(yùn)算符用于解決數(shù)據(jù)的處理方式,根據(jù)能夠處理運(yùn)算符用于解決數(shù)據(jù)的處理方式,根據(jù)能夠處理的操作數(shù)的多少,可以分為:的操
34、作數(shù)的多少,可以分為:一元運(yùn)算符一元運(yùn)算符處理一個(gè)操作數(shù);處理一個(gè)操作數(shù);二元運(yùn)算符二元運(yùn)算符處理兩個(gè)操作數(shù);處理兩個(gè)操作數(shù);三元運(yùn)算符三元運(yùn)算符處理三個(gè)操作數(shù)。處理三個(gè)操作數(shù)。第二講C基本語法數(shù)學(xué)表達(dá)式數(shù)學(xué)表達(dá)式運(yùn)算符類別示例表達(dá)式運(yùn)算結(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é)運(yùn)算符數(shù)學(xué)運(yùn)算
35、符變量和表達(dá)式變量和表達(dá)式第二講C基本語法關(guān)系表達(dá)式關(guān)系表達(dá)式運(yùn)算符類別示例表達(dá)式運(yùn)算結(jié)果=二元變量1變量2=變量3如果變量2的值等于變量3的值,則變量1的值為true,反之為false!=二元變量1變量2!=變量3如果變量2的值不等于變量3的值,則變量1的值為true,反之為false二元變量1變量2二元變量1變量2變量3如果變量2的值大于變量3的值,則變量1的值為true,反之為false=二元變量1變量2=一元變量1=變量2=變量3如果變量2的值大于或等于變量3的值,則變量1的值為true,反之為false比較運(yùn)算符比較運(yùn)算符變量和表達(dá)式變量和表達(dá)式第二講C基本語法邏輯運(yùn)算符邏輯運(yùn)算符運(yùn)
36、算符類別示例表達(dá)式運(yùn)算結(jié)果!一元變量1!變量2邏輯非,如果變量2的值為true(false),則變量1的值為true(false)&二元變量1變量2&變量3邏輯與,如果變量2的值和變量3的值都為true,則變量1的值為true,反之為false|二元變量1變量|變量3邏輯或,只要變量2的值或變量3的值有一個(gè)為true,則變量1的值為true,反之為false變量和表達(dá)式變量和表達(dá)式注意,&和|具有短路計(jì)算規(guī)則,即可能會(huì)不完全運(yùn)算而得到結(jié)果(p69)第二講C基本語法賦值表達(dá)式賦值表達(dá)式賦值運(yùn)算符賦值運(yùn)算符運(yùn)算符類別示例表達(dá)式運(yùn)算結(jié)果=二元變量1變量2將變量2的值賦予變量1+=二元變量1+=變量2
37、將變量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á)式注意,引用類型的賦值是地址的拷貝,而不是值本身第二講C基本語法布爾賦值運(yùn)算符布爾賦值運(yùn)算符運(yùn)算符類別示例表達(dá)式運(yùn)算結(jié)果&=二元變量1&變量2變量1的值為變量2&變量3|=二元變量1|變量2變量1的值為變量2|變量3=一元變量1=變量2變量1的值為變量2變量3變量和表達(dá)式變量和表達(dá)式第
38、二講C基本語法算術(shù)運(yùn)算符static void Main(string args)/ x2 的系數(shù)int cf1 = 2;/ x 的系數(shù)int cf2 = -7;/ 二次方程的常數(shù)值 int constant = 3;/ 存放表達(dá)式 b2 - 4ac 的值 double expression = 0;double x1 = 0;double x2 = 0;Console.WriteLine(二次方程為: 0 x2 + 1x + 2, cf1, cf2, constant);expression = Math.Sqrt(cf2 * cf2 - (4 * cf1 * constant);x1 =
39、(-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ù)運(yùn)算符 第二講C基本語法位運(yùn)算n& 與n| 或n 異或n 取補(bǔ)n 右移位操作符就是對(duì)數(shù)據(jù)按二進(jìn)制位進(jìn)行運(yùn)算的操作符。第二講C基本語法求補(bǔ)運(yùn)算求補(bǔ)()運(yùn)算對(duì)操作數(shù)的每一位取補(bǔ),如對(duì)10取補(bǔ)結(jié)果為:10的二進(jìn)制表示: 求補(bǔ)運(yùn)算的結(jié)果: /按位求補(bǔ)using System
40、;class BitWiseCompl public static void Main() short a = 10; ushort b = 10; int c = 10; uint d = 10; Console.WriteLine(10); Console.WriteLine(short: 0, a); Console.WriteLine(ushort: 0, b); Console.WriteLine(int: 0, c); Console.WriteLine(uint: 0, d); 第二講C基本語法閱讀代碼n61頁(yè) 例4.6第二講C基本語法運(yùn)算符的優(yōu)先級(jí)運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)運(yùn) 算 符
41、優(yōu)先級(jí)由高到低+,(用作前綴);(),(一元),!,*,/,%+,=,!=&|&|=,*=,/=,%=,+=,=,=,&=,=,|=+,(用作后綴)變量和表達(dá)式變量和表達(dá)式第二講C基本語法類 別運(yùn) 算 符說 明位運(yùn)算符&將操作數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),并按位進(jìn)行與運(yùn)算|將操作數(shù)轉(zhuǎn)換位二進(jìn)制數(shù),并按位進(jìn)行或運(yùn)算移位運(yùn)算符將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后右移賦值運(yùn)算符=將操作數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后右移賦值成員訪問.成員訪問索引索引轉(zhuǎn)換()強(qiáng)制轉(zhuǎn)換條件?:三元if語句創(chuàng)建對(duì)象new創(chuàng)建對(duì)象的一個(gè)實(shí)例類型信息as安全轉(zhuǎn)換為指定類型is檢查所給類型是否為指定類型溢出checked控制溢出檢查上下文unchecked
42、控制溢出檢查上下文間接尋址和地址*指針取消引用指針成員訪問指針?biāo)饕?取地址變量和表達(dá)式變量和表達(dá)式其他其他C#運(yùn)算符運(yùn)算符第二講C基本語法new 操作符操作符 new操作符用于創(chuàng)建一個(gè)新的類型實(shí)例。它有三種形式:n對(duì)象創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)類類型或值類型的實(shí)例。n數(shù)組創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)數(shù)組類型實(shí)例。n代表創(chuàng)建表達(dá)式,用于創(chuàng)建一個(gè)新的代表類型實(shí)例。 例:class A; A a = new A;int int_arr = new int10;delegate double DFunc(int x); DFunc f = new DFunc(5);第二講C基本語法is 操作符操作符 / i
43、s操作符using System;class OptIsExample public static void Main() Console.WriteLine(1 is int); Console.WriteLine(1 is float); Console.WriteLine(1.0 is float); Console.WriteLine(1.0 is double); is操作符被用于動(dòng)態(tài)地檢查運(yùn)行時(shí)對(duì)象類型是否和給定的類型兼容。運(yùn)算“e is T”的結(jié)果,其中,e是一個(gè)表達(dá)式,T是一個(gè)類型,返回值是一個(gè)布爾值。 第二講C基本語法命名空間張三張三張三張三第二講C基本語法命名空間Class
44、 Manager long int salary; . . long int salary; . Class Manager命名空間 SaleDept命名空間 ITDeptAdminDept.ManagerITDept.Manager類庫(kù)第二講C基本語法命名空間Class SamsungTelevisionClass SonyWalkmanClass SonyTelevisionClass SamsungWalkman長(zhǎng)名稱難以維護(hù)namespace Tcl class Television . class WalkMan . CH.TelevisionTcl.Televisionnamesp
45、ace CH class Television . class WalkMan . 有條理,有結(jié)構(gòu)第二講C基本語法命名空間namespace 命名空間的名稱命名空間的名稱 / 該名稱空間的所有類都放在這里。語法第二講C基本語法命名空間namespace Tcl class Monitor public void ListModels() Console.WriteLine(“供應(yīng)Tcl以下型號(hào)的顯示器:);Console.WriteLine(14, 15 n); static void Main(string args) / / TODO: 在此處添加代碼以啟動(dòng)應(yīng)用程序 / 第二講C基本語法命
46、名空間namespace CH public class Monitor public void ListModelStocks() Console.WriteLine(“以下是 長(zhǎng)虹 顯示器的規(guī)格及其庫(kù)存量:); Console.WriteLine(14=1000, 15=2000, 17=3000);static void Main(string args)Tcl.Monitor objTcl = new Tcl.Monitor();Monitor objCh = new Monitor();objTcl.ListModels();objCh.ListModelStocks(); 第二講C
47、基本語法為什么使用命名空間(為什么使用命名空間(1) C#采用的是單一的全局變量命名空間,若有兩個(gè)變采用的是單一的全局變量命名空間,若有兩個(gè)變量或函數(shù)的名稱完全相同,就會(huì)出現(xiàn)沖突量或函數(shù)的名稱完全相同,就會(huì)出現(xiàn)沖突. 如定義了一個(gè)用戶名變量如定義了一個(gè)用戶名變量userName,可能在調(diào)用某,可能在調(diào)用某個(gè)庫(kù)文件或別的程序代碼中也定義了相同的變量名,個(gè)庫(kù)文件或別的程序代碼中也定義了相同的變量名,此時(shí)便出現(xiàn)了沖突。此時(shí)便出現(xiàn)了沖突。 命名空間就是為解決命名空間就是為解決C#中變量、函數(shù)的命名沖突而中變量、函數(shù)的命名沖突而服務(wù)的。可以將同一名稱的變量定義在不同的命名空服務(wù)的??梢詫⑼幻Q的變量定
48、義在不同的命名空間中。間中。 如:張家有電視機(jī),李家也有電視機(jī),王家也有電如:張家有電視機(jī),李家也有電視機(jī),王家也有電視機(jī),但因?yàn)樗鼈儗儆诓煌募彝?,使用時(shí)只需將它視機(jī),但因?yàn)樗鼈儗儆诓煌募彝?,使用時(shí)只需將它們所屬的家庭作為前綴名即可。們所屬的家庭作為前綴名即可。命名空間和命名空間和using語句語句第二講C基本語法為什么使用為什么使用using語句(語句(2) 創(chuàng)建了命名空間后,如果命名空間中嵌套比較深,在外部引用它們時(shí)是創(chuàng)建了命名空間后,如果命名空間中嵌套比較深,在外部引用它們時(shí)是十分不方便的,可以使用十分不方便的,可以使用using語句來簡(jiǎn)化對(duì)它們的訪問,語句來簡(jiǎn)化對(duì)它們的訪問,usi
49、ng語句的意思語句的意思就好比是就好比是“我們需要對(duì)這個(gè)命名空間中的變量,所以不要每次總是要求對(duì)它我們需要對(duì)這個(gè)命名空間中的變量,所以不要每次總是要求對(duì)它們分類們分類”。什么情況下使用命名空間的別名什么情況下使用命名空間的別名 使用使用using語句可以簡(jiǎn)化對(duì)命名空間的引用,然而某些命名空間中很可能語句可以簡(jiǎn)化對(duì)命名空間的引用,然而某些命名空間中很可能包含相同名稱的類,在某些情況下卻恰恰需要用到這些同名的類。包含相同名稱的類,在某些情況下卻恰恰需要用到這些同名的類。例如在例如在.NET Framework類庫(kù)中存在類庫(kù)中存在3個(gè)個(gè)Timer類:類:System.Timer.Timer、Syst
50、em.Threading.Timer和和System.Windows.Forms.Timer,我們需要使,我們需要使用用System.Timer.Timer在后臺(tái)以固定的時(shí)間間隔檢查所有應(yīng)用程序或系統(tǒng)在后臺(tái)以固定的時(shí)間間隔檢查所有應(yīng)用程序或系統(tǒng)的狀態(tài),而使用的狀態(tài),而使用System.Windows.Forms.Timer來在用戶界面中顯示一個(gè)來在用戶界面中顯示一個(gè)簡(jiǎn)單的動(dòng)畫,這時(shí),開發(fā)人員就必須在類前面加上命名空間。簡(jiǎn)單的動(dòng)畫,這時(shí),開發(fā)人員就必須在類前面加上命名空間。命名空間和命名空間和using語句語句第二講C基本語法此時(shí)程序顯得比較冗長(zhǎng),可以使用此時(shí)程序顯得比較冗長(zhǎng),可以使用using
51、語句來給命名空間指語句來給命名空間指定一個(gè)別名。定一個(gè)別名。當(dāng)程序中需要引用這個(gè)命名空間時(shí),可以簡(jiǎn)單地使用它的別當(dāng)程序中需要引用這個(gè)命名空間時(shí),可以簡(jiǎn)單地使用它的別名,使用別名的方法和使用命名空間完全相同。名,使用別名的方法和使用命名空間完全相同。using語句本身不能訪問另一個(gè)命名空間中的名稱,除非命名語句本身不能訪問另一個(gè)命名空間中的名稱,除非命名空間中的代碼以某種方式鏈接到項(xiàng)目上,或者代碼是在該項(xiàng)目空間中的代碼以某種方式鏈接到項(xiàng)目上,或者代碼是在該項(xiàng)目的源文件中定義的,或在鏈接到該項(xiàng)目的其他代碼中定義的,的源文件中定義的,或在鏈接到該項(xiàng)目的其他代碼中定義的,否則就不能訪問其中包含的名稱。
52、否則就不能訪問其中包含的名稱。另外,如果包含命名空間的代碼鏈接到項(xiàng)目上,無論是否使另外,如果包含命名空間的代碼鏈接到項(xiàng)目上,無論是否使用用using關(guān)鍵字,都可以訪問其中包含的變量或類。關(guān)鍵字,都可以訪問其中包含的變量或類。using 別名=命名空間名;命名空間和命名空間和using語句語句第二講C基本語法命名空間別名命名空間別名 using Class1 = Namespace1.Test;/別名到類using Ns2= Namespace2.NameSpace3.NameSpace4; /別名到命名空間namespace Namespace1 class Test public Test(
53、) System.Console.WriteLine(Hello from Namespace1.Test); class MainClass public static void Main()Class1 obj1=new Class1();Ns2.Test obj2=new Ns2.Test();System.Console.Read(); namespace Namespace2 namespace Namespace3 namespace Namespace4 class Test public Test() System.Console.WriteLine(Hello from Na
54、mespace2.Test); 第二講C基本語法String類型n由一個(gè)或多個(gè)字符組成,一般以“”為界nSystem.String類中定義了很多對(duì)字符串的操作:比較、連接、查找子串。static void Main(string args)string a=u0068ello;string b= world;string c=a+b;Console.WriteLine(c);Console.WriteLine(c.Length);a=你好;Console.WriteLine(c);c=string.Copy(a);Console.WriteLine(c);Console.Read();第二講C
55、基本語法String類的用法nstring.Format實(shí)現(xiàn)字符串的格式化n輸入兩個(gè)整數(shù),輸出他們的實(shí)數(shù)除商,并輸出上的第二位小數(shù)static void Main() int i = Convert.ToInt32(Console.ReadLine(); int j = Convert.ToInt32(Console.ReadLine(); double shang = (double)i / j; string str = string.Format(0:F3, shang); char c = strstr.Length - 2; Console.WriteLine(c); Console.Read(); 第二講C基本語法日期DateTime類型n表示時(shí)間上的一刻,通常以日期和當(dāng)天的時(shí)間表示。 n示例:Console.WriteLine(DateTime.Now);DateTime date=new DateTime(2006,2,28,12,12,12);Console.WriteLine(date);Console.WriteLine(date.DayOfWeek);Console.W
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題06 三角形(全等、相似)(2大易錯(cuò)點(diǎn)分析+19個(gè)易錯(cuò)點(diǎn)+易錯(cuò)題通關(guān))-2024年中考數(shù)學(xué)考試易錯(cuò)題(解析版)
- 2024藥品銷售個(gè)人工作總結(jié)(35篇)
- 管道強(qiáng)度課程設(shè)計(jì)總結(jié)
- 自行車課課程設(shè)計(jì)
- 稅務(wù)工作總結(jié)稅收優(yōu)惠減免政策執(zhí)行情況
- 2024年物業(yè)辦公室管理制度及崗位職責(zé)(共4篇)
- 2024年稅務(wù)師題庫(kù)(名師系列)
- 《夢(mèng)幻西游案例分析》課件
- 2024年的語文教案篇
- 第7單元 工業(yè)革命和國(guó)際共產(chǎn)主義運(yùn)動(dòng)的興起(A卷·知識(shí)通關(guān)練)(解析版)
- 室內(nèi)覆蓋方案設(shè)計(jì)與典型場(chǎng)景
- 放射性粒子植入自我評(píng)估報(bào)告
- 2023年山西云時(shí)代技術(shù)有限公司招聘筆試題庫(kù)及答案解析
- 浙大中控DCS系統(tǒng)介紹(簡(jiǎn)潔版)
- GB/T 16288-2008塑料制品的標(biāo)志
- GB/T 14486-2008塑料模塑件尺寸公差
- 北京市海淀區(qū)2022-2023學(xué)年高三期末考試歷史試題及答案
- 頂板管理實(shí)施細(xì)則
- 2022年杭州西湖文化旅游投資集團(tuán)有限公司招聘筆試試題及答案解析
- 中國(guó)青年運(yùn)動(dòng)史PPT模板
- DB32T 4132-2021 城鄉(xiāng)污泥(淤泥)燒結(jié)節(jié)能磚自保溫墻體系統(tǒng)應(yīng)用規(guī)程
評(píng)論
0/150
提交評(píng)論