C# 自动列出所有方法参数以向前传递它们

C# 自动列出所有方法参数以向前传递它们,c#,.net,visual-studio,autocomplete,resharper,C#,.net,Visual Studio,Autocomplete,Resharper,正如代码所示,传递参数是一项相当频繁的任务。有没有办法用Resharper、visualstudio或其他附加组件自动生成列表isPriority、label、id、start、user,而不是手工编写 public void TransformAndStore( bool isPriority, string label, string id, DateTimeOffset start, string us

正如代码所示,传递参数是一项相当频繁的任务。有没有办法用Resharper、visualstudio或其他附加组件自动生成列表
isPriority、label、id、start、user
,而不是手工编写

    public void TransformAndStore(
        bool isPriority,
        string label,
        string id,
        DateTimeOffset start,
        string user)
    {
        if (this.IsValid(id)) {
            label = this.Clean(label);
            this.Reposit(isPriority, label, id, start, user);
        }
    }
生成的列表应基于方法签名,按照出现的顺序列出方法的所有参数(不包括其类型)

  • 此外,如果Reposit方法使用调用方法作用域中可用的一些但不是全部相同的参数(由参数/变量名称标识),那么自动完成也会加快编码速度,并降低RSI:)

您可以创建一个类来存储所有参数,因此只需传递一个项目即可。Resharper可以通过使用
重构
->
提取
->
从参数中提取类来自动完成这项工作

同样,如果你总是重复相同的参数组,考虑将作用于它们的方法移动到类中。使用这些方法对数据进行逻辑分组是一种很好的做法。例如:

public class CleverName
{
    public bool IsPriority { get; set; }
    public string Label { get; set; }
    public string Id { get; set; }
    public DateTimeOffset Start { get; set; }
    public string User { get; set; }

    public bool IsValid()
    {
        //Check if Id is valid
    }

    public void TransformAndStore()
    {
        if (this.IsValid()) {
            Label = this.Clean(Label);
            this.Reposit();
        }
    }

    public void Reposit()
    {
    }
}

虽然它不能回答你所问的确切问题,但看看ReSharper的。它将根据当前上下文筛选可用的项目以完成,并且通常非常擅长建议正确的参数以通过。

有趣的解决方法,但即使我只有3个参数,但我每年需要传递10000次,我也希望自动完成,所以我希望找到一个自动完成的解决方案。向上投票,但不是我想要的答案..你可以把这些方法放在同一个类中。这样,除了顶级调用之外,您根本不会传递参数。我理解,谢谢。参数越多,链接越多,你的方法就越有意义,但我仍然在谈论用几个可能只传递一次的参数(无链接)自动完成许多不同的不相关方法。几乎肯定没有办法自动完成参数,但祝你好运找到一个:)