我有一个带有10个以上可选参数的函数,并且在程序中有一些设置可以确定是否应传递参数。例如,
public void MyFunction(bool? b1=null, bool? b2=null, bool? b3=null.. bool? b10=null)
以下是用于确定是否应设置参数的设置
bool setb1 = false;
bool setb2 = false;
bool setb3 = true;
bool setb4 = false;
bool setb5 = true;
如果要按照设置来设置参数,那么我将必须执行类似的操作
if (!setb1 && !setb2 && !setb4)
MyFunction(b3: value3, b5: value5);
如果我有10个设置和10个参数,那么我将有太多组合,因此我认为我的实现不可行。完成此操作的正确方法是什么?
答案 0 :(得分:3)
您的函数有一个Long Parameter List
我将传递一个对象作为参数,创建一个类ConditionModle
您可以在此类中封装所需的条件。
public class ConditionModle
{
public bool setb1 { get; set; }
public bool setb2 { get; set; }
public bool setb3 { get; set; }
public bool setb4 { get; set; }
public bool setb5 { get; set; }
....
public bool Condition1()
{
return !this.setb1 && !this.setb2 && !this.setb4;
}
}
if (model.Condition1())
MyFunction(model);
此解决方案可以帮助您的代码