C# checked 检查整型数据运算溢出 as,is运算符 可空类型空结合
2010-11-16 22:31
351 查看
1.checked和unchecked
static void Main()
{
int x = 2147483647; // Max int
int y = 2;
int z;
checked
{
z = x * y;
}
Console.WriteLine("Unchecked output value: {0}", z);
Console.Read();
}
上面的代码会抛出一个OverflowException异常。
如果不写checked 则会输出溢出之后的错误答案,而不是抛出异常。
用unchecked 跟不写是一样的结果。
2.is运行符
int i = 10;
if (i is object) //True
{
Console.WriteLine("i is an object");
}
3.as运算符
object o1 = "Some String";
object o2 = 5;
string s1 = o1 as string; //s1 = "Some String"
string s2 = o2 as string; //s1 = null
4.可空类型
int? a = null;
int? c = null;
int? b = 2;
int? b = a + 4; // b = null
int? c = a * 5; // c = null
Console.WriteLine(a==c); //True;
Console.WriteLine(a>b); //False
Console.WriteLine(a<b); //False
Console.WriteLine(a==b); //False
//同样的double等值类型也可以这样
5.空接合运算符
int? a = null;
int b;
b = a ?? 10; // b has the value 10
a = 3;
b = a ?? 10; // b has the value 3
//运算符?? 前面的一个必须是可空类型的
//如果第一个不是null的话那么表达式的值就是第一个数
//否则表达式的值就是第二个值
static void Main()
{
int x = 2147483647; // Max int
int y = 2;
int z;
checked
{
z = x * y;
}
Console.WriteLine("Unchecked output value: {0}", z);
Console.Read();
}
上面的代码会抛出一个OverflowException异常。
如果不写checked 则会输出溢出之后的错误答案,而不是抛出异常。
用unchecked 跟不写是一样的结果。
2.is运行符
int i = 10;
if (i is object) //True
{
Console.WriteLine("i is an object");
}
3.as运算符
object o1 = "Some String";
object o2 = 5;
string s1 = o1 as string; //s1 = "Some String"
string s2 = o2 as string; //s1 = null
4.可空类型
int? a = null;
int? c = null;
int? b = 2;
int? b = a + 4; // b = null
int? c = a * 5; // c = null
Console.WriteLine(a==c); //True;
Console.WriteLine(a>b); //False
Console.WriteLine(a<b); //False
Console.WriteLine(a==b); //False
//同样的double等值类型也可以这样
5.空接合运算符
int? a = null;
int b;
b = a ?? 10; // b has the value 10
a = 3;
b = a ?? 10; // b has the value 3
//运算符?? 前面的一个必须是可空类型的
//如果第一个不是null的话那么表达式的值就是第一个数
//否则表达式的值就是第二个值
相关文章推荐
- 数据类型检查(is、as、typeof、in、instanceof)
- as3数据类型检查写法(is/as/typeof/in/instanceof)用法介绍
- 数据类型检查(is、as、typeof、in、instanceof)
- 数据类型检查(is、as、typeof、in、instanceof)
- C#语言学习--基础部分(十二) --堆,栈,装箱,拆箱,安全数据类型转换:as, is
- 功能函数,绝对值abs,数据类型转换coerce,把除法和取余结合divmod,指数运算pow,四舍五入round
- [C#] as 和 is 运算符以及安全的类型强制转换
- shell编程学习笔记3--声明数据类型,运算方法,运算符
- 使用反射查询类的方法和字段以及使用IS运算符号类转换和AS运算符
- is 与 as 类型检查
- C#中数据类型的安全转换(is,as)
- 用is和as判断数据类型
- 用is和as检查和转换兼容类型
- C#中数据类型的安全转换(is,as)
- C#Nullable类型,C#溢出检查,typeof运算符和运算符的重载
- C语言中的整型提升与混合类型数据的运算
- JavaScript---基本语法学习(一)JavaScript概述、Java和JavaScript的区别、和HTML结合方式、数据类型、运算符和表达式
- C语言中的整型提升与混合类型数据的运算
- 数据运算+-*/,比较运算符==!=,赋值运算,逻辑运算and,or,not,成员运算in,not in,身份运算is is not,位运算&|,运算符的优先级
- C#Nullable类型,C#溢出检查,typeof运算符和运算符的重载