變量與表達(dá)式_第1頁(yè)
變量與表達(dá)式_第2頁(yè)
變量與表達(dá)式_第3頁(yè)
變量與表達(dá)式_第4頁(yè)
變量與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

變量與表達(dá)式1第一頁(yè),共七十二頁(yè),2022年,8月28日本章要點(diǎn)變量的命名、類(lèi)型以及賦值的方法表達(dá)式與運(yùn)算符的優(yōu)先級(jí)值類(lèi)型與引用類(lèi)型字符串的定義與使用2第二頁(yè),共七十二頁(yè),2022年,8月28日2.1變量變量代表了存儲(chǔ)單元,每個(gè)變量都有一個(gè)類(lèi)型。這決定了這個(gè)變量可以存儲(chǔ)什么值??梢酝ㄟ^(guò)賦值語(yǔ)句的操作來(lái)改變變量的值。使用變量的一條重要原則是:

變量必須先定義后使用C#數(shù)據(jù)類(lèi)型大小示例int有符號(hào)的32位整數(shù)intrating=20;float32位浮點(diǎn)數(shù),精確到小數(shù)點(diǎn)后7位floattemperature=40.6F;byte無(wú)符號(hào)的8位整數(shù)bytegpa=2;short有符號(hào)的16位整數(shù)shortsalary=3400;long有符號(hào)的64位整數(shù)longpopulation=23451900;bool布爾值,true或falseboolIsManager=true;stringUnicode字符串stringcolor=“Orange”char單個(gè)Unicode字符chargender=‘M’;3第三頁(yè),共七十二頁(yè),2022年,8月28日2.1.1變量的聲明變量的聲明采用如下的規(guī)則:

typename;

其中type是變量的類(lèi)型,name是變量的名稱(chēng)。例如:

inta;doubleb;doubled=2.4;strings="helloCSharp";boolb1=true,b2=false;4第四頁(yè),共七十二頁(yè),2022年,8月28日2.1.2變量的命名基本的變量命名規(guī)則如下:變量名的第一個(gè)字符必須是字母、下劃線("_")或者"@"。除去第一個(gè)字符外,其余的字符可以是字母、數(shù)字、下劃線的組合。不可以使用對(duì)C#編譯器而言有特定含義的名字(即C#語(yǔ)言的庫(kù)函數(shù)名稱(chēng)和關(guān)鍵字名稱(chēng))作為變量名,如using、namespace、struct等等。此條命名規(guī)則其實(shí)在寫(xiě)程序的時(shí)候系統(tǒng)會(huì)自動(dòng)提示你的錯(cuò)誤的,所以不必過(guò)于擔(dān)心。例如:

345abcclassw-d-m×例如:

wdm_myVariableVAR√5第五頁(yè),共七十二頁(yè),2022年,8月28日C#對(duì)于大小寫(xiě)字母是敏感的,所以在聲明以及使用變量的時(shí)候要注意這些,例如Variable、variable、VARIABLE是3個(gè)不同的變量。在變量的命名過(guò)程中,命名遵循一定的規(guī)則是必須的。在.NETFramework名稱(chēng)空間中有兩種命名約定,分別為PascalCase和camelCase。它們都應(yīng)用到由多個(gè)單詞組成的名稱(chēng)中,并指定名稱(chēng)中的每個(gè)單詞除了第一個(gè)字母大寫(xiě)外,其余字母都是小寫(xiě)。在camelCase中,還有一個(gè)規(guī)則,即第一個(gè)單詞須以小寫(xiě)字母開(kāi)頭。6第六頁(yè),共七十二頁(yè),2022年,8月28日下面是PascalCase變量命名的舉例:

AgeSumOfAppleDayOfWeek7第七頁(yè),共七十二頁(yè),2022年,8月28日下面是camelCase變量命名的舉例:agesumOfAppledayOfWeek

