我对C#很陌生。我有两个班级,一个电影班和一个类型班。我无法理解属性“公共虚拟类型类型”有人能解释我这个吗?以下是两个班级
public class Genre :IEntityBase
{
public Genre()
{
Movies = new List<Movie>();
}
public int ID { get; set; }
public string Name { get; set; }
public virtual ICollection<Movie> Movies { get; set; }
}
public class Movie:IEntityBase
{
public Movie()
{
Stocks = new List<Stock>();
}
public int ID { get; set; }
**public virtual Genre Genre { get; set; }**
public virtual ICollection<Stock> Stocks { get; set; }
}
答案 0 :(得分:4)
public virtual Genre Genre { get; set; }
表示以下内容:
Genre
的属性(第二次出现)Genre
(第一次出现)get
),可以更改(set
)。public
)virtual
)。答案 1 :(得分:1)
类型和名称是性别,给你可能看起来令人困惑,但对于计算机来说,它是这样的:
一组修饰符,如public,private等。 + 类型 + 名称
所以它实际上并没有将第二个 Gender 视为一种类型,因为它只是某个东西的名称。在引擎盖下,它并不是指你通过名字创建的变量/属性。它使用某种指针或引用。
现在,如果您想询问如何解释该特定定义,则表示该属性应该在外部类中看到(它不是隐藏/私有)。如果使用继承,也可以改变其含义。它将返回类型为 Gender (类)的内容,它的名称为 Gender (如果您愿意,它几乎可以调用任何内容)。我还说它可以作为 Gender 类似值的容器,你可以自由地分配它并阅读它。
大多数细节都很重要,可以看到当您开始在更大范围内使用它的实例时修改行为。就在这个例子中,如果你去公共或虚拟,那真的没什么区别。它有帮助吗?