我认为这在c#.net 2.0中是可行的吗?
header.Cells.Add((new TableCell(){Text = "First header"}));
除非我做错了?这会产生以下错误:
CS1026: ) expected
这是错误吗?
答案 0 :(得分:2)
在C#3.0中引入了属性初始化语法;它在C#2.0中不是有效的语法。
答案 1 :(得分:0)
我不确定C#2.0 ......但是在C#3.0中你可以这样做:
header.Cells.Add((new TableCell{ Text = "First header" }));
答案 2 :(得分:0)
我认为你不能在2.0中的声明中设置属性。所以你必须这样做:
TableCell tc=new TableCell();
tc.Text = "First header";
header.Cells.Add(tc);
答案 3 :(得分:0)
此语法的支持由编译器提供,而不是.Net运行时/ CLR。
如果您使用的是Visual Studio 2008或更高版本,则可以在定位.Net 2.0时完美地使用此语法,否则您将需要以“正常”方式执行此操作。
此外,您还有一对额外的冗余括号 - 使用此语法时,您可能会发现使用以下布局更容易:
header.Cells.Add(new TableCell()
{
Text = "First header"
});
答案 4 :(得分:0)
这不是匿名对象,TableCell
是预定义类型。您指的是C# 3.0中引入的隐式对象初始化语法,您必须以“老式”方式执行此操作。