迈克老猫
来自:老猫的理想
本教程参考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;
这么短也要拆开发表,郁闷...
……