- C#實(shí)踐教程(第2版)
- 李乃文
- 1428字
- 2021-03-19 18:15:36
2.7 運(yùn)算符與表達(dá)式
C#中的運(yùn)算符是對(duì)變量、常量或其他數(shù)據(jù)進(jìn)行計(jì)算的符號(hào),根據(jù)運(yùn)算符的操作個(gè)數(shù)可以將它分為3類:一元運(yùn)算符、二元運(yùn)算符、三元運(yùn)算符。
2.7.1 運(yùn)算符分類
根據(jù)運(yùn)算符所執(zhí)行的操作類型主要將它分為以下幾種:
□ 算術(shù)運(yùn)算符;
□ 比較運(yùn)算符;
□ 賦值運(yùn)算符;
□ 邏輯運(yùn)算符;
□ 條件運(yùn)算符;
□ 遞增、遞減運(yùn)算符;
□ new運(yùn)算符;
□ as運(yùn)算符。
1. 算術(shù)運(yùn)算符與算術(shù)表達(dá)式
算術(shù)運(yùn)算符就是進(jìn)行算術(shù)運(yùn)算的操作符,如“+”、“-”和“/”等。使用算術(shù)操作符將數(shù)值連接在一起,符合C#語(yǔ)法的表達(dá)式可以稱為算術(shù)表達(dá)式。常見的算術(shù)運(yùn)算符以及說明如表2-9所示。
表2-9 常見的算術(shù)運(yùn)算符

2. 比較運(yùn)算符與比較表達(dá)式
比較運(yùn)算符通過比較兩個(gè)對(duì)象的大小,返回一個(gè)真/假的布爾值,比較運(yùn)算符又叫作關(guān)系運(yùn)算符。使用比較運(yùn)算符將數(shù)值連接在一起,符合C#語(yǔ)法的式子稱為比較表達(dá)式。常見的比較運(yùn)算符及說明如表2-10所示。
表2-10 常見的比較運(yùn)算符

3. 邏輯運(yùn)算符與邏輯表達(dá)式
&&、&、^、!、||以及|都被稱為邏輯運(yùn)算符或邏輯操作符,使用邏輯運(yùn)算符把運(yùn)算對(duì)象連接起來并且符合C#語(yǔ)法的式子稱為邏輯表達(dá)式。常見的邏輯運(yùn)算符及說明如表2-11所示。
表2-11 常見的比較運(yùn)算符

邏輯運(yùn)算結(jié)果是一個(gè)用真/假值來表示的布爾類型,當(dāng)操作數(shù)不同時(shí),邏輯運(yùn)算符的運(yùn)算結(jié)果也可以不同,如表2-12演示了操作運(yùn)算的真假值結(jié)果。
表2-12 常見的邏輯運(yùn)算符真值表

4. 賦值運(yùn)算符與賦值表達(dá)式
賦值運(yùn)算符用于變量、屬性、事件或索引器元素賦新值,它可以把右邊操作數(shù)的值賦予左邊。C#中常見的賦值操作符包括=、+=、-=、/=、%=、*=、^=、&=、|=、<<=和>>=等,它們的具體說明如表2-13所示。
表2-13 常見的賦值運(yùn)算符

