2

每当我在后面的代码中创建 UIElement 时,我都会做这样的事情:

Button button = new Button();
button.Content = "Click Me!";

但后来我在某处看到了这种语法,想知道它叫什么。我从未在我的任何 .NET 书籍中看到过它:

Button button = new Button { Content="Click Me!" };

这显然很好,因为它很简洁。所以我想我的问题是:

  1. 它叫什么?
  2. 以这种方式实例化 UIElement 有什么缺点吗?

我也很难找出正确的方法来设置 CornerRadius 和 StrokeThickness 等属性,并认为#1 的答案可能会帮助我进行更智能的搜索查询。

4

4 回答 4

5

1:“对象初始化器”

2:没有;它对于代码示例非常方便,尤其是 ;-p

在对象初始化器中不能做的事情:

  • 订阅事件
  • 与同一个集合实例上的集合初始化器组合(初始化器是对象初始化器(设置属性)集合初始化器(添加项目)

您可以通过作弊来克服这些限制:

Button btn;
Form form = new Form { Text = "Hi", Controls = { (btn = new Button()) }};
btn.Click += delegate { ... };
于 2009-12-09T21:55:02.617 回答
2

对象初始化器

它在引擎盖下做同样的事情。第二个选项使用单行而不是两行,这很简洁。 .NET >= 3.5 仅

于 2009-12-09T21:58:57.093 回答
2

.Net 3.5 对 Object Initializers 的增强,它只是一种简写机制。

于 2009-12-09T21:54:58.097 回答
0

它被称为对象初始化器,它没有任何缺点。

于 2009-12-09T21:56:22.100 回答