在另一个类属性中使用类名。?

hES*_*haN 2 c#

我对 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; }
}
Run Code Online (Sandbox Code Playgroud)

yaa*_*kov 5

public virtual Genre Genre { get; set; } 意思如下:

  1. 声明一个名为Genre(第二次出现)的属性
  2. 此属性属于类型Genre(第一次出现)
  3. 此属性可以读取 ( get) 并且可以更改 ( set)。
  4. 此属性可以由任何其他库中有权访问此对象的任何其他类读取或设置 ( public)
  5. 这个属性可以被子类覆盖(替换它的代码以做一些不同的事情)。( virtual).