您的位置:首页 > 编程语言 > C#

学习C#中的运算符

2008-02-27 21:55 127 查看
在数学运算符中,有一个一元运算符“+”和“-”,例子说明是A=+B,说明是将B的值赋于A,A=-B说明是将B乘以-1的值赋于A,其它语言一般都会省略前面的+号,难道在C#中不能省略?写下代码测试结果:
static void Main()
{
int A,B,C;
B=1;
A=B;
C=+B;
Console.WriteLine("The A is:{0},The C is:{1}",A,C);
}
结果是:The A is:1,The C is:1
可以看到要不要+号都是一样的了。

如果用+号连接的不是数值型的会怎么样呢?教程上指出只能对字符和字符串用+号,而其它的变量类型不能使用。
下面的代码是用来测试字符型变量的+号使用情况,预想C值是字符型的'3',D什是数值型的3。
using System;
class Test
{
static void Main()
{
char A,B,C;
int D;
A='1';
B='2';
D=A+B;
C=A+B;
Console.WriteLine("The A is:{0},The B is:{1},The C is:{2},The D is:{3}",A,B,C,D);
}
}
编译是在C=A+B这行报错,说不能隐式转换INT型到CHAR型,可见两个字符型相加的结果是整数型。将有关C的行去掉,再运行,结果是The A is:1,The B is:2,The D is:99。D的值怎么会是99?这是个疑问!
找到了D值为99的原因了,字符'1'保存的值是49,'2'是50,两个相加当然是99了,原来保存的是整数,输出为字符的话就按ASCII码来显示了!

PS:字符用的是单引号,而字符串用的是双引号,差点搞错了!

关于++的运算,写了这个例子:
的运算,写了这个例子:
static void Main()
{
int A,B;
A=2;
B=2*A++;
Console.WriteLine("The A,B is:{0},{1}",A,B);
}
结果是:The A,B is:3,4。 这个是意料中的,因为B是在A没有自加1前完成乘2运算的。再改动下:
static void Main()
{
int A;
A=2;
A=2*A++;
Console.WriteLine("The A is:{0}",A);
}
结果是:The A is:4。
这个结果我觉得有些奇怪了,按理A在完成乘2运算后,再完成加1的运算呀,结果应该是5,如果说会先将运算前的A的值保存起来,也是2+1=3呀,这个4只是2*2的结果。又是个疑问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: