调用带有可选参数的方法时,可以使用命名参数。
public void MyMethod(string s = null, int i = 0, MyType t = null)
{
/* body */
}
像这样称呼它:
MyMethod(i: 10, t: new MyType());
MyMethod("abc");
MyMethod("abc", t: new MyType());
或者,您可以使用重载:
public void MyMethod(string s)
{
MyMethod(s, 0, null);
}
public void MyMethod(int i)
{
MyMethod(null, i, null);
}
public void MyMethod(MyType t)
{
MyMethod(null, 0, t);
}
public void MyMethod(string s = null, int i = 0, MyType t = null)
{
/* body */
}
另一种选择是使用像这样的参数类:
public class MyParametersClass
{
public string s { get; set; }
public int i { get; set; }
public MyType t { get;set; }
public MyParametersClass()
{
// set defaults
s = null;
i = 0;
MyType = null;
}
}
public void MyMethod(MyParametersClass c)
{
/* body */
}
像这样调用:
MyMethod(new MyParametersClass
{
i = 25,
t = new MyType()
});
使用参数类可能是您的首选方法。参数类可以在您处理您正在处理的任何内容时随身携带。:) 对其所做的任何更改都不会丢失...
var parameters = new MyParametersClass();
MyMethod(parameters);
parameters.i = 26;
MyMethod(parameters);