Micorsoft建議:對(duì)于簡(jiǎn)單的變量,使用camelCase規(guī)則,而比較高級(jí)的命名則使用PascalCase規(guī)則。8第八頁(yè),共七十二頁(yè),2022年,8月28日2.1.3變量的種類(lèi)在C#語(yǔ)言中,我們把變量分為七種類(lèi)型,分別是:靜態(tài)變量(StaticVariables)非靜態(tài)變量(InstanceVariables)實(shí)例變量數(shù)組變量(ArrayVariables)值參數(shù)(ValueParameters)引用參數(shù)(ReferenceParameters)輸出參數(shù)(OutputParameters)局部變量(LocalVariables)9第九頁(yè),共七十二頁(yè),2022年,8月28日classmyClass{inty=2;publicstaticintx=1;boolFunction(int[]s,intm,refinti,outintj){intw=2;j=x+y+i+w;}}

上面的代碼中,x是靜態(tài)變量,y是非靜態(tài)變量,s[0]是數(shù)組變量,m是值參數(shù),i是引用參數(shù),j是輸出參數(shù),w是局部變量。

10第十頁(yè),共七十二頁(yè),2022年,8月28日非靜態(tài)變量不帶有static修飾符聲明的變量稱(chēng)為實(shí)例變量(非靜態(tài)變量)。如:intS=2;針對(duì)類(lèi)中的非靜態(tài)變量而言,一旦一個(gè)類(lèi)的新的實(shí)例(對(duì)象)被創(chuàng)建,直到該實(shí)例不再被應(yīng)用從而所在空間被釋放為止,該非靜態(tài)變量將一直存在。如:XiyoujiRenwu類(lèi)

XiyoujiRenwuzhubajie=newXiyoujiRenwu();XiyoujiRenwusunwukong=newXiyoujiRenwu();通過(guò)對(duì)象名調(diào)用,如zhubajie.S11第十一頁(yè),共七十二頁(yè),2022年,8月28日靜態(tài)變量帶有static修飾符聲明的變量為靜態(tài)變量。一旦靜態(tài)變量所屬的類(lèi)被裝載,直到包含該類(lèi)的程序運(yùn)行結(jié)束時(shí),它將一直存在。使用靜態(tài)變量時(shí),不需要對(duì)其所在的類(lèi)進(jìn)行實(shí)例化(即不使用new關(guān)鍵詞創(chuàng)建對(duì)象),就可以直接通過(guò)類(lèi)名來(lái)調(diào)用。如:XiyoujiRenwu類(lèi)

publicstaticintS=5

調(diào)用XiyoujiRenwu.S12第十二頁(yè),共七十二頁(yè),2022年,8月28日2.1.4變量類(lèi)型之間的轉(zhuǎn)換

在程序的設(shè)計(jì)中,常常會(huì)遇到變量的類(lèi)型轉(zhuǎn)換問(wèn)題。比如在進(jìn)行數(shù)學(xué)四則運(yùn)算時(shí),int類(lèi)型的數(shù)值和double類(lèi)型的數(shù)值可能混在一起進(jìn)行運(yùn)算,這樣變量之間的類(lèi)型轉(zhuǎn)換就應(yīng)運(yùn)而生。

C#中的變量類(lèi)型轉(zhuǎn)換常見(jiàn)的主要有以下4種方式:通過(guò)隱式轉(zhuǎn)換通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換使用ToString()方法使用Convert類(lèi)13第十三頁(yè),共七十二頁(yè),2022年,8月28日隱式轉(zhuǎn)換

隱式轉(zhuǎn)換又稱(chēng)自動(dòng)類(lèi)型轉(zhuǎn)換,若兩種變量的類(lèi)型是兼容的或者目標(biāo)類(lèi)型的取值范圍大于源類(lèi)型時(shí)就可以使用隱式轉(zhuǎn)換。

隱式轉(zhuǎn)換的數(shù)據(jù)源類(lèi)型以及目標(biāo)類(lèi)型對(duì)應(yīng)表

14第十四頁(yè),共七十二頁(yè),2022年,8月28日強(qiáng)制類(lèi)型轉(zhuǎn)換是一種指令,它告訴編譯器將一種類(lèi)型轉(zhuǎn)換為另外一種類(lèi)型。強(qiáng)制轉(zhuǎn)換的缺點(diǎn)是可能產(chǎn)生的結(jié)果不夠精確。具體的強(qiáng)制類(lèi)型轉(zhuǎn)換語(yǔ)法為:

(target-type)變量或表達(dá)式;

強(qiáng)制類(lèi)型轉(zhuǎn)換

例:intx;floaty=23;x=(int)y;

