1つのアプローチは、メソッドをオーバーロードすることです
public ObservableCollection<ERCErrors> ErrorCollectionWithValue
(string ErrorDode, int MulCopyNo, int param1)
{
//do some thing with param1
}
public ObservableCollection<ERCErrors> ErrorCollectionWithValue
(string ErrorDode, int MulCopyNo, int param1,int param2)
{
//do some thing with param1 and param3
}
public ObservableCollection<ERCErrors> ErrorCollectionWithValue
(string ErrorDode, int MulCopyNo, int param1, int param2, int param3)
{
//do some thing with param1, param2 and param3
}
その後、これらすべてが有効になります
var err = ErrorCollectionWithValue("text", 10, 1);
var err = ErrorCollectionWithValue("text", 10, 1,2);
var err = ErrorCollectionWithValue("text", 10, 1,2,3);
別のアプローチは、オプションのパラメーターを使用することです。これを使用すると、最初のアプローチの3つとは対照的に、1つの方法のみが必要になります。
public ObservableCollection<ERCErrors> ErrorCollectionWithValue
(string ErrorDode, int MulCopyNo, int param1 = 0, int param2 = 0, optional int param3 = 0)
{
}
これらはまだ有効です
var err = ErrorCollectionWithValue("text", 10, 1); //defaults param2 and param3 to 0
var err = ErrorCollectionWithValue("text", 10, 1,2); //defaults param3 to 0
var err = ErrorCollectionWithValue("text", 10, 1,2,3);
オプションのパラメーターをスキップするには、名前付きパラメーターを使用する必要があります。これは、C#4.0以降でのみサポートされています。
var err = ErrorCollectionWithValue("text", param3: 5); //skipping param1 and param2
他の2つのアプローチでは、パラメーターの順序をスキップすることはできません。