オプションのパラメーターを使用してメソッドを呼び出すときに、名前付きパラメーターを使用できます。
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()
});
parameters クラスを使用することは、おそらく推奨されるアプローチです。パラメータクラスは、処理しているものを処理するときに持ち運ぶことができます。:) それに加えられた変更は失われません...
var parameters = new MyParametersClass();
MyMethod(parameters);
parameters.i = 26;
MyMethod(parameters);