隱式轉換[自動類型轉換]: 兩種類型要相容,原類型值域要小於目標類型值域,可以簡單的理解為由小轉大。 1 public class Test 2 { 3 private void Start() 4 { 5 int a = 10; 6 float b = a;//int 類型隱式轉換為 float ...
隱式轉換[自動類型轉換]:
兩種類型要相容,原類型值域要小於目標類型值域,可以簡單的理解為由小轉大。1 public class Test 2 { 3 private void Start() 4 { 5 int a = 10; 6 float b = a;//int 類型隱式轉換為 float 類型 7 } 8 }
顯示轉換[強制類型轉換]:
兩種類型要相容,原類型值域要大於目標類型值域,可以簡單的理解為由大轉小。
【缺點】:1、數據溢出。2、精度丟失。
數值類型之間的轉換。
1 public class Test 2 { 3 private void Start() 4 { 5 float a = 1.5f; 6 int b = (int)a;//float 類型強制轉換為 int 類型 7 } 8 }
其他類型轉換成字元串類型調用ToString()方法。
1 public class Test 2 { 3 private void Start() 4 { 5 float a = 1.5f; 6 bool val = true; 7 string str = val.ToString();//bool 類型強制轉換為 string 類型 8 str = a.ToString();//float 類型強制轉換為 string 類型 9 } 10 }
字元串類型轉換為其他基本類型調用Parse()方法和TryParse()方法。
1 public class Test 2 { 3 private void Start() 4 { 5 string str = "true"; 6 bool v = bool.Parse(str);//如果轉換成功會將值賦給變數 v,如果轉換不成功會報錯。 7 int num; 8 bool val = int.TryParse(str, out num);//不管成功與否都會返回一個 bool 值。如果轉換成功,會將值賦給變數 num。 9 } 10 }
其他基本類型之間互相轉換用 Convert。(使用 Convert 需要引用 using System 程式集)
1 using UnityEngine; 2 using System; 3 4 public class Test 5 { 6 private void Start() 7 { 8 bool val = false; 9 int num = Convert.ToInt32(val); 10 int a = 0; 11 bool v = Convert.ToBoolean(a); 12 } 13 }
裝箱:值類型轉換成引用類型。
拆箱:引用類型轉換為值類型。
註意:1、兩種類型只有存在繼承關係的時候,才可能出現裝箱或者拆箱操作。
2、裝箱和拆箱的本質上是數據存儲在棧空間與堆空間之間的變更,因此頻繁的裝箱或者拆箱會降低運行效率,所以代碼中儘量少用裝箱或者拆箱操作。
常量:一個不能變化的量,常量一旦聲明,就不可以再重新賦值。
命名規則:常量名的命名一般全是大寫,單詞與單詞之間用下劃線分隔(例:SERVER_IP)。
常量的聲明:需要加上關鍵字 const ,且必須在聲明時賦值。(例:const int SERVER_IP;)