数组初始值设定项中的C#源代码格式

时间:2010-11-25 15:28:48

标签: c# visual-studio visual-studio-2010

是否可以在VS.NET 2010中的数组初始值设定项中启用C#源代码格式化?

Elements =
{
// starting from here source code formatting does not work
  new TextViewModel("PublicId") 
  { 
    Label = new LText("Fund Nr:", "de", "Fondsnummer"),
    Watermark = new LText("Please enter fund number...", "de", "Bitte hier Fondsnummer erfassen...")
  },
  new CheckViewModel("Juristic")
  {
    Style = "Radio",
    Default = true,
    Label = new LText("Juristic Fund", "de", "Juristischer Fonds")
  }
}    
// starting from here source code formatting works again

我在工具 - >选项 - >文字编辑器 - > C#中错过了一些格式化选项吗?

4 个答案:

答案 0 :(得分:3)

它是一个" 不会修复"在connect.microsoft

但是,正如微软发布的那样:

  

如果其他人发现这是一项重要功能,请继续投票   它了。

注意,这仅适用于多行初始值设定项。

答案 1 :(得分:2)

看起来这是VS.NET“功能”

答案 2 :(得分:0)

我相信你需要TextViewModel和CheckViewModel上的默认构造函数。

据我所知,这是唯一的方法.net可以做到。此外,我假设这两个对象继承自基类,并且您的数组与基类的类型相同。

否则创建的对象将是“var”类型。编译器会抛出一个拟合,因为数组在技术上也必须是“var”类型。

此外,传递给对象ctors的参数应该在属性中初始化,就像TextViewModel对象的Label和Watermark属性,以及CheckViewModel的Style,Default和Label一样。

答案 3 :(得分:0)

这看起来不像有效的C#。你在Elements =之后错过了一个数组声明。它应该是这样的:

Elements = new ViewModelBase[] { /* ... */ };

修复后,格式化可能会开始正常运行。它适合我(但我正在使用ReSharper)。