官术网_书友最值得收藏!

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é)合性

主站蜘蛛池模板: 永城市| 开江县| 宁明县| 潮州市| 长垣县| 浑源县| 三门县| 华安县| 安龙县| 铜梁县| 临澧县| 太白县| 闸北区| 阜康市| 威信县| 思茅市| 文昌市| 闸北区| 娄烦县| 佛学| 高密市| 桐柏县| 静宁县| 紫阳县| 阜康市| 简阳市| 株洲县| 洞口县| 阜平县| 乐平市| 怀柔区| 英山县| 普宁市| 饶平县| 新昌县| 平顶山市| 舒城县| 岐山县| 轮台县| 祁门县| 遵义县|