C#装箱和拆箱(值类型和引用类型之间的转换)
生活随笔
收集整理的這篇文章主要介紹了
C#装箱和拆箱(值类型和引用类型之间的转换)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
面向對象編程中,封箱指把非對象類型的數值或數據,包裝成對象類型反之,拆箱指把對象類型拆成非對象的數值或數據。
例子:定義一個Circle 類
1 class Circle 2 { 3 double radius; 4 public Circle(double param) 5 { 6 radius = param; 7 } 8 9 public double Area() 10 { 11 return Math.PI * radius * radius;//圓的面積 12 } 13 }?
1 static void Main(string[] args) 2 { 3 Circle c = new Circle(5); 4 Console.WriteLine(c.Area()); 5 6 int i = 10; 7 Object o = i;//裝箱操作,將整形變量i賦值給object類型 o 8 Console.WriteLine(o.ToString()); 9 int j = (int)o;//拆箱操作,將Object類型變量o,拆箱賦給整形變量j; 10 Console.WriteLine(j); 11 }?
?
安全的數據類型轉換方法:
is運算符,判斷變量是否為指定數據類型。
1 o = c; 2 if (o is int) 3 { 4 int k = (int)o; 5 } 6 else if (o is Circle) 7 { 8 Circle c2 = (Circle)o; 9 Console.WriteLine(c2.Area()); 10 }as運算符。as 運算符類似于強制轉換操作。但是,如果無法進行轉換,則 as 返回 null?
1 int? k = o as int?; //int類型無法存儲Null型; 2 if (k != null) 3 { 4 Console.WriteLine(k);//說明轉換成功,打印k的值。 5 } 6 else 7 { 8 Circle c2 = o as Circle; 9 if (c2 != null) 10 { 11 Console.WriteLine(c2.Area()); 12 Console.ReadKey(); 13 } 14 }?
轉載于:https://www.cnblogs.com/SeekHit/p/4871389.html
總結
以上是生活随笔為你收集整理的C#装箱和拆箱(值类型和引用类型之间的转换)的全部內容,希望文章能夠幫你解決所遇到的問題。