如果輸出y的值,結(jié)果是23.0,x的值,結(jié)果是2315第十五頁(yè),共七十二頁(yè),2022年,8月28日例2.1

類(lèi)型轉(zhuǎn)換小例子。程序代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceImolicitConversion{classProgram

{staticvoidMain(string[]args)

{inti=2;doubled=3.4;intv1=(int)(i+d);doublev2=i+d;Console.WriteLine("v1={0},v2={1}",v1,v2);Console.ReadLine();

}}}運(yùn)行結(jié)果為:v1=5,v2=5.4。16第十六頁(yè),共七十二頁(yè),2022年,8月28日usingSystem;classTest{publicstaticvoidMain() { inti=10; longj=20; doublek=30D; j=i; k=j;//隱式轉(zhuǎn)換

Console.WriteLine("{0},{1},{2}",i,j,k); k=30.6D; j=(long)k; i=(int)j;//強(qiáng)制類(lèi)型轉(zhuǎn)換

Console.WriteLine("{0},{1},{2}",i,j,k);

Console.Read(); }}運(yùn)行結(jié)果為:10,10,1030,30,30.617第十七頁(yè),共七十二頁(yè),2022年,8月28日ToString()方法主要用于將變量轉(zhuǎn)化為字符串類(lèi)型,該方法是C#語(yǔ)言中非常常見(jiàn)的一個(gè)方法。前面我們介紹的各種類(lèi)型的變量都可以通過(guò)ToString()方法轉(zhuǎn)換為String類(lèi)型,例如:inti=200;strings=i.ToString();這樣字符串類(lèi)型變量s的值就是"200"

。ToString()

方法18第十八頁(yè),共七十二頁(yè),2022年,8月28日Convert類(lèi)Convert類(lèi)的常見(jiàn)方法

19第十九頁(yè),共七十二頁(yè),2022年,8月28日20第二十頁(yè),共七十二頁(yè),2022年,8月28日usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceConsoleApplication2{

classProgram

{

staticvoidMain(string[]args)

{inti=67;longl;doubled=99.999;strings1,s2="17";boolb=true;s1=Convert.ToString(b)+Convert.ToString(d);Console.WriteLine("{0}+{1}->{2}",b,d,s1);l=i+Convert.ToInt64(s2);Console.WriteLine("{0}+{1}->{2}",i,s2,l);Console.ReadKey();

}

}}例2.2

使用Convert方法進(jìn)行類(lèi)型轉(zhuǎn)換的例子。運(yùn)行結(jié)果為:true+99.999->true99.99967+17->84s1=b.ToString()+d.ToString();21第二十一頁(yè),共七十二頁(yè),2022年,8月28日2.2常量

常量就是值在程序整個(gè)生命周期內(nèi)值始終不變的量。在聲明常量時(shí),要用到const關(guān)鍵字。常量在使用的過(guò)程中,不可以對(duì)其進(jìn)行賦值的改變,否則系統(tǒng)會(huì)自動(dòng)報(bào)錯(cuò)。

語(yǔ)法:

<訪問(wèn)修飾符>const數(shù)據(jù)類(lèi)型常量名=常量值;

示例:

constfloat_pi=3.14;22第二十二頁(yè),共七十二頁(yè),2022年,8月28日2.3表達(dá)式與運(yùn)算符

C#中的表達(dá)式是由運(yùn)算符、變量以及標(biāo)點(diǎn)符號(hào)依據(jù)一定的法則組合創(chuàng)建起來(lái)的。運(yùn)算符主要是用來(lái)定義類(lèi)實(shí)例中表達(dá)式操作符的。23第二十三頁(yè),共七十二頁(yè),2022年,8月28日2.3.1數(shù)學(xué)運(yùn)算符

C#中的數(shù)學(xué)運(yùn)算符有5種:

+加法運(yùn)算符

-減法運(yùn)算符*乘法運(yùn)算符

/除法運(yùn)算符

%取余運(yùn)算符上面的5種運(yùn)算符都是二元的,但是“+”與“-”運(yùn)算符也可以是一元的,具體用法如下:

inti=1;

i++;此時(shí)i的值就變?yōu)榱?,i++這個(gè)表達(dá)式可以解釋為i=i+1;24第二十四頁(yè),共七十二頁(yè),2022年,8月28日表達(dá)式++i與i++的含義又有不同,如下例:inti=1;intj;j=++i;

