as 运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,as 运算符就会返回值null。
如下面的代码所示,如果object引用不指向string实例,把object引用转换为string 就会返回null:
新建控制台应用程序,新建类asKeywords:
class asKeywords { public static void asTest() { object o1 = "Some String"; object o2 = 5; string s1 = o1 as string; //s1 = "Some String" string s2 = o2 as string; //s1 = null Console.WriteLine("s1:{0},s2:{1}",s1,s2); } }
在Main函数中输入:
//as关键字 Console.WriteLine("as关键字的使用:"); asKeywords.asTest();
运行结果如下:
as 运算符允许在一步中进行安全的类型转换,不需要先使用is运算符测试类型,再执行转换。
as 它检查引用对象是否兼容,如果不兼容则返回null,因此需要做null的判断。
as 运算符只执行引用转换和装箱转换。as运算符无法执行其他转换