运算符
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。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());
当然运算符也区分优先级
运算符应用还是很广的我们应该多加练习,才能牢牢铭记!!!