“预期CS1026 :)”

Mic*_*ole 4 c# asp.net-2.0

using (SqlCommand cmd = new SqlCommand("ReportViewTable", cnx) 
  { CommandType = CommandType.StoredProcedure })
Run Code Online (Sandbox Code Playgroud)

当我尝试在浏览器中打开此页面时,

CS1026 :)预期错误

在这一行上,但我看不到它在哪里引发错误。我已经读过一个;可以导致此问题的原因,但是我没有任何一个。

我可以提供所需的任何其他信息,但老实说,我不知道需要问什么问题。我正在尝试用谷歌搜索一些答案,但是大多数都用多余的分号(我没有)。

任何帮助表示赞赏。谢谢。

Fis*_*rdo 6

如果是.NET 2.0(如标签所示),则不能使用对象初始化程序语法。直到C#3.0才将其添加到语言中。

因此,这样的语句:

SqlCommand cmd = new SqlCommand("ReportViewTable", cnx) 
{ 
    CommandType = CommandType.StoredProcedure 
};
Run Code Online (Sandbox Code Playgroud)

将需要重构为:

SqlCommand cmd = new SqlCommand("ReportViewTable", cnx);
cmd.CommandType = CommandType.StoredProcedure;
Run Code Online (Sandbox Code Playgroud)

您的using陈述可以像这样重构:

using (SqlCommand cmd = new SqlCommand("ReportViewTable", cnx))
{
    cmd.CommandType = CommandType.StoredProcedure;
    // etc...
}
Run Code Online (Sandbox Code Playgroud)

  • 在使用块中使用对象初始化程序语法也是一个坏主意:http://ayende.com/blog/3810/avoid-object-initializers-the-using-statement (2认同)