什么“非泛型类型'System.Web.UI.Pair'不能与类型参数一起使用”是什么意思?

时间:2011-04-29 15:14:16

标签: c# .net export-to-excel

 foreach (Pair<Pair<int, int>, Cell> cell in sheet.Cells)
            {
                dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value;
            }

我正在使用此Excel Library

从.NET中创建excel文件

我收到标题中提到的警告。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这意味着上面代码中的Pair指的是System.Web.UI.Pair而不是其他一些“对”类,例如System.Collections.Generic.KeyValuePair(其中泛型)

根据上述代码实例化的Pair,使用类似

的内容
using Pair = MyNamespace.Pair;

解决此问题(此示例假设您确实要使用MyNamespace.Pair)。

<强>更新

在您的情况下,似乎确切的解决方案是

using Pair = QiHe.CodeLib.Pair;

答案 1 :(得分:2)

仅供将来参考和理解,错误消息:

非泛型类型''不能与类型参数一起使用

替换为某个类,表示在您的代码中,您试图以通用方式使用非generic class。更具体地说,您使用的某些语法与该类型不兼容,在本例中为&lt;&gt; “Pair”类型的通用括号。

通常解决问题

  • 确定文件中使用的类型,特别是以通用方式使用的类型。 (这应该找到它们:Ctrl + F&gt;“SomeClass&lt;”)
  • 确保类型符合预期(类型上的F12应该带您进行声明)
  • 如果类型与预期类型不同,您应该使用using alias指向正确的类型namespace,即

    using Pair = Fully.Qualified.Namespace.Of.Pair;
    
  • 如果类型符合预期,请确保它是通用的,否则您可以将其修改为通用,如果您有权限/访问权限,或者您可以选择/创建不同的类型,更适合您的目的。

  • 另外,您可以修改您对该类型的使用是非通用的

答案 2 :(得分:0)

因为MSDN将Pair定义提供为:

[SerializableAttribute]
public sealed class Pair

没有包含Pair<T1, T2>的定义。如果有另一个Pair类,则需要在'using'子句中包含该命名空间。