是否有一个工具可以自动缩进使用 object initializers 的代码?以下列方式:
SomeType someType = new SomeType
{
Prop1 = "prop 1 value",
Prop2 = "prop 2 value",
Things = new List<Thing>
{
new Thing
{
ThingProp = "thing prop value"
}
}
};
即使用与其他 C# 代码中常见的相同的大括号缩进规则。
ReSharper 喜欢更重地缩进,但如果以后代码更改,则不会保持这种意图(我们已关闭各种 ReSharper 选项以防止这种情况发生)。
标准的 Visual Studio 2008 格式化选项 (Ctrl-K-D) 不会更改对象初始值设定项的缩进。
类定义包含在下面
public class Thing
{
public string ThingProp { get; set; }
}
public class SomeType
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public List<Thing> Things { get; set; }
}
进入 ReSharper/Options/Languages/C#/Formatting Style/Other 并取消选中“Indent array, object and collection initializer block”(靠近底部)。
(数组、集合和对象初始化器有几个不同的选项,但它们分散在不同的部分。据我所知,预览不会采用您拥有的其他选项选择考虑,这无济于事...)
如果你让 ReSharper 使用 Ctrl-E Ctrl-C 重新格式化代码,你可以得到它完全按照您的帖子格式化代码。要使嵌入的列表项完全展开,您需要取消选中 Line Breaks and Wrapping 中的“将简单的数组、对象和集合放在单行上”——这可能不是您在其他地方想要的。 :(
我是一名优秀的程序员,十分优秀!