使用集合初始值设定项初始化WebControl对象的Attributes属性
本文关键字:WebControl 初始化 对象 属性 Attributes 集合 | 更新日期: 2023-09-27 17:58:52
我想内联初始化WebControl
对象,但对于某些字段来说,这有点棘手。例如,当我尝试初始化TextBox
对象的Attributes
属性时,如下所示:
using System.Web.UI.WebControls;
Panel panel = new Panel() { Controls = { new TextBox() { Attributes = { { "key", "value" } } } } };
我得到错误:
无法使用集合初始化类型"AttributeCollection"初始值设定项,因为它没有实现"System.Collections.IEnumerable"
知道内联初始化在这种情况下如何工作吗?
您可以这样做,但如果您使用C#。这被称为索引初始化,所以请尝试以下代码,但正如我所说,这在Visual Studio 2015和C#6中应该可以正常工作:
Panel panel = new Panel
{
Controls =
{
new TextBox
{
Attributes =
{
["readonly"] = "true",
["value"] = "Hi"
}
}
}
};
旧的集合初始值设定项(C#6之前)仅适用于实现IEnumerable<T>
并具有Add
方法的类型。但现在,任何带有索引器的类型都允许通过此语法进行初始化。