typeof,as,is的用法

时间:2023-01-30 11:43:09

typeof用法
用于获取类型的 System.Type 对象
typeof的表达有一下形式

System.Type type = typeof(int);

若要获取表达式的运行时类型,可以使用 .NET Framework 方法 GetType,如下所示:

int i = 0;
System.Type type = i.GetType();

typeof 运算符也能用于公开的泛型类型。具有不止一个类型参数的类型的规范中必须有适当数量的逗号。不能重载 typeof 运算符。

as和is
在C#语言中进行类型转换的操作符is和as。is和as都是强制类型转换。
is检查一个对象是否兼容于指定的类型,并返回一个Boolean值:true或者fasle。注意,is操作符永远不会抛出异常。

Object o=new Object();
Boolean b1=(o is Object); //b1为true. 
Boolean b2=(o is ClassA) ; b2为false.
如果对象引用是null,is操作符总是返回false,因为没有可检查的其类型的对象。
 is 操作符通常像下面这样使用:
if(obj is ClassA)
{
    ClassA a=(ClassA) obj;
   ... 
 }

as与is做差不多的事情,类型显式强制转换。
as操作符的工作方式与强制类型转换一样,只是它永远不会抛出一个异常——相反,如果对象不能转换,结果就是null。