大きなプロジェクトに取り組んでいると、次のスニペットに気づきました。
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