运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。
例如:2+3,其操作数是2和3,而运算符则是‘+’。
在vb2005中运算符大致可以分为5种类型:算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。
算术运算符:+、-、*、/、% 含义依次为加、减、乘、除、取余。
int a = 20, b = 4, c;c = a + b;
- Console.WriteLine("c={0}",c);
- c = a - b;
- Console.WriteLine("c={0}", c);
- c = a * b;
- Console.WriteLine("c={0}", c);
- c = a / b;
- Console.WriteLine("c={0}", c);
- c = a % b;
- Console.WriteLine("c={0}", c);
自增、自减运算符
int myAge=21;- Console.WriteLine("今年我{0}岁。",--myAge);
- Console.WriteLine("今年我{0}岁。",++myAge);
- Console.WriteLine("明年我{0}岁。",++myAge);
优先级
初级操作符 (x) x.y f(x) a[x] x++ x-- new type of sizeof checked unchecked
一元操作符 + - ! ~ ++x --x (T)x
乘、除操作符 * / %
加减操作符 + -
移位操作符 << >>
关系操作符 < > <= >= is as
等式操作符 == !=
逻辑与操作符 &
逻辑异或操作符 ^
逻辑或操作符 |
条件与操作符 &&
条件或操作符 ||
条件操作符 ?:
赋值操作符 = *= /= %= += -= <<= >>= &= ^= |=
当一个操作数出现在两个有相同优先级的操作符之间时,操作符按照出现的顺序由左到右执行。 除了赋值的操作符,所有的二进制的操作符都是左结合(left-associative)的,也就是说,操作按照从左向右的顺序执行。例如:x+y+z按(x+y)+z进行求值。赋值操作符和条件操作符(?:)按照右接合(right-associative)的原则,即操作按照从右向左的顺序执行。如:x=y=z按照x=(y=z)进行求值。
在写表达式的时候,如果无法确定操作符的有效顺序,则尽量采用括号来保证运算的顺序,这样也使得程序一目了然,而且自己在编程时能够思路清晰。
类型转换
隐式转换:
short s =25489;
int n;
n=s;
Console.WriteLine(“n=”+n);
结果n也是25489
显式转换:
int n=25489;
short s=(short(n));
Console.WriteLine(“s=”,+s)
简单的说显式就是需要你手动写代码转换的隐式就是两个变量之间可以直接相互赋值的
字符串和数值间的转换
C#还提供了一些函数,能把字符串转换为各种数值类型,比如ToDouble()函数能将字符串转换为double型,ToInt32()函数能将字符串转换为int型,等等。C#把这些函数归为一类,成为“Convert类”。
Convert类中的函数:
Convert.ToByte()
Convert.ToInt16()
Convert.ToInt32()
Convert.ToInt64()
Convert.ToSByte()
Convert.ToUInt16()
Convert.ToUInt32()
Convert.ToUInt64()
Convert.ToSingle()
Convert.ToDouble()
Convert.ToDicmal()
Convert.ToChar()
Convert.ToString()
Convert.ToBoolean()
1: {2: double dNumber = 23.15;
3: 4: try
5: {
6: // Returns 23
7: int iNumber = System.Convert.ToInt32(dNumber);
8: }9: catch (System.OverflowException)
10: {11: System.Console.WriteLine(
12: "Overflow in double to int conversion.");
13: }14: // Returns True
15: bool bNumber = System.Convert.ToBoolean(dNumber);
16: 17: // Returns "23.15"
18: string strNumber = System.Convert.ToString(dNumber);
19: 20: try
21: {
22: // Returns '2'
23: char chrNumber = System.Convert.ToChar(strNumber[0]);
24: }25: catch (System.ArgumentNullException)
26: {27: System.Console.WriteLine("String is null");
28: }29: catch (System.FormatException)
30: {31: System.Console.WriteLine("String length is greater than 1.");
32: }33: 34: // System.Console.ReadLine() returns a string and it
35: // must be converted.
36: int newInteger = 0;
37: try
38: {
39: System.Console.WriteLine("Enter an integer:");
40: newInteger = System.Convert.ToInt32(
41: System.Console.ReadLine());
42: }43: catch (System.ArgumentNullException)
44: {45: System.Console.WriteLine("String is null.");
46: }47: catch (System.FormatException)
48: {49: System.Console.WriteLine("String does not consist of an " +
50: "optional sign followed by a series of digits.");
51: }52: catch (System.OverflowException)
53: {54: System.Console.WriteLine(
55: "Overflow in string to int conversion.");
56: }57: 58: System.Console.WriteLine("Your integer as a double is {0}",
59: System.Convert.ToDouble(newInteger));
60: }61: }
浙公网安备 33010602011771号