表2-13已經(jīng)列出了常見的賦值運(yùn)算符,下面將對(duì)左移賦值、右移賦值和位與賦值進(jìn)行介紹。
□ <<=(左移賦值運(yùn)算符) 左移是將<<左邊的數(shù)的各二進(jìn)制位左移若干位,<<右邊的數(shù)指定移動(dòng)位數(shù),高位丟棄,低位補(bǔ)0,移幾位就相當(dāng)于乘以2的幾次方。
□ >>=(右移賦值運(yùn)算符) 右移賦值運(yùn)算符是用來將一個(gè)數(shù)的各二進(jìn)制位右移若干位,移動(dòng)的位數(shù)由右操作數(shù)指定(右操作數(shù)必須是非負(fù)值),移到右端的低位被舍棄,對(duì)于無符號(hào)數(shù),高位補(bǔ)0。對(duì)于有符號(hào)數(shù),某些機(jī)器將對(duì)左邊空出的部分用符號(hào)位填補(bǔ)(即算術(shù)移位),而另一些機(jī)器則對(duì)左邊空出的部分用0填補(bǔ)(即邏輯移位)。
□ &=(位與賦值運(yùn)算符) 位與賦值運(yùn)算符是指參加運(yùn)算的兩個(gè)數(shù)據(jù),按二進(jìn)制位進(jìn)行“與”運(yùn)算。如果兩個(gè)相應(yīng)的二進(jìn)制位都為1,則該位的結(jié)果值為1;否則為0。這里的1可以理解為邏輯中的true,而0可以理解為邏輯中的false。
5. 條件運(yùn)算符與條件表達(dá)式
條件運(yùn)算符是指?:運(yùn)算符,它也通常被稱為三元運(yùn)算符或三目運(yùn)算符,使用條件運(yùn)算符將運(yùn)算對(duì)象連接起來并且符合C#語(yǔ)法的式子稱為條件表達(dá)式。如下代碼所示為條件運(yùn)算符的一般語(yǔ)法:
b = (a>b) ? a : b;
上述語(yǔ)法中?和:都是關(guān)鍵符號(hào),?前面通常是指一個(gè)比較表達(dá)式(即關(guān)系表達(dá)式),后面緊跟著兩個(gè)變量a和b。?用來判斷前面的表達(dá)式,如果表達(dá)式的結(jié)果為true則返回值為a,如果前面表達(dá)式的結(jié)果為false則返回值為b。
例如聲明一個(gè)變量docname表示醫(yī)生的名稱,接著通過GetType()方法獲取該變量的類型,并且通過IsValueType判斷是否為值類型,如果是則返回“值類型”,否則返回“引用類型”。然后將返回的結(jié)果保存到變量country中,最后將結(jié)果在控制臺(tái)輸出。其具體代碼如下所示:
string docname = "angel"; string country = docname.GetType().IsValueType ? "值類型" : "引用類型"; Console.WriteLine(country);
6. 其他特殊運(yùn)算符
C#中包含多種運(yùn)算符,除了上面介紹的運(yùn)算符外,還包括其他的一些特殊運(yùn)算符,表2-14對(duì)這些運(yùn)算符進(jìn)行了介紹。
表2-14 其他特殊運(yùn)算符

2.7.2 運(yùn)算符的優(yōu)先級(jí)
當(dāng)用戶在表達(dá)式中包含多個(gè)運(yùn)算符操作時(shí),需要根據(jù)運(yùn)算的優(yōu)先級(jí)別進(jìn)行計(jì)算。如表2-15中列出了C#運(yùn)算符的優(yōu)先級(jí)別與結(jié)合性。
表2-15 C#中運(yùn)算符的優(yōu)先級(jí)與結(jié)合性

- Visual Basic .NET程序設(shè)計(jì)(第3版)
- Java程序設(shè)計(jì)實(shí)戰(zhàn)教程
- SoapUI Cookbook
- Building Modern Web Applications Using Angular
- Microsoft Dynamics 365 Extensions Cookbook
- Ext JS 4 Web Application Development Cookbook
- Linux:Embedded Development
- Developing SSRS Reports for Dynamics AX
- Python預(yù)測(cè)分析實(shí)戰(zhàn)
- SAP Web Dynpro for ABAP開發(fā)技術(shù)詳解:基礎(chǔ)應(yīng)用
- JavaScript前端開發(fā)基礎(chǔ)教程
- JavaWeb從入門到精通(視頻實(shí)戰(zhàn)版)
- Koa與Node.js開發(fā)實(shí)戰(zhàn)
- Python網(wǎng)絡(luò)運(yùn)維自動(dòng)化
- Learning Predictive Analytics with R