【问题标题】:How to pass more than 10 parameters from one method to another [duplicate]如何将10多个参数从一种方法传递到另一种方法[重复]
【发布时间】:2015-08-14 09:50:15
【问题描述】:

我需要将 10 多个参数从一种方法传递到另一种方法,它们都是不同类型的。

如果我将它们作为参数传递,它看起来不太好。

【问题讨论】:

  • 发送一个对象。
  • 将类似的参数组合到对象(类)中,然后将其发送
  • 如果你有 +10 个参数的函数调用,那么你可能需要重构你的代码,并创建更多的函数。如果您需要帮助,请更准确地了解您当前的用例并显示一些代码
  • 通常您会将所有参数封装在一个类中。但是,根据参数的不同,如果参数的某些子集高度耦合,您可能希望将它们封装在多个类中。你能给出一些示例代码吗?可能会有更好的方法。
  • 请学习使用search engine。

标签: c#


【解决方案1】:

创建一个如下所示的类:

public class ParamObject 
{
    public string Blah1 { get; set; }
    public DateTime Blah2 { get; set; }
}

然后实例化它并在你的方法中使用它。

public void DoStuff (ParamObject uglyRecord)
{
    //do stuff...
}

public void CallStuff()
{
    ParamObject uglyRecord = new ParamObject();
    uglyRecord.Blah1 = "things";
    uglyRecord.Blah2 = DateTime.Now();

    DoStuff(uglyRecord);
}

但是,接受大量参数或复杂对象的方法可能表明该方法做得太多,应该将其重构为几个更小更简单的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 2018-03-10
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2015-08-14
    相关资源
    最近更新 更多