typeof
和 is
是 C# 中两种不同的类型检查方法,它们的主要区别在于用途和用法。
用途:
typeof
用于获取一个类型的 Type
对象。它主要用于在运行时获取变量的类型信息。is
用于检查一个对象是否是指定类型的实例,或者是否是某个接口的实例。它主要用于在编译时进行类型检查。用法:
typeof
的语法是 typeof(类型名)
,例如:Type type = typeof(int);
。这里,typeof
获取了 int
类型的 Type
对象,并将其赋值给变量 type
。is
的语法是 object is 类型名
,例如:if (obj is int)
。这里,is
检查变量 obj
是否是 int
类型的实例。如果是,则条件为真,可以进行后续操作。需要注意的是,typeof
和 is
不能混合使用。在使用 is
时,必须先进行类型检查,然后再获取类型的 Type
对象。例如:
object obj = 42;
if (obj is int)
{
int intValue = (int)obj;
Type type = typeof(int);
}
总之,typeof
和 is
在 C# 中分别用于获取类型信息和进行编译时类型检查。它们的主要区别在于用途和用法。