所以我有一个主类,它有一个对象列表. ListMedia media = new ListMedia(); 媒体类是一个抽象类.有一个名为Book的类继承自媒体.以下是将图书添加到媒体列表的示例. media.Add(new Book(mediaInfo[1], Co
List<Media> media = new List<Media>();
媒体类是一个抽象类.有一个名为Book的类继承自媒体.以下是将图书添加到媒体列表的示例.
media.Add(new Book(mediaInfo[1], Convert.ToInt32(mediaInfo[2]), mediaInfo[3], summary));
mediaInfo是一个传递给构造函数的值数组.
string[] mediaInfo = record.Split('|');
摘要传递到媒体时会加密. book类包含一个解密它的Decrypt()方法,并且工作正常.问题是,当我尝试调用它时,我得到一个错误,说Decrypt不在Media中.那我怎么称呼它.
我试过这个但是我得到了错误.
foreach (Media m in media) { if (m.Search(query)) { if (m.GetType() == typeof(Book)) { Console.WriteLine(m.ToString() + m.Decrypt()); } } }
我检查它是否是一本书,所以为什么它不能下去书,看看Decrypt是否存在.我无法将解密放入Media类,因为还有一个歌曲类没有被加密.
由于m是Media类型(不包含Decrypt()),因此您需要将m转换为Book:Console.WriteLine(m.ToString() + ((Book)m).Decrypt());