![變量與表達(dá)式_第1頁(yè)](http://file4.renrendoc.com/view/857ccdc057c88d10b608667e03a52290/857ccdc057c88d10b608667e03a522901.gif)
![變量與表達(dá)式_第2頁(yè)](http://file4.renrendoc.com/view/857ccdc057c88d10b608667e03a52290/857ccdc057c88d10b608667e03a522902.gif)
![變量與表達(dá)式_第3頁(yè)](http://file4.renrendoc.com/view/857ccdc057c88d10b608667e03a52290/857ccdc057c88d10b608667e03a522903.gif)
![變量與表達(dá)式_第4頁(yè)](http://file4.renrendoc.com/view/857ccdc057c88d10b608667e03a52290/857ccdc057c88d10b608667e03a522904.gif)
![變量與表達(dá)式_第5頁(yè)](http://file4.renrendoc.com/view/857ccdc057c88d10b608667e03a52290/857ccdc057c88d10b608667e03a522905.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 古鎮(zhèn)改造磚運(yùn)輸協(xié)議模板
- 服裝服飾運(yùn)輸合同
- 農(nóng)業(yè)抗旱物資運(yùn)輸合同
- 學(xué)校建筑石材配送協(xié)議
- 產(chǎn)業(yè)基地自動(dòng)扶梯裝修合同
- 文旅融合發(fā)展項(xiàng)目居間協(xié)議
- 丹陽(yáng)六年級(jí)下數(shù)學(xué)試卷
- 橋梁液壓爬模專(zhuān)項(xiàng)施工方案
- 鐵路接觸網(wǎng)拆除施工方案
- 北海中學(xué)期末數(shù)學(xué)試卷
- 北京市豐臺(tái)區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末語(yǔ)文試題(含答案)
- 二零二五年度能源行業(yè)員工勞動(dòng)合同標(biāo)準(zhǔn)范本3篇
- 計(jì)劃供貨時(shí)間方案
- 2024年石柱土家族自治縣中醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 西藏事業(yè)單位c類(lèi)歷年真題
- 2024人教新目標(biāo)(Go for it)八年級(jí)英語(yǔ)下冊(cè)【第1-10單元】全冊(cè) 知識(shí)點(diǎn)總結(jié)
- 2025中國(guó)移動(dòng)安徽分公司春季社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 七年級(jí)英語(yǔ)下學(xué)期開(kāi)學(xué)考試(深圳專(zhuān)用)-2022-2023學(xué)年七年級(jí)英語(yǔ)下冊(cè)單元重難點(diǎn)易錯(cuò)題精練(牛津深圳版)
- 部編版語(yǔ)文小學(xué)二年級(jí)下冊(cè)第一單元集體備課(教材解讀)
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)(2024版)宣傳畫(huà)冊(cè)
- 杭州市房地產(chǎn)經(jīng)紀(jì)服務(wù)合同
評(píng)論
0/150
提交評(píng)論