(1)is:
①检查类型的兼容性,并返回结果,True或者false;
②不会跑出任何的异常;
③如果对象为null,则返回false;
Code
class ISSample
{
static void Main(string[] args)
{
object o = new object();
//is判断o是否ISSample类型,如果是结果则为True;如果不是或为空结果则为False,不会抛出任何异常
if (o is ISSample)
{
ISSample a = (ISSample)o;
}
}
}
(2)as:
①检查对象的兼容性,并返回结果,如果不兼容则返回null;‘
②不会抛出任何异常
③如果结果判断为空,则强制类型转换会抛出NullReferenceException异常
④as必须和引用类型一起使用
Code
class ASSample
{
static void Main(string[] args)
{
object o = new object();
//如果类型兼容,则返回结果,如果不兼容则返回null,不会抛出异常,如果结果为null,则执行强制类型转换会抛出NullReferenceException异常
ASSample a = o as ASSample;
if (a != null)
{
//对a的操作
}
}
}
4388080f-2671-4799-8b1a-f6d6f9ade597|0|.0
ASP.NET, C#