
using System;
class Test {
static void Main() {
int i = 123; // 1. 裝箱:int → object
object o = i;
i = 456;
Console.WriteLine(i + ", " + (int)o);
// 2. 裝箱:i 參與字串連接 → object
// 3. 拆箱:(int)o
// 4. 裝箱:拆箱結果參與字串連接 → object
// 總計:3 次裝箱、1 次拆箱
}
}
// 版本 A:2 次裝箱
Console.WriteLine(i + ", " + o);
// 版本 B:1 次裝箱 (i.ToString() 回傳 string,無裝箱)
Console.WriteLine(i.ToString() + ", " + o);
// 版本 C:0 次裝箱 (插值字串 C# 6+)
Console.WriteLine($"{i}, {o}");
object/介面變數。+ (呼叫 String.Concat(object, object))。params object[] 方法。ArrayList、Hashtable 加入值型別。「不注意就會發生裝箱拆箱」。善用泛型、ToString()、插值字串、StringBuilder避免非必要裝箱。