今天来聊聊C#关键字as,这是我最喜欢的C#语法之一了。
01
as简介
as运算符类似于强制类型转换功能,但是它的好处就是,如果转换失败不会引发异常,而是返回null。
02
使用方法
示例代码:
object[] array = new object[] { 1, "two", 3.3 };// i的值为1int? i = array[0] as int?;// s的值为"two"string s = array[1] as string;// j的值为null,因为3.3不能转换为int,但不会引发异常int? j = array[2] as int?;
as写法与传统写法对比字符串转换为整数,代码更加简洁、易懂:
object[] array = new object[] {3};//as写法,代码简单易懂int? num1 = array[0] as int?;if (num1 != null){Console.WriteLine(num1); //输出 3}//传统写法,代码冗长int? num2 = null;try{num2 = (int?)array[0];}catch{num2 = null;}if (num2 != null){Console.WriteLine(num2); //输出 3}
03
as使用注意事项
as运算符支持引用类型和可为null的值类型字符串转换为整数,但是对于不同值类型的转换,应该使用强制类型转换或者转型方法。
比如以下代码将字符串转为int、转换为int:
// 编译错误:不能将字符串转换为整数string s = "11";int? i = s as int?;//以下转换没有意义,d2永远为nulldouble d1 = 1.1;int? d2 = d1 as int?;//正确方法int j = int.Parse(s);int k = Convert.ToInt32(s);int d3 = (int)d1;
觉得好看 点个在看
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。