01 as简介
02 使用方法
object[] array = new object[] { 1, "two", 3.3 };
// i的值为1
int? 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使用注意事项
比如以下代码将字符串转为int、double转换为int:
// 编译错误:不能将字符串转换为整数
string s = "11";
int? i = s as int?;
//以下转换没有意义,d2永远为null
double d1 = 1.1;
int? d2 = d1 as int?;
//正确方法
int j = int.Parse(s);
int k = Convert.ToInt32(s);
int d3 = (int)d1;