迈克老猫
来自:老猫的理想
本教程参考c#和asp.net程序设计教程撰写,有什么不足之处请大家指出,或在老猫的理想blog留言。
这次简述一下操作符
1.算术操作符
算术操作符包括加(+)、减(-)、乘(*)、除(/)和求余(%)。加减操作符除了用于整数和实数的加减运算外,还适用于枚举类型、字符串类型和委托类型,这是通过操作符重栽实现的。
string mf1="mike";
string mf2="cat";
string mf3=mf1+mf2;//mf3="mikecat"
using system;
enum weekday
{
sunday,monday,tuesday,wednesday,thursday,friday,saturday
};
class mikecat
{
static void main()
{
weekday mf1=weekday.sunday;
weekday mf2=mf1+3;
console.writeline("mf1={0},mf2={1}",mf1,mf2);
}
}//结果:mf1=sunday,mf2=wednesday
2.赋值操作符
赋值就是给一个变量赋一个新值。c#中分简单赋值和复合赋值两类。
简单赋值:"=" a=b=c 等价于 a=(b=c)
复合赋值:"+=" "-=" "*=" "/=" "%=" "|=" "^=" "<<=" ">>=" a+=10 等价于a=a+10
3.比较操作符
比较操作符用来比较两个表达式的大小,如大于(>) < == != <= >= 。
4.逻辑操作符
逻辑与(&&) 逻辑或(||) 和 逻辑非(!)
5.位操作符是对数据按二进制位进行运算的操作符。c#位操作符包括按位与(&) | ~ << >>
using system;
class mikecat
{
public static void main()
{
int a=6&3;
console.writeline("a={0}",a);
//6的二进制是00000110,3的二进制是00000011,按位与后等于00000010,即2
int b=6|3;
console.writeline("b={0}",b);
//6的二进制是00000110,3的二进制是00000011,按位或后等于00000111,即7
int c=~6;
console.writeline("c={0}",c);
//6的二进制是00000110,按位取反后是11111001即-7
int d=6^3;
console.writeline("d={0}",d);
//6的二进制是00000110,3的二进制是00000011,按位异或后等于00000101,即5
int e=6<<3;
console.writeline("e={0}",e);
//6的二进制是00000110,左移三位后等于00101000,即48
int f=6>>2;
console.writeline("f={0}",f);
//6的二进制是00000110,右移二位等于00000001,即1
}
}
6.is操作符
is操作符用于检查运行时对象类型是否和给定的类型兼容。表达式"e is t"中的e是一个表达式,t是一个类型。返回值是一个布尔值。
如果满足下列两个条件,则 is 表达式计算为 true 值:
expression 非 null。
expression 可以被转换为 type。也就是说,将完成形式 (type)(expression) 的转换表达式而不引发异常。
示例
// cs_keyword_is.cs
// the is operator
using system;
class class1
{
}
class class2
{
}
public class istest
{
public static void test (object o)
{
class1 a;
class2 b;
if (o is class1)
{
console.writeline ("o is class1");
a = (class1)o;
// do something with a
}
else if (o is class2)
{
console.writeline ("o is class2");
b = (class2)o;
// do something with b
}
else
{
console.writeline ("o is neither class1 nor class2.");
}
}
public static void main()
{
class1 c1 = new class1();
class2 c2 = new class2();
test (c1);
test (c2);
test ("a string");
}
}
输出
o is class1
o is class2
o is neither class1 nor class2.
7.三元操作符
三元操作符(?:)也称条件操作符。对条件表达式"b?x:y",总是先计算条件b,然后进行判断。如果b的值为true,则计算x的值,否则计算y的值。条件运算符为右联运算符,因此该形式的表达式 a ? b : c ? d : e 按如下规则计算:a ? b : (c ? d : e)
8. . 运算符
点运算符用于成员访问。name1 . name2
class simple
{
public int a;
public void b()
{
}
}
simple s = new simple();
变量 s 有两个成员 a 和 b;若要访问这两个成员,请使用点运算符
s.a = 6; // assign to field a;
s.b(); // invoke member function b;
这么短也要拆开发表,郁闷...