您现在的位置是:主页 > news > 长春企业网站建设公司/免费推广网站排名
长春企业网站建设公司/免费推广网站排名
admin2025/5/1 2:34:11【news】
简介长春企业网站建设公司,免费推广网站排名,什么是网站建设流程,深圳 网站开发C# 运算符(operators)和表达式(expression)与C/C几乎完全一样,仅有的区别如下:基元(primary)运算符:C# 新增加了如下两个基元表达式运算符:l checked…
长春企业网站建设公司,免费推广网站排名,什么是网站建设流程,深圳 网站开发C# 运算符(operators)和表达式(expression)与C/C几乎完全一样,仅有的区别如下:基元(primary)运算符:C# 新增加了如下两个基元表达式运算符:l checked…
class Test {
static readonly int x = 1000000;
static readonly int y = 1000000;
static int F() {
return checked(x * y); // Throws OverflowException
}
static int G() {
return unchecked(x * y); // Returns -727379968
}
static int H() {
return x * y; // Depends on default
}
}
try
{
int i, i2 = int.MaxValue, i2 = 200;
i = checked(i1 * i2);
}
catch(Exception e){
//MessageBox.Show(e.ToString());
Console.WriteLine(e.ToString());
}
double? x = null;
//……
double y = x ?? 0;
C# 运算符(operators)和表达式(expression)与C/C++几乎完全一样,仅有的区别如下:
基元(primary)运算符:C# 新增加了如下两个基元表达式运算符:
l checked(已检验)——用于设置溢出检验上下文(overflow-checking context),控制对整型算术表达式中的操作和转换进行溢出检验,在出现溢出时会抛出异常。格式为:checked(表达式)或checked{语句块}。
l unchecked(未检验)——用于设置溢出检验上下文(overflow-checking context),控制对整型算术表达式中的操作和转换不进行溢出检验,在出现溢出时不抛出异常,结果为截断后的整数。格式为:unchecked(表达式)或unchecked{语句块}。
例如:













又例如:









一元运算符:全局命名空间限定符::——虽然C# 不再支持全局变量和全局函数,但是仍然有全局命名空间,所以还是保留了全局命名空间限定符“::”(类似于C++的全局运算符::)。注意,因为在C# 中,双冒号符“::”已经不再作为命名空间之间和CLR对象与成员之间的分隔符,而是专用的全局命名空间限定符。
二元运算符:
l 模运算符%——在C# 中,%既可以用来求整数的余。也可以用于浮点数和十进制数。例如5 % 1.5 = 0.5。
l 是运算符is——用于动态检验一个对象的运行时类型是否与指定类型兼容。格式为:
表达式 is 类型名
结果为一个布尔值,若表达式可以成功地转换成指定类型,则为true,否则为false。
l 转为运算符as——用于将一个值显式地转换为一个指定的引用类型或可空(值)类型。格式为:
标识符 as 类型名
转换为引用类型时,采用的是引用转换或装箱转换;转换为可空类型时,采用的是包装转换、拆箱转换或空类型转换。与强制转换不同,as转换不会抛出异常。如果指定的转换是不可能的,则结果为空null。
is和as运算符在模板和泛型运算中非常有用。
l 空接合运算符(null coalescing operator)??——用于在某个可空类型变量a的值为空时,提供备用的值b。格式为:
a ?? b
当a非空时结果为a,否则为b。功能相对于:a.HasValue ? a : b。例如:



C# 表达式中运算符的优先级(order of precedence)与C++的类似,参见下表:(其中,红色的运算符是C# 特有的)
C# 运算符优先级表(从高到低)
优先级 | 类型 | 运算符 |
1 | 基元 | .(成员,如x.y)、( )(函数,如f(x))、[ ](数组,如a[i])、++(后缀增,如i++)、--(后缀减,如i--)、new(创建对象,如new MyClass)、typeof(类型,如typeof(x))、checked(已检验,如checked(x*y))、unchecked(未检验,如unchecked(x*y)) |
2 | 一元 | +(正,如+x)、-(负,如-x)、!(逻辑非,如!x)、~(求补,如~x)、++(前缀加,如++i)、--(前缀减,如--i)、()(强制类型转换,如(int)x) |
3 | 乘性 | *(乘,如x*y)、/(除,如x/y)、%(模,如x%y) |
4 | 加性 | +(加,如x+y)、-(减,如x-y) |
5 | 位移 | <<(左移,如i<<4)、>>(右移,如i>>4) |
6 | 关系和 类型测试 | <(小于,如x<y)、>(大于,如x>y)、<=(小于等于,如x<=y)、>=(大于等于,如x>=y)、is(是,如x is int)、as(转为,如x as int) |
7 | 等性 | ==(相等,如x==y)、!=(不等,如x!=y) |
8 | 逻辑与 | &(位与,如x&4) |
9 | 逻辑异或 | ^(位异或,如x^y) |
10 | 逻辑或 | |(位或,如x|y) |
11 | 条件与 | &&(逻辑与,如x&&y) |
12 | 条件或 | ||(逻辑或,如x||y) |
13 | 空接合 | ??(空接合,如a??b) |
14 | 条件 | ?:(条件,如x?a:b) |
15 | 赋值 | =(等于,如x=y)、*=(乘等于,如x*=y)、/=(除等于,如x/=y)、+=(加等于,如x+=y)、-=(减等于,如x-=y)、<<=(左移等于,如x<<=y)、>>=(右移等于,如x>>=y)、&=(位与等于,如x&=y)、^=(位异或等于,如x^=y)、|=(位或等于,如x|=y) |
转载于:https://blog.51cto.com/tallbig/765864