【问题标题】:If else formatting Visual Studio not indenting correctly如果其他格式 Visual Studio 不能正确缩进
【发布时间】:2018-05-30 16:35:57
【问题描述】:

所以这将是一个奇怪的问题,我从未在我编写的任何其他程序中遇到过这种格式问题。我认为这是因为我的 if 语句有多个 ||这需要多行才能使其看起来更具可读性。

请注意我的 else if() 下的虚线。由于某种原因,它在 if 而不是 else 下向右移动。

是否有某种格式设置可以解决此问题?或者是否有不同的方式我应该这样做 else if 声明?拥有所有这些 OR 检查是非常必要的,但我不想将它们全部放在一行上,因为那样看起来真的很难看。

谢谢!

【问题讨论】:

  • FWIW 我会将所有这些字符串放入一个列表并执行.Any(s => test.StartsWith(s)) 以使其更清晰。
  • 那条虚线似乎不会以任何方式影响实际的代码缩进。这只是轻微的视觉烦恼吗?您还可以将条件本身提取到方法中,从而无需多行条件。
  • 是的,它更多的是视觉上的烦恼。我想我会把它提取到不同的方法中。我只是喜欢所有 || 的可读性因为我必须创建的方法没有真正的好名字。这更像是一个非常长的条件检查,检查从哪里获取一些数据哈哈。

标签: c# visual-studio if-statement formatting


【解决方案1】:

工具 -> 选项 -> 文本编辑器 -> C# -> 代码样式 -> 格式 -> 新行

取消选中所有内容并保存。

然后,CTRL + E, D 格式化文档。

此外,您在那里使用了一个巨大的复合 if 语句,坦率地说,这是一团糟。如果您需要检查多个项目作为起始值,请将它们全部放入一个列表中。

List<String> ModelNumberPrefixes = new List<String>();
ModelNumberPrefixes.Add("A1C1C");
ModelNumberPrefixes.Add("A1C1D");
//etc

ModelNumberPrefixes.ForEach(s => {
    if (ModelNumber.StartsWith(s)) {
       //Whatever you need to do in your big if block
    }
});

【讨论】:

  • 是的,我想我会选择这条路线,但我会使用 .any(s => ModelNumber.StartsWith(s)),就像 Bradley 上面建议的那样。
  • @EricObermuller .any 将完成这项工作
【解决方案2】:

格式化选择:Ctrl+K, Ctrl+F

格式化文档:Ctrl+K, Ctrl+D

请参阅pre-defined keyboard shortcuts。 (这两个是 Edit.FormatSelection 和 Edit.FormatDocument。)

【讨论】:

    猜你喜欢
    • 2012-03-07
    • 2023-01-14
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2022-08-10
    • 1970-01-01
    相关资源
    最近更新 更多