1

我有一个MediaCollection<T>代表歌曲、视频或图片播放列表的类。我也有三个类:,Song它们都继承自一个抽象类。我的班级有以下限制:VideoPictureAMediaElementMediaCollection<T>

class MediaCollection<T>
    where T : AMediaElement, new()
{
}

这让我可以收藏歌曲、图片、视频,但也可以收藏任何AMediaElement

如何防止创建类型的对象MediaCollection<AMediaElement>?我可以制作MediaCollection摘要,然后制作其他三个类SongCollection,PictureCollectionVideoCollection,但我更喜欢使用该where子句的解决方案。

4

1 回答 1

2

事实证明它有效。我通过创建一个List<AMediaElement>对象而不是一个. 来测试它是错误的MediaCollection<AMediaElement>。由于我的 where 子句指定new(),我不能使用AMediaElement我想要的抽象类。

我知道我按得太快了“提问”按钮..

于 2013-02-27T15:01:22.080 回答