我是新词并对词典感兴趣。 我在基础存储库上写了一个方法,如下所示:
public IList<DropDownSelectList> GetDropDownData(string valueColumn, string displayColumn, string orderByColumnName = "", Dictionary<string, object> paramList = null)
{
//do my tasks.....
...
if (paramList != null)
{
int index = 0;
args = new object[paramList.Count];
foreach (var item in paramList)
{
whereCondition += " AND " + item.Key + "=@"+ index.ToString();
args[index] = item.Value;
index++;
}
}
..........
}
现在,当我从某个子库中调用该方法时,就像这样:
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", null);
然后没关系。
但是当我尝试向参数发送一些值时,它根本不起作用。
我试着吼道:
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID",1);
还有:
Contact oContact = new Contact();
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID", oContact);
但是我得到了错误:
没有重载方法'GetDropDownData'需要5个参数。
先谢谢。
答案 0 :(得分:1)
替换它:
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName", "DivisionID",1);
有了这个:
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName",
new Dictionary<String, object> { { "DivisionID", 1 } });
如果你想要多个参数......
return base.GetDropDownData("DivisionID", "DivisionName", "DivisionName",
new Dictionary<String, object> {
{ "DivisionID", 1 },
{ "OfficeID", 3 }
});
等。
答案 1 :(得分:1)
“没有重载方法'GetDropDownData'需要5个参数。”这只是意味着你的方法不能接受4个参数,因为你的定义是4。如果需要发送更多参数,你可以编写另一个与5个参数同名的方法。您还可以在末尾添加一个带默认值的参数,这样如果您使用4个参数调用此方法,它应该自动使用最后一个参数的默认值!