此程序運(yùn)行的結(jié)果是:j=2;inti=1;intj;j=i++;

此程序運(yùn)行的結(jié)果是:j=1;通過(guò)對(duì)以上2個(gè)簡(jiǎn)單程序的對(duì)比,可以得知表達(dá)式i++是先賦值,后進(jìn)行自身的運(yùn)算,而++i正好是相反的,先進(jìn)行自身的運(yùn)算,而后再賦值。

25第二十五頁(yè),共七十二頁(yè),2022年,8月28日取余運(yùn)算符取余運(yùn)算符用來(lái)求除法的余數(shù),在C#語(yǔ)言中,取余運(yùn)算既適用于整數(shù)類(lèi)型,也同樣適用于浮點(diǎn)型。如7%3的結(jié)果為1,7%2.5的結(jié)果為2。26第二十六頁(yè),共七十二頁(yè),2022年,8月28日2.3.2賦值運(yùn)算符賦值運(yùn)算符分為2種類(lèi)型,第一種是簡(jiǎn)單賦值運(yùn)算符,就是“=”號(hào);第二種是復(fù)合賦值運(yùn)算符,包含5類(lèi),具體的如下表所示:27第二十七頁(yè),共七十二頁(yè),2022年,8月28日2.3.3運(yùn)算符的優(yōu)先級(jí)

28第二十八頁(yè),共七十二頁(yè),2022年,8月28日2.4數(shù)據(jù)類(lèi)型在C#語(yǔ)言中,數(shù)據(jù)類(lèi)型可以分為兩大部分:值類(lèi)型(valuetype)和引用類(lèi)型(referencetype)。

引用類(lèi)型

類(lèi)類(lèi)型接口類(lèi)型代表類(lèi)型數(shù)組類(lèi)型值類(lèi)型

簡(jiǎn)單類(lèi)型

結(jié)構(gòu)類(lèi)型枚舉類(lèi)型

29第二十九頁(yè),共七十二頁(yè),2022年,8月28日

值類(lèi)型和引用類(lèi)型的不同之處是值類(lèi)型的變量值直接包含數(shù)據(jù),而引用類(lèi)型的變量把它們的引用存儲(chǔ)在對(duì)象中。對(duì)于引用類(lèi)型的變量,完全有可能讓兩個(gè)不同的變量引用同一個(gè)對(duì)象,這樣一來(lái),對(duì)其中一個(gè)變量的操作就會(huì)影響到被另一個(gè)變量引用的對(duì)象。對(duì)于值類(lèi)型的變量而言,每一個(gè)變量有它們自己的數(shù)值,因此對(duì)其中一個(gè)變量的操作不可能影響到另外一個(gè)變量。30第三十頁(yè),共七十二頁(yè),2022年,8月28日2.4.1值類(lèi)型

簡(jiǎn)單類(lèi)型簡(jiǎn)單類(lèi)型(SimpleTypes)是直接由一系列元素組成的數(shù)據(jù)類(lèi)型。C#語(yǔ)言給我們提供了一組已經(jīng)定義好的簡(jiǎn)單類(lèi)型。單純地從計(jì)算機(jī)的表示角度來(lái)看,這些簡(jiǎn)單類(lèi)型可以分為整數(shù)類(lèi)型、布爾類(lèi)型、字符類(lèi)型和實(shí)數(shù)類(lèi)型。31第三十一頁(yè),共七十二頁(yè),2022年,8月28日1、整數(shù)類(lèi)型整數(shù)類(lèi)型,顧名思義,就是變量的值為整數(shù)的值類(lèi)型。整數(shù)類(lèi)型特征取值類(lèi)型sbyte有符號(hào)8位整數(shù)-128-127byte無(wú)符號(hào)8位整數(shù)0-255short有符號(hào)16位整數(shù)-32768-32767ushort無(wú)符號(hào)16位整數(shù)0-65535int有符號(hào)32位整數(shù)-2147483648-2147483647uint無(wú)符號(hào)32位整數(shù)0-4294967295long有符號(hào)64位整數(shù)-9223372036854775808-9223372036854775807ulong無(wú)符號(hào)64位整數(shù)0-1844674407370955161532第三十二頁(yè),共七十二頁(yè),2022年,8月28日2、布爾類(lèi)型布爾類(lèi)型是用來(lái)表示“真”和“假”的。布爾類(lèi)型表示的邏輯變量只有兩種取值。在C#中,分別采用true和false兩個(gè)值來(lái)表示。在C語(yǔ)言中,用0來(lái)表示“假”,其他任何非零的值表示真。在C#中,布爾型變量只能是true或者false。例如:boolx=true;33第三十三頁(yè),共七十二頁(yè),2022年,8月28日3、字符類(lèi)型字符包括數(shù)字字符、英文字母和表達(dá)符號(hào)等等,C#提供的字符類(lèi)型按照國(guó)際標(biāo)準(zhǔn),采用Unicode字符集。給一個(gè)變量賦值的語(yǔ)法為:

