我一直试图找出某些东西的名字,但是如果不知道这个名字,我很难用谷歌搜索答案.这有点像是一个问题22.我希望如果我发布一个例子,那里的某个人可能会认出它.
基本上,它是一种初始化对象的任意数量的公共属性的方法,而不使用构造函数.
例如,如果我想在winform中动态添加文本框,我可以:
System.Windows.Forms.TextBox tb_FirstName = new System.Windows.Forms.TextBox()
{
Location = new System.Drawing.Point(0, 0),
Name = "tb_FirstName",
Size = new System.Drawing.Size(100, 20),
TabIndex = 1
};
frm_MyForm.Controls.Add(tb_FirstName);
Run Code Online (Sandbox Code Playgroud)
有谁知道这叫什么?此外,我有理由避免这样做.我更喜欢上面的代码如何读取,而不是单独设置属性:
System.Windows.Forms.TextBox tb_FirstName = new System.Windows.Forms.TextBox();
tb_FirstName.Location = new System.Drawing.Point(0, 0);
tb_FirstName.Name = "tb_FirstName";
tb_FirstName.Size = new System.Drawing.Size(100, 20);
tb_FirstName.TabIndex = 1;
frm_MyForm.Controls.Add(tb_FirstName);
Run Code Online (Sandbox Code Playgroud)
大多数情况下,我想知道第一个例子的名称,以便我可以对它进行一些阅读.
Tim*_*oyd 10
它被称为对象初始化器.
使用它们的一个潜在问题是在using语句中为对象使用对象初始值设定项时.如果任何属性设置器抛出异常,或者评估属性值的代码,则永远不会在对象上调用dispose.
例如:
using (Bling bling = new Bling{ThrowsException = "ooops"})
{
//Some code...
}
Run Code Online (Sandbox Code Playgroud)
Bling将创建一个实例,但由于属性ThrowsException抛出异常,Dispose因此永远不会被调用.
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |