我有一个类:为什么这种调用通用参数失败的方法?
public class Document<T> : IFormattable<string, Document<T>> where T : Info
{
public Document(IList aList<T>) { ... }
public string Format(IFormatter<string, Document<T>> formatter) { ... }
}
和在另一个类中一个函数,一个文档T:
public void Insert<T>(Document<T> document) where T : Info
{
IFormatter<string, Document<ConcreteInfo>> formatter = new ConcreteFormatter();
document.Format(formatter);
}
然而,编译器与抱怨:
的最好重载方法Document.Format(IFormatter>)有一些无效的参数。
至于我可以看到文档的格式方法采用
IFormattable<string, Document<T>>
与信息对T的约束,那就是在传递的变量格式是什么。
谁能告诉我问题是什么?
很难确切地告诉你不知道更多你的类型层次的,但它听起来像是你有一个变化的问题。你可以从这里开始阅读这篇文章:http://msdn.microsoft.com/en-us/library/ee207183.aspx(这里有更多文章链接)。 – porges 2011-01-30 21:48:17