class Point { public int X { get; set; } public int Y { get; set; } }
class Rectangle
{
public Point TopLeft { get; set; }
public Point BottomRight { get; set; }
}
var rect = new Rectangle
{
TopLeft = new Point { X = 100, Y = 100 },
BottomRight = new Point { X = 200, Y = 200 }
};
// 單語句完成雙層對象構建與賦值
var rect = new Rectangle();
var p1 = new Point { X = 100, Y = 100 };
rect.TopLeft = p1;
var p2 = new Point { X = 200, Y = 200 };
rect.BottomRight = p2;
ICollection<T>
int[] arr = { 0,1,2,3,4,5,6,7,8,9 }; // 數組字面量
List list = new List { 0,1,2,3,4,5,6,7,8,9 }; // 集合初始化器
// ArrayList 不實現 ICollection → ❌ 不可用
var list = new List();
list.Add(0); list.Add(1); ... list.Add(9);
class Point
{
public int X { get; set; }
public int Y { get; set; }
public override string ToString() => $"[{X}, {Y}]";
}
var points = new List
{
new Point { X = 10, Y = 20 },
new Point { X = 100, Y = 200 },
new Point { X = 1000, Y = 2000 }
};
foreach (var p in points) Console.WriteLine(p);
// 輸出:[10, 20] / [100, 200] / [1000, 2000]
對象初始化器支持巢狀賦值,集合初始化器以數組字面量語法統一集合構建。兩者結合,配合 var、匿名類型,構成 C# 3.0 聲明式數據構建的完整語法體系,代碼可讀性與維護性大幅提升。