我有这样的代码:
List<Pair<string, string>> docs = new List<Pair<string, string>>();
iErr = ftpconnect.ListAllDocuments(docs, build.BuildId.ToString());
ListAllDocuments的接口原型是:
Int32 ListAllDocuments(List<Pair<string, string>> DocList, string Path);
我收到错误
错误21:'OperatorPanelWrapper.FtpTransportLibWrapper.ListAllDocuments(System.Collections.Generic.List&lt; OperatorPanel.Pair&lt; string,string&gt;&gt;,string)'的最佳重载方法匹配有一些无效的参数
为什么我会收到此错误?
答案 0 :(得分:2)
在您发布的第一个代码(new List<Pair<string, string>>()
)中,尝试将光标放在Pair
中,并查看Visual Studio认为它的定义位置。它应显示OperatorPanel.Pair<T1, T2>
。如果它显示在其他地方定义的Pair
类型的名称(或错误),那么您的类型是错误的。
有几种可能性:
Pair
类,它指的是错误的类。using
directive,以指定编译器应在哪个名称空间中查找Pair
。Pair
which is not the one you want的不同命名空间的using
指令(例如using System.Web.UI
)。Pair
的DLL的引用。List<T>
引用有点不对(也许你定义了自己的?)ToString
上定义了自己的BuildId
,但未返回string
。基本上,检查所有类型。调用代码中的第一个:List
引用System.Collections.Generic.List<T>
,Pair
是否引用通用OperatorPanel.Pair<T1, T2>
...
答案 1 :(得分:1)
尝试
List<OperatorPanel.Pair<string, string>> docs = new List<OperatorPanel.Pair<string, string>>();