運算符
運算符是一種告訴編譯器執行特定的數學或邏輯操作的符號。C#有豐富的內置運算符數學運算符
主要進行數據運算分類
運算符描述實例,假設A的變量爲10,B的變量爲20.當然還會遇到一些特殊情況,例如:
1."+"運算符的作用
符號兩邊的數據類型都是數字類型數據則起到數學相加作用
int a=10;
int b=20;
textBox1.text=(a+b).Tostring();
符號兩邊數據其中一個是字符串類型則起到字符串連接作用
string str="您好";
bool b=flase;
textBox2.text=str+b;
2."/"運算符的作用
如果符號兩邊的數據類型都是整數類型,則這個符號是取整符號
int a=3;
int b=2;
textBox1.text=(a/b).Tostring();
如果符號兩邊的數據類型至少有一個是浮點型,則這個符號是取餘符號
int c=3;
double d=2;
textBox2.text=(c/d).Tostring();
3.自加自減
假設A的值爲10;
int A = 10;
int B;
B = A++;
textBox1.Text = "B=" + B + ";A=" + A;
B = ++A;
textBox2.Text = "B=" + B + ";A=" + A;
位運算符
位運算符作用於位,並逐位執行操作。&、 | 和 ^ 的真值表如下所示:
下表列出了C#支持的位運算符。假設變量A的值爲60,變量B的值爲13,則
邏輯運算符
下表顯示了C#支持的所有邏輯運算符。假設變量A爲布爾值true,變量B爲布爾值false,則:label1.Text = ((textBox1.Text == "A") && (textBox2.Text == "A")).ToString();
label2.Text = ((textBox1.Text == "A") || (textBox2.Text == "A")).ToString();
label3.Text = (!((textBox1.Text == "A") && (textBox2.Text == "A"))).ToString();
但是也要注意以下問題
&與&&
1.&和&&都表示邏輯與(and)的運算符,只有當運算符兩邊的結果都是true整個運算才爲true 2.&&具有短路功能,如果左邊表達式結果爲false則右邊表達式不再進行運算判斷。而&則不然,不論左邊表達式結果是true還是false,右邊表達式仍然會進行運算判斷例如:
int a = 60;
int b = 13;
label1.Text ="&"+ ((a++>70) & (b++<20)).ToString()+"【a="+a +"】【b="+b +"】";
a = 60;
b = 13;
label2.Text = "&&"+((a++>70) && (b++<20)).ToString()+"【a="+a+"】【b="+b +"】";
|與||
1. | 和 || 都表示邏輯或(or)的運算符,運算符兩邊的表達式只要有一個是true整個表達式都是true2. || 具有短路功能,如果左邊的表達式結果爲true則右邊表達式不再進行運算判斷。而 | 則不然,不論左邊表達式結果是true還是false,右邊表達式都會進行運算判斷
a = 60;
b = 13;
label3.Text="|"+((a++>70)|(b++<20)).ToString()+ "【a="+a+"】【b="+b+"】";
a = 60;
b = 13;
label4.Text="||"+((b++<20)||(a++>70)).ToString()+"【a="+a+"】【b="+b+"】";
關係運算符
兩個數據之間的關係運算,假設變量 A 的值爲10,變量 B 的值爲20,則:注意:
1.和屬性賦值一樣,需要處理關係的這兩個數據之間必須保持類型最終一致
2關係運算符運算的最終結果值只有兩個:true、false
賦值運算符
賦值運算符:等號左邊進行數據賦值時,等號右邊考慮是否進行賦值運算常見的賦值運算符
int a = 10,
b = 12, c;
label1.Text = "c=a+b:c=" + (a + b);
label2.Text = "b+=a:b=" + (b += a);
雜項運算符
1. sizeof()返回數據類型(值類型)的大小。sizeof(int),將返回42. typeof()返回class的類型。typeof(StreamReader);
3. &返回變量的地址。&a;將得到變量的實際地址。
4. “※”變量的指針。*a;將指向一個變量。
5. ?x:y-條件表達式,如果條件爲真?則爲x:否則爲y
6. is判斷對象是否爲某一類型。
7. as-if(ford is car);// 檢查Ford是否是Car類的一個對象。as強制轉換,即使轉換失敗也不會拋出異常
string str = "";
label1.Text ="bool類型的大小是:"+ sizeof(bool).ToString();
label2.Text="string類型屬於"+typeof(Form)+"類";
label3.Text = "三元表達式進行對a賦值(10,8)比較大的數:a=" + (10 > 8 ? 10 : 8);
三元運算符
三元運算符的格式爲:Exp1 ? Exp2 : Exp3;條件運算符 ? :.可以用來替代 if...else語句.它的一般形式如下:
其中,Exp1、Exp2 和 Exp3 是表達式。請注意,冒號的使用和位置。? 表達式的值是由 Exp1 決定的。如果 Exp1 爲真,則計算 Exp2 的值,結果即爲整個 ? 表達式的值。如果 Exp1 爲假,則計算 Exp3 的值,結果即爲整個 ? 表達式的值
int a = 10;
int b = 15;
(a > b ? a < b : a == b).ToString();
listBox1.Items.Add((a > b ? a < b : a == b).ToString());
當然運算符也區分優先級
運算符應用還是很廣的我們應該多加練習,才能牢牢銘記!!!