尽管未显示每个部分类都具有Courses事件的实现。不能隐式转换类型抽象类
public abstract class Subject<T> where T : Course
{
ICollection<T> Courses { get; set; }
}
public partial class Student_Subject :Subject<Student_Course >
{}
public partial class Tutor_Subject :Subject <Tutor_Course>
{}
public abstract class Course {}
public partial class Student_Course Course {}
public partial class Tutor_Course : Course {}
我得到一个错误。
Subject<Course> subject;
if(type ==1)
{
subject = new Student_Subject(); // error
为什么我不能转换这种类型。 Student_Subject是一个主题。我是C#的新手,我花了整整一天的时间来处理这个问题。我最初尝试使用接口,但为了实现这个功能,我必须使它成为只允许读访问的共变体。 (如果我没有记错的话)。我错过了什么,有没有更好的方法来实现这个愿望功能
Student_Subject的声明显示它实现了ISubject,而您期待的 将被转换为ISubject 。这两个实现是不同的。 –
Riz