as 关键字:
- as 关键字用于将一个对象转换为指定类型,如果转换成功,则返回该类型的实例;如果转换失败,则返回 null 。
- as 关键字只能用于引用类型之间的转换,不能用于值类型之间的转换。
- 如果被转换的对象为 null,那么无论目标类型是什么,as 关键字都会返回 null。
- 使用 as 关键字进行转换时,不会抛出异常。
is 关键字:
- is 关键字用于判断一个对象是否是指定类型的实例。
- is 关键字可以用于引用类型和值类型之间的判断。
- 如果对象是指定类型的实例,则返回 true ;否则返回 false 。
- 使用 is 关键字进行判断时,不会抛出异常。
下面是一些示例代码来说明 as 和 is 的使用:
cs
// 使用as关键字进行类型转换
object obj = "Hello";
string str = obj as string;
if (str != null)
{
Console.WriteLine("转换成功:" + str);
}
else
{
Console.WriteLine("转换失败");
}
// 使用is关键字进行类型判断
object obj = "Hello";
if (obj is string)
{
string str = (string)obj;
Console.WriteLine("是字符串:" + str);
}
else
{
Console.WriteLine("不是字符串");
}
注意,as 关键字在转换失败时会返回 null ,而 is 关键字只返回 true 或 false 。另外,使用 as 关键字进行转换时,需要注意目标类型是否兼容,否则会得到 null 值。