2011-04-29 100 views
1
foreach (Pair<Pair<int, int>, Cell> cell in sheet.Cells) 
      { 
       dgvCells[cell.Left.Right, cell.Left.Left].Value = cell.Right.Value; 
      } 

我的工作从.NET中创建一个Excel文件,使用该Excel Library什么“非泛型类型'System.Web.UI.Pair'不能与类型参数一起使用”是什么意思?

我得到的标题提到的警告。有任何想法吗?

+0

什么dgvCells的类型和它的.value的? – 2011-04-29 15:16:58

+0

其数据网格视图 – 2011-04-29 15:28:48

回答

2

只是以供将来参考和理解,错误消息:

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

被替换为一些类,表明你的代码中你试图以通用的方式使用非generic class。更具体地说,你正在使用一些与该类型不兼容的语法,在这种情况下,类型为“Pair”的通用花括号为<。

典型地解决这个问题

  • 识别类型的文件中使用,特别是其使用的通用方法。 (这应该找到他们:按Ctrl + F>“SomeClass的<”)
  • 确保类型为预期(该类型F12应该带你到它的声明)
  • 如果类型是预期的类型不同你应该使用using alias的。如果如预期的类型指向正确的类型namespace

    using Pair = Fully.Qualified.Namespace.Of.Pair; 
    
  • 确保它是通用的,如果不是你可以修改它是通用的,如果你有权限/访问权限,或者您可以选择/创建一个更适合您的目的的不同类型。

  • Alternativly你可以修改你的类型的使用是非通用
2

这意味着Pair在上面的代码指的是System.Web.UI.Pair代替一些其他的“一对”类如System.Collections.Generic.KeyValuePair(其通用)。

根据其Pair在上面的代码是为了实例,使用类似

using Pair = MyNamespace.Pair; 

来解决问题(这个例子假设你真的想用MyNamespace.Pair)。

更新:

看来,在你的情况下,准确的解决方案是

using Pair = QiHe.CodeLib.Pair; 
+0

我明白了......它是Excel库中的另一个类文件。 – 2011-04-29 15:28:17

0

因为MSDN提供了对定义为:

[SerializableAttribute] 
public sealed class Pair 

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