charmychar='M';34第三十四頁(yè),共七十二頁(yè),2022年,8月28日轉(zhuǎn)義字符意義\’單引號(hào)符\”雙引號(hào)符\\反斜線符"\"\0

空字符(Null)\a

鳴鈴\b退格

\f

走紙換頁(yè)\n

換行\(zhòng)r

回車(chē)\t

橫向跳到下一制表位置\v豎向跳格(垂直制表)轉(zhuǎn)義字符及其含義35第三十五頁(yè),共七十二頁(yè),2022年,8月28日4、實(shí)數(shù)類(lèi)型實(shí)數(shù)在C#中采用三種數(shù)據(jù)類(lèi)型來(lái)表示:?jiǎn)尉?Float)、雙精度(Double)和十進(jìn)制(Decimal)類(lèi)型。它們的區(qū)別在于取值范圍和精度不同。單精度f(wàn)loat

在內(nèi)存中占4個(gè)字節(jié),提供7位有效數(shù)字。例:floatx,y=1.0f;(注意初值后一定要加f或者F,否則看做double類(lèi)型)雙精度double

占8個(gè)字節(jié),15~16位有效數(shù)字。例:doublez;

36第三十六頁(yè),共七十二頁(yè),2022年,8月28日當(dāng)定義一個(gè)Decimal類(lèi)型變量并且給其賦值的時(shí)候,使用m或者M(jìn)后綴以表示它是一個(gè)十進(jìn)制類(lèi)型,

例如:DecimalmyMoney=2.38m;

若在這里我們把語(yǔ)句改寫(xiě)為:

DecimalmyMoney=2.38;

那么在Decimal型變量myMoney被賦值前,它將被編譯器當(dāng)作雙精度(Double)類(lèi)型來(lái)處理。37第三十七頁(yè),共七十二頁(yè),2022年,8月28日結(jié)構(gòu)類(lèi)型把一系列相關(guān)的變量組織成為一個(gè)單一實(shí)體的過(guò)程,我們稱(chēng)為生成結(jié)構(gòu)的過(guò)程,這個(gè)單一實(shí)體的類(lèi)型就叫做結(jié)構(gòu)類(lèi)型,每一個(gè)變量稱(chēng)為結(jié)構(gòu)成員。結(jié)構(gòu)類(lèi)型的變量采用struct來(lái)進(jìn)行聲明。38第三十八頁(yè),共七十二頁(yè),2022年,8月28日例如:

struct

Student{publicstringname;publicboolsex;publicstringaddress;publicintscore;

}

Studentp1;p1就是一個(gè)Student結(jié)構(gòu)類(lèi)型的變量。上面聲明中的public表示對(duì)結(jié)構(gòu)類(lèi)型的成員的訪問(wèn)權(quán)限。對(duì)結(jié)構(gòu)成員的訪問(wèn)通過(guò)結(jié)構(gòu)變量名加上訪問(wèn)符“.”號(hào),再跟成員的名稱(chēng)。="Mike";

39第三十九頁(yè),共七十二頁(yè),2022年,8月28日注:結(jié)構(gòu)類(lèi)型包含的成員類(lèi)型沒(méi)有限制,可以相同,也可以不同,還可以把結(jié)構(gòu)類(lèi)型作為另一個(gè)結(jié)構(gòu)類(lèi)型的成員。structBall{publicdoubleWeight;publicdoubleRadius;structmyColor{publicintRed;publicintGreen;publicintBlue;publicstringColorName;}}

