在一个大项目上工作,我意识到以下代码片段:
public interface Mother
{
void CoolFeature();
}
public interface Daughter : Mother
{
}
public class YouJustLostTheGame<T> : List<T> where T : Mother
{
public void Crowd(Mother item)
{
this.Add(item);
}
public void useFeature()
{
this.Find(a => { return true; }).CoolFeature();
}
}
无法编译Crowd(Mother)
函数并显示消息“无法将 'Test.Mother' 转换为 'T'”。当然,这对我来说似乎是非常错误的,而且useFeature()
完全没问题。那么我错过了什么?
注意:VS2012、win7 x64、.NET 4.5