我有一个班级MediaCollection<T>
,代表歌曲,视频或图片的播放列表。我还有三个类:Song
,Video
和Picture
,它们都继承自AMediaElement
抽象类。我的MediaCollection<T>
类具有以下约束:
class MediaCollection<T>
where T : AMediaElement, new()
{
}
这使我可以收集歌曲,图片,视频,也可以收集任何AMediaElement
!
如何阻止创建MediaCollection<AMediaElement>
类型的对象?我可以制作MediaCollection
摘要,然后创建其他三个类SongCollection
,PictureCollection
和VideoCollection
,但我更喜欢使用where
子句的解决方案。< / p>
答案 0 :(得分:2)
结果证明它有效。我通过创建List<AMediaElement>
对象而不是MediaCollection<AMediaElement>
来测试它是错误的。因为我的where子句指定new()
,所以我不能使用抽象类AMediaElement
,这就是我想。
我知道我按“问问题”按钮太快了。