這里,Ball這個(gè)結(jié)構(gòu)中又包括了myColor這個(gè)結(jié)構(gòu),myColor結(jié)構(gòu)包括Red、Green、Blue、ColorName這4個(gè)成員。40第四十頁(yè),共七十二頁(yè),2022年,8月28日枚舉(enum)類(lèi)型是只能取值于所有列舉出的有限個(gè)元素的一種數(shù)據(jù)類(lèi)型。聲明格式:

enum枚舉類(lèi)型名{元素1,元素2,……};

其中,枚舉類(lèi)型名是用戶定義的枚舉類(lèi)型的類(lèi)型標(biāo)識(shí)符;大括號(hào)中的元素1、元素2,……是枚舉類(lèi)型所包含的所有元素列表。枚舉類(lèi)型41第四十一頁(yè),共七十二頁(yè),2022年,8月28日比如,我們聲明一個(gè)代表星期的枚舉類(lèi)型:

enumWeekDay{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}

WeekDayday;

賦值方式如下:day=Tuesday;42第四十二頁(yè),共七十二頁(yè),2022年,8月28日

引用類(lèi)型與C++中的引用類(lèi)似,因?yàn)槟憧梢詫⑺鼈円曌黝?lèi)型安全的指針。引用(在不是Null時(shí))總是確保指向一個(gè)對(duì)象,這個(gè)對(duì)象具有指定的類(lèi)型而且已經(jīng)分配了地址。另外,引用可以是Null,這表示它當(dāng)前不引用或不指向任何對(duì)象。C#中的引用類(lèi)型有4種:類(lèi)數(shù)組代表接口

2.4.2引用類(lèi)型43第四十三頁(yè),共七十二頁(yè),2022年,8月28日在面向?qū)ο蟮母拍钪校?lèi)是封裝數(shù)據(jù)的基本單位。類(lèi)是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對(duì)象的集合。是對(duì)一系列具有相同性質(zhì)的對(duì)象的抽象,是對(duì)對(duì)象共同特征的描述。比如每一輛汽車(chē)都是一個(gè)對(duì)象的話,所有的汽車(chē)可以作為一個(gè)模板,我們就定義汽車(chē)這個(gè)類(lèi)。

傳統(tǒng)的編程是面向過(guò)程的機(jī)制,而VisualC#使用可視化的面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。類(lèi)44第四十四頁(yè),共七十二頁(yè),2022年,8月28日類(lèi)的聲明類(lèi)的聲明格式如下:class-modifersclassclassname{……}其中class-modifers為類(lèi)的修飾符,常用的有public,protected,private,abstractclassname為類(lèi)的類(lèi)名。

45第四十五頁(yè),共七十二頁(yè),2022年,8月28日在一個(gè)類(lèi)中,每個(gè)對(duì)象都是類(lèi)的實(shí)例,C#中的new操作符可用于建立一個(gè)類(lèi)的實(shí)例??梢酝ㄟ^(guò)調(diào)用對(duì)象的屬性、方法和事件,來(lái)訪問(wèn)對(duì)象的功能。

對(duì)象創(chuàng)建的格式如下:

classNameObjectName=newclassName();其中,ObjectName為創(chuàng)建的對(duì)象名對(duì)象46第四十六頁(yè),共七十二頁(yè),2022年,8月28日47(1)對(duì)象的屬性。對(duì)象的性質(zhì)稱(chēng)為屬性,不同的對(duì)象有不同的屬性。通過(guò)修改或設(shè)置這些屬性即可有效地控制對(duì)象的外觀和操作。屬性的設(shè)置或修改可以通過(guò)屬性窗口進(jìn)行,也可以通過(guò)編輯的方法在程序運(yùn)行時(shí)來(lái)改變對(duì)象的相關(guān)屬性。

在程序中設(shè)置屬性一般格式是:對(duì)象名.屬性名=屬性值;

例如,設(shè)置窗體對(duì)象的標(biāo)題為“歡迎來(lái)到編程世界”的代碼命令是:

