浅谈unity的c#基础数据类型和类型转换
- Unity基础数据类型分为值类型和引用类型两种
1)值类型将一个值类型变量赋值给另一个值类型变量时,将复制包含的值(替身)。
2)引用类型变量的赋值只复制对象的引用,而不复制对象的本身。
值类型:C#的所有值类型均隐式派生自System.ValueType。
主要值类型有:字节(byte)、整数(int)、长整数(long)、浮点数(float)、双精度浮点数(double)、布尔类型(bool)、字符类型(char)、枚举(enum)和结构类型(struct)。
数据类型可以用GetType().IsValueType来判断是否是值类型。
引用类型:包括(class)、接口(interface)、委托(delegate)和字符串(string)。一个引用类型的变量不储存他们所代表的实际数据,而是储存实际数据的引用(地址)。 - 类型转换分为自动转换和强制转换
自动转换:由系统自动完成,不会导致数据精度丢失,只能从低精度类型转换为高精度类型。
例如:
int a = 2;
float b = 3.4f;
//精度从高到低,可以
b = a;
//精度从低到高,报错
a =b;
强制转换
int a = 2 ;
float b = 3.4f;
//强制转换
a = System.Convert.ToInt32(b);
a = (int) (b);`int a = 2 ;
float b = 3.4f;
//强制转换
a = System.Convert.ToInt32(b);
a = (int) (b);