1

我有这样的代码:

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<OperatorPanel.Pair<string,string>>, string)”的最佳重载方法匹配有一些无效参数

为什么我会收到此错误?

4

2 回答 2

3

在您发布的第一个代码 ( new List<Pair<string, string>>()) 中,尝试将光标放在Pair其中并查看 Visual Studio 认为它的定义位置。它应该显示OperatorPanel.Pair<T1, T2>. 如果它显示在Pair其他地方定义的类型的名称(或错误),那么您的类型是错误的。

有几种可能性:

  • 您在某处定义了另一个Pair类(可能是无意的),它指的是错误的类。
  • 您在顶部缺少一个using指令Pair来指定编译器应该在哪个命名空间中查找您的.
  • 您有using一个不同名称空间的指令,其中包含一个Pair不是您想要的名称(例如using System.Web.UI)。
  • 您缺少对Pair定义您的 DLL 的引用。
  • 你的List<T>参考是错误的(也许你定义了你自己的?)
  • (不太可能)您已经ToStringBuildId不返回string.

基本上,检查所有类型。首先在调用代码中:确实List引用了System.Collections.Generic.List<T>,确实Pair引用了泛型OperatorPanel.Pair<T1, T2>...

于 2013-02-15T09:59:20.573 回答
1

尝试

List<OperatorPanel.Pair<string, string>> docs = new List<OperatorPanel.Pair<string, string>>();
于 2013-02-15T09:47:32.133 回答