我想了解一些关于C#的泛型的细节。C#泛型:接口实现对象列表
如果我有一个方法定义为这样
public static void AssertContains<T>(IEquatable<T> val, List<IEquatable<T>> optionsObjs, XML xml, string context)
和实现IEquatable
类,
public class Tag : IEquatable<Tag>
{
public string id;
public bool Equals(Tag other)
{
return other.id == this.id;
}
}
为什么以下无效?
AssertContains(aTag, aListOfTags, el, "");
检查此问题http://stackoverflow.com/questions/2184551/difference-between-covariance-contravariance – MKMohanty