0

这是一个单行 IF 语句的简单示例。

if(condition)
    something = "blah";

我发现自己经常将它们用于简单的事情,但后来在扩展应用程序时,将它们扩展为多行 if 语句

if(condition)
{
    something = "blah;
    somethingElse = "blar";
}

但我觉得这很令人沮丧,因为我必须经过几个步骤才能做到这一点。当我输入第一个大括号时,我的代码格式化程序(Visual Studio?Resharper?)继续输入第二个(关闭)大括号,并将其格式化如下:

if(condition) { }
something = "blah";

然后我必须选择并删除右大括号,并进行自己的格式化以使其看起来正确。

有没有一种方法可以方便地让 resharper 或 Visual Studio 自动在单行 IF 语句周围输入大括号?例如:我在条件之后输入了一个左大括号,它会自动将其格式化为

if(condition)
{
    something = "blah";
}
4

1 回答 1

1

你可以做的是定义一个新的片段,它与没有“if ($expression)”部分的 if 代码片段完全相同:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>multiif</Title>
            <Shortcut>multiif</Shortcut>
            <Description>Code snippet for multiline if statement</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>expression</ID>
                    <ToolTip>Expression to evaluate</ToolTip>
                    <Default>true</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[
    {
        $selected$ $end$
    }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

然后,您可以通过以下方式将此代码段导入 Visual Studio:

  1. 从工具菜单中选择代码片段管理器...。
  2. 单击导入... 按钮。
  3. 导航到您的新片段文件。

或:将新的代码片段文件复制到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Snippets\1033\Visual C#

然后,您可以在 c# 文件中选择单行 if 语句的主体,右键单击并选择 Surround With...,然后选择您的新代码段。

于 2012-05-20T19:43:08.380 回答