为什么ReSharper在等待中断行并以不同方式返回语句?

时间:2016-02-19 12:17:13

标签: c# async-await resharper

我遇到了一些奇怪的行为,我觉得很烦人,无法找到它的来源。请考虑以下代码:

using System.Threading.Tasks;

class Program
{
    public static Task DoAction(int i, int j, int k)
    {
        return null;
    }

    public static int GetParameterFromComplicatedProcedure()
    {
        return 0;
    }

    static async Task Main(string[] args)
    {
        return DoAction(GetParameterFromComplicatedProcedure(), GetParameterFromComplicatedProcedure(),
                        GetParameterFromComplicatedProcedure());
    }
}

在主要方法中,呼叫被包装,但与'返回'保持在同一行。但是,如果我改变' return'为了等待',ReSharper格式如下:

await
    DoAction(GetParameterFromComplicatedProcedure(), GetParameterFromComplicatedProcedure(),
             GetParameterFromComplicatedProcedure());

为什么会发生这种情况,有没有办法改变它?

UPD 为了回应可能的重复:

  1. 问题不在于如何阻止ReSharper破坏线路。这是为什么有一个不同的处理等待'并且'返回'这些陈述似乎在标题中有明确说明,这是一件值得关注的好事。

  2. 关于'返回'之后立即断线的问题无论如何,关键字未正确回答。只有答案告诉我们如何删除换行,而不是如何更换换行的地方。

  3. UPD2 我的ReSharper版本:10.0.2 Ultimate。所有设置均为默认值,但以 代码编辑 - > C# - >格式化样式 - >换行和换行 - >保持现有换行符= false。

1 个答案:

答案 0 :(得分:1)

YouTrack https://youtrack.jetbrains.com/issue/RSRP-430882中存在一个非常类似的问题。