ref
当我尝试添加到重载方法的参数时,为什么会出现以下错误?
'WindowsFormsApplication1.Form1.SearchProducts(int)' 的最佳重载方法匹配有一些无效参数
参数 1:无法从 'ref System.Collections.Generic.List' 转换为 'int'
这是一些(简化的)代码:
public virtual IList<int> SearchProducts(int categoryId)
{
List<int> categoryIds = new List<int>();
if (categoryId > 0)
categoryIds.Add(categoryId);
return SearchProducts(ref categoryIds);
}
public virtual IList<int> SearchProducts(ref IList<int> categoryIds)
{
return new List<int>();
}
编辑:
你们中的一些人问我为什么ref
在这种情况下需要它,答案是我可能不需要它,因为我可以清除列表并添加新元素(我不需要创建新的引用)。但问题不在于我需要或不需要的事实,而在于我ref
为什么会出错。而且由于我没有找到答案(在谷歌搜索了一会儿之后),我认为这个问题很有趣,值得在这里提问。似乎你们中的一些人不认为这是一个好问题并投票关闭它......