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

标签 c# .net visual-studio autocomplete resharper

正如代码所示,传递参数是一项相当频繁的任务。有没有一种方法可以使用 Resharper、Visual Studio native 或其他附加组件自动生成列表 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 可以通过使用 Refactor -> Extract -> 从参数中提取类自动为您完成此操作。

此外,如果您总是重复相同的参数组,请考虑将作用于它们的方法也移到类中。使用方法对数据进行逻辑分组可能是一个很好的做法。例如:

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()
    {
    }
}

关于c# - 自动列出所有方法参数以将它们向前传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31311857/

相关文章:

c# - MVC 错误 : Object reference not set to an instance of an object

c# - DataContractSerializer,为什么 "this"没有向上转换?

c# - 如何异步使用 HttpWebRequest (.NET)?

.net - 如何在 VB.NET 中的每一行添加注释?

c# - 使用 Visual Studio 和 .NET 的 Angular 2 路由

c# - 使用私有(private)自定义字段 (_customfieldname) 创建 WordPress 帖子不起作用

c# - 条件运算符与 if then else

c# - C#中的VB.Net错误对象

visual-studio - VS.NET - 多个查找所有引用结果窗口?

c# - 在 Visual Studio 2013 中安装 Nsight