GetType与C#关键字typeof ,is,as

来源:互联网 发布:sql server restoring 编辑:程序博客网 时间:2024/05/12 15:38

GetType是Object类型的公有方法,返回System.Type类型

typeof是C#的关键字,也返回System.Tpye类型

区别是GetType是获取实例的类型,typeof是获取类型的System.Type对象

int a=0;

Debug.Log(a.GetType());

结果一样

Debug.Log(typeof(int));

可以用if(a.GetTpye==typeof(int))来判断a的类型是否为int类型。


is关键字

if (obj is MyObject)
{
}

判断对象obj是否为 MyObject 类型的一个实例,或者对象是否为从 MyObject 派生的一个类型


as关键字:在可兼容的引用类型之间进行类型转换

as 运算符类似于强制转换操作。 但是,因此,如果转换是不可能的,as 返回 null 而不引发异常。

expression as type

expression is type ? (type)expression : (type)null

等效



Unity中有个方法GetComponent就需要System.Type类型的参数
Component GetComponent(Type type);

Rigidbody rb = (Rigidbody) go.GetComponent(typeof(Rigidbody));
或者使用as进行转换
Rigidbody rb =  go.GetComponent(typeof(Rigidbody))as Rigidbody;






0 0
原创粉丝点击