C# is 与 as

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:58:27
区别?

强制转换用的。
具体的2楼的详细。
as出错为null
is会出现Exception

is操作符是判断是否为某类对象,如
if(sender is Button)....
as是转换为某类对象,和Convert的不同是不会抛出异常。如
(sender as Control).Equals(....

1: is检查对象是否与给定类型兼容。例如,可以确定对象是否与 string 类型兼容
if (obj is string)
{
}
如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则is 表达式的计算结果将是 true;
注意,is 运算符只考虑引用转换、装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。

2:as 用于在兼容的引用类型之间执行转换,类似于强制转换,所不同的是,当转换失败时,运算符将产生空,而不是引发异常
注意,as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换