天天看点

关于数据类型转换的补充知识

is(检查对象是否与给定类型兼容 )

1

关于数据类型转换的补充知识

 object o = new object();

2

关于数据类型转换的补充知识

 o = "hello";

3

关于数据类型转换的补充知识

 System.Console.WriteLine("/"hello/"-string->{0}", o is string);

4

关于数据类型转换的补充知识

 o = 123;

5

关于数据类型转换的补充知识

 System.Console.WriteLine("123-string->{0}", o is string);

6

关于数据类型转换的补充知识

 System.Console.WriteLine("123-String->{0}", o is String);

7

关于数据类型转换的补充知识

 System.Console.WriteLine("123-int->{0}", o is int);

8

关于数据类型转换的补充知识

 System.Console.WriteLine("123-Int32->{0}", o is Int32);

9

关于数据类型转换的补充知识

 System.Console.WriteLine("123-Int16->{0}", o is Int16);

10

关于数据类型转换的补充知识

 DateTime d = DateTime.Now;

11

关于数据类型转换的补充知识

 System.Console.WriteLine("Now-DateTime->{0}", d is DateTime);

12

关于数据类型转换的补充知识

 string dd = "2006-01-01";

13

关于数据类型转换的补充知识

 System.Console.WriteLine("/"2006-01-01/"-DateTime->{0}", dd is DateTime);

as(用于在兼容的引用类型之间执行转换 )

关于数据类型转换的补充知识

 //as只用于引用类型

关于数据类型转换的补充知识
关于数据类型转换的补充知识
关于数据类型转换的补充知识

 System.Console.WriteLine(o as string);

关于数据类型转换的补充知识
关于数据类型转换的补充知识
关于数据类型转换的补充知识

 System.Console.WriteLine(o as String);

关于数据类型转换的补充知识

 //System.Console.WriteLine(o as int); as对值类型无效

关于数据类型转换的补充知识

 //System.Console.WriteLine(o as Int32); as对值类型无效

关于数据类型转换的补充知识

 //System.Console.WriteLine(o as Int16); as对值类型无效

关于数据类型转换的补充知识

 //DateTime d = DateTime.Now; as对值类型无效

关于数据类型转换的补充知识

 //System.Console.WriteLine(d as DateTime); as对值类型无效

关于数据类型转换的补充知识

 //string dd = "2006-01-01"; as对值类型无效

14

关于数据类型转换的补充知识

 //System.Console.WriteLine(dd as DateTime); as对值类型无效

checked/unchecked(对整型算术运算和显式转换启用溢出检查 ,否则算术运算回绕)

还记得我们前面对byte的一个转换吧,再看看下面,你就有更深的理解

关于数据类型转换的补充知识

 byte b = 100;

关于数据类型转换的补充知识

 System.Console.WriteLine((byte)(b + 200));//不抛出异常

关于数据类型转换的补充知识

 System.Console.WriteLine(checked((byte)(b + 200)));//抛出异常

关于数据类型转换的补充知识

 System.Console.WriteLine(unchecked((byte)(b + 200)));//不抛出异常

本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806910

继续阅读