参数类型不可分配给参数类型
本文关键字:参数 类型 不可分 可分配 | 更新日期: 2023-09-27 17:59:17
我有这样的代码:
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)"的最佳重载方法匹配包含一些无效参数
为什么会出现此错误?
在发布的第一个代码(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>
参考文献在某种程度上是错误的(也许你定义了自己的?) - (不太可能)您已经在不返回
string
的BuildId
上定义了自己的ToString
基本上,检查你所有的类型。调用代码中的第一个:List
是指System.Collections.Generic.List<T>
吗,Pair
是指通用OperatorPanel.Pair<T1, T2>
吗。。。
尝试
List<OperatorPanel.Pair<string, string>> docs = new List<OperatorPanel.Pair<string, string>>();