Form1.text=“歡迎來(lái)到編程世界”;47第四十七頁(yè),共七十二頁(yè),2022年,8月28日(2)對(duì)象的方法。方法(Method)是與對(duì)象相關(guān)聯(lián)的過(guò)程與函數(shù)的統(tǒng)稱(chēng),由系統(tǒng)內(nèi)部定義,而不用編寫(xiě)代碼。如窗口的關(guān)閉等。不同的對(duì)象具有不同的內(nèi)部方法。(3)對(duì)象的事件。所謂事件(Event),是由VisualC#預(yù)先定義好的、能夠被對(duì)象識(shí)別的動(dòng)作,不同的對(duì)象能夠識(shí)別的事件也有所不同。4848第四十八頁(yè),共七十二頁(yè),2022年,8月28日一個(gè)數(shù)組就是一組類(lèi)型相同的變量的集合。這些變量叫做數(shù)組元素??梢杂脭?shù)組元素在數(shù)組中的位置(即下標(biāo))來(lái)引用它。

特點(diǎn):所有的元素類(lèi)型都相同。

數(shù)組數(shù)組必須先聲明再引用。一個(gè)數(shù)組的聲明包括數(shù)組名稱(chēng)、數(shù)組元素類(lèi)型和數(shù)組維數(shù)。49第四十九頁(yè),共七十二頁(yè),2022年,8月28日創(chuàng)建數(shù)組時(shí),應(yīng)該先聲明,然后分配內(nèi)存。做法如下:

1、array_type[]array_name;

//聲明類(lèi)型為array_type的一維數(shù)組array_name2、array_name=newarray_type[element_numbers];

//為數(shù)組array_name分配內(nèi)存例如:

string[]person_name;person_name=newstring[10];50第五十頁(yè),共七十二頁(yè),2022年,8月28日例如:

string[]person_name;person_name=newstring[10];可以寫(xiě)成:

string[]person_name=newstring[10];上面說(shuō)的兩步也可以縮寫(xiě)成一步:array_type[]array_name=newarray_type[element_numbers];51第五十一頁(yè),共七十二頁(yè),2022年,8月28日上面只是創(chuàng)建了數(shù)組,數(shù)組在被訪問(wèn)之前必須初始化??梢栽趧?chuàng)建的時(shí)候就完成初始化,有以下三種方法:(1)int[]numbers=newint[]{1,2,3,4,5};

(2)int[]numbers={1,2,3,4,5};

(3)int[]numbers;

numbers=newint[]{1,2,3,4,5};

也可以在創(chuàng)建完之后再初始化,如:

int[]numbers=newint[5];numbers[0]=1;numbers[1]=2;numbers[2]=3;numbers[3]=4;numbers[4]=5;52第五十二頁(yè),共七十二頁(yè),2022年,8月28日在數(shù)組操作中經(jīng)常使用的一個(gè)重要屬性是數(shù)組的長(zhǎng)度。要確定一維數(shù)組的長(zhǎng)度,可以使用Length屬性,例如:intArrayLength=ArrayName.Length;如果是多維數(shù)組,則可以使用GetLength方法確定其某一特定維的長(zhǎng)度,例如:intArrayLength=ArrayName.GetLength(0);//獲取ArrayName數(shù)組第一維的長(zhǎng)度C#語(yǔ)言中還提供了Sort和Reverse這樣的靜態(tài)方法,可以將數(shù)組按照升序或降序排列。53第五十三頁(yè),共七十二頁(yè),2022年,8月28日[例]使用Sort和Reverse方法對(duì)數(shù)組排序。usingSystem;namespaceArrayExample1{classProgram{staticvoidMain(){string[]Artists={"Leonardo","Monet","VanGogh","Klee"};

//將數(shù)組Artists做升序排列,并輸出其結(jié)果;

Array.Sort(Artists);for(inti=0;i<Artists.Length;i++){Console.WriteLine(Artists[i]);}

//將數(shù)組Artists做降序排列,并輸出其結(jié)果;

Array.Reverse(Artists);

for(inti=0;i<Artists.Length;i++){Console.WriteLine(Artists[i]);}Console.ReadLine();}}}輸出結(jié)果:KleeLeonardoMonetVanGoghVanGoghMonetLeonardoKlee54第五十四頁(yè),共七十二頁(yè),2022年,8月28日2.5字符串

C#內(nèi)置支持功能完全的string類(lèi)型。更重要的是,C#把字符串也當(dāng)成對(duì)象,封裝了所有字符串所擁有的操作、排序和搜索方法。55第五十五頁(yè),共七十二頁(yè),2022年,8月28日2.5.1字符串的聲明和初始化定義字符串最基本的方式是把一個(gè)雙引號(hào)括起來(lái)的字符串賦給一個(gè)string類(lèi)型的變量:

