c#对象初始化

本文关键字:初始化 对象 | 更新日期: 2023-09-27 18:17:14

有这样代码的程序:

var subtree = new Tree<int>(5, EnumeratorOrder.BreadthFirstSearch) { 1, 2 };
var tree = new Tree<int>(7, EnumeratorOrder.BreadthFirstSearch) { subtree, 10, 15 };

我不明白{ 1, 2 }是什么意思

c#对象初始化

我不明白{1,2}是什么意思

{1, 2}是集合初始化式

表示

的简写形式
var temp = new Tree<int>(5, EnumeratorOrder.BreadthFirstSearch);
temp.Add(1);
temp.Add(2);
var subtree = temp;

关于temp初始赋值的注意事项:赋值的含义是向左求值,向右求值,进行赋值。对右求值会产生副作用,而这些副作用必须在赋值效果之前排序。

这是一个集合初始化式

集合初始化器允许您在初始化实现IEnumerable的集合类或具有Add扩展方法的类时指定一个或多个元素初始化器。元素初始化式可以是简单值、表达式或对象初始化式。通过使用集合初始化器,您不必在源代码中指定对类的Add方法的多次调用;编译器添加调用。