一种方法是重载方法
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 个。
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
在其他两种方法中,您不能跳过参数的顺序。