strings="abcdef";

雙引號(hào)括起來(lái)的字符串可以包含轉(zhuǎn)義字符,如“\n”或“\t”,都以反斜線開(kāi)始,用來(lái)表示換行或制表。由于反斜線本身在一些命令行語(yǔ)法(如URL或者目錄路徑)中會(huì)用到,引號(hào)括起的字符串中,反斜線必須在其自身前面再加一個(gè)反斜線。如下面代碼所示:

stringdirectory="C:\\text";56第五十六頁(yè),共七十二頁(yè),2022年,8月28日字符串也可以用原樣的字符串創(chuàng)建,可以以“@”符號(hào)開(kāi)頭,這樣string構(gòu)造方法就知道字符串應(yīng)照原樣使用,即使它要跨行或者含有轉(zhuǎn)義字符。因此,下面的程序代碼

stringdirectory=“C:\\text\\2\\3";

也可以改寫(xiě)成如下的代碼:

stringdirectory=@"C:\text\2\3";57第五十七頁(yè),共七十二頁(yè),2022年,8月28日

string類(lèi)型變量可以看作是char變量的只讀數(shù)組。這樣,就可以使用下面的語(yǔ)法訪問(wèn)每個(gè)字符:

stringmyString="abcdef";charmyChar=myString[1];

同時(shí),我們還可以使用ToCharArray()函數(shù),把string類(lèi)型的變量轉(zhuǎn)存到字符數(shù)組里面了。58第五十八頁(yè),共七十二頁(yè),2022年,8月28日一個(gè)string轉(zhuǎn)化為字符數(shù)組的例子usingSystem;namespacestringExample{classProgram{staticvoidMain(string[]args){strings="abcdef";char[]myChar=s.ToCharArray();Console.WriteLine("字符數(shù)組myChar輸出如下:");foreach(charcinmyChar){Console.WriteLine("{0}",c);}Console.ReadLine();}}}59第五十九頁(yè),共七十二頁(yè),2022年,8月28日程序運(yùn)行結(jié)果60第六十頁(yè),共七十二頁(yè),2022年,8月28日字符串的拼接字符串的串接(合并)是指使用“+”符號(hào)連接前后兩個(gè)字符串:

stringcity="南京市";stringstreet="新街口";stringaddress=city+street;Console.WriteLine("地址是:"+address);

上述代碼的輸出結(jié)果為:"地址是:南京市新街口"

。

61第六十一頁(yè),共七十二頁(yè),2022年,8月28日

string類(lèi)有很多方法和屬性,常見(jiàn)的有:Length屬性、ToUpper/ToLower方法、IndexOf方法、Substring方法等。string類(lèi)的方法和屬性1、Length屬性

Length屬性是描述字符串長(zhǎng)度的屬性。

stringstr2=“youarewelcome!”;

intn=str2.Length;

那么n就得到str2字符串的長(zhǎng)度為16。62第六十二頁(yè),共七十二頁(yè),2022年,8月28日2、ToUpper/ToLower方法介紹

ToUpper()方法是把字符串中所有的字母都變成大寫(xiě)。

ToLower()方法是把字符串中所有的字母都變成小寫(xiě)。3、IndexOf方法介紹

IndexOf()方法是從str1字符串找出第一次出現(xiàn)某子字符串的位置,下標(biāo)從0開(kāi)始。

stringstr1="youarewelcome";intn=str1.IndexOf("are"

);那么n的值為4;63第六十三頁(yè),共七十二頁(yè),2022年,8月28日4、Substring()方法

Substring()方法是從str1字符串的第n1個(gè)字符開(kāi)始,取長(zhǎng)度為n2的子串。

str1.Substring(n1,n2);

例:stringstr1="youarewelcome";Console.WriteLine(str1.Substring(4,3));//結(jié)果為are64第六十四頁(yè),共七十二頁(yè),2022年,8月28日5、在一個(gè)字符串的指定位置插入指定的字符串Insert(intstartIndex,stringstr)在startIndex處插入字符串str。例如:stringStr1=“thisisastring.”Co

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論