为什么我在以下代码中出现编译错误(请参阅注释行)?
public void Test()
{
HashSet<HashSet<Animal>> setWithSets = new HashSet<HashSet<Animal>>();
HashSet<Cat> cats = new HashSet<Cat>();
setWithSets.Add(cats); // Compile error
}
private class Animal { }
private class Cat : Animal { }
VS2012 给了我两个错误,第一个是重要的:
- 错误 2 参数 1:无法从 'System.Collections.Generic.HashSet<Expenses.Tests.TestDb.SetTest.Cat>' 转换为 'System.Collections.Generic.HashSet<Expenses.Tests.TestDb.SetTest.Animal>'
- 错误 1 'System.Collections.Generic.HashSet<System.Collections.Generic.HashSet<Expenses.Tests.TestDb.SetTest.Animal>>.Add(System.Collections.Generic.HashSet)' 的最佳重载方法匹配有一些无效参数
我的问题是:为什么我不能在“setWithSets”中添加“cats”?