1

我有一个对 MyClass 有限制的扩展方法。我尝试做的事情:

public static void GetXmlDocValues<T>(this List<T> collection, XmlDocument xmlDoc) where T : MyClass
{
     collection.Clear();
     foreach (XmlNode item in xmlDoc.ChildNodes)
     {
         ((List<MyClass>)collection).Add(new MyClass(item));
     }

}

然后我得到了错误:

无法将类型“ System.Collections.Generic.List<T>”转换为“ System.Collections.Generic.List<MyProgram.MyClass>”。这里:((List<MyClass>)collection)

有可能做那件事吗?或者它在任何情况下都会出错。

4

1 回答 1

2

看起来你真的希望你的方法看起来像这样:

public static void GetXmlDocValues(this List<MyClass> collection, XmlDocument xmlDoc)
{
    collection.Clear();
    foreach (XmlNode item in xmlDoc.ChildNodes)
    {
        collection.Add(new MyClass(item));
    }
}

如果您只想使用MyClass.

于 2013-09-19T14:40:26.317 回答