is: 检查对象类型的兼容性,兼容返回true;不兼容返回false
as: 检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null
string a = "abc";
bool b = a is string;
if (b == true)
{
Debug.Log("a是string类型的");
}
else
{
Debug.Log("a不是string类型的");
}
//引用类型(存储在堆): string int[] class interface
//值类型(存储在栈): byte (u)short (u)int (u)long bool enum struct
强制转换. 通过 (目标类型)变量
来表示,一般用于高精度数据类型转换为低精度数据类型(高精度数据类型位数≤低精度才能成功转换)
int a = 123;
short b = (short)a; //高精度往低精度要强制类型转换
隐式转换. 发生在低精度数据类型自动转高精度数据类型
short a = 123;
int b = a; //低精度往高精度会触发隐式类型转换,自动转换成功