C# 从其他类中的其他类创建属性时出错

C# 从其他类中的其他类创建属性时出错,c#,C#,你能告诉我为什么会出现这个错误吗 CS0029无法将类型“string”隐式转换为“UserQuery.Director” 在 m、 DirectorName=“某人” 地址: 在你的课堂电影中,你提到了一个班级。如果要更改director类中的字符串do m.DirectorName.Name在类电影中,您有一个对类的引用。如果要更改director类中的字符串,请确保m.DirectorName.NameDirectorName不是字符串。所以你不能给它分配一个字符串。你可以给它指派一个主管

你能告诉我为什么会出现这个错误吗

CS0029无法将类型“string”隐式转换为“UserQuery.Director”

m、 DirectorName=“某人”

地址:


在你的课堂电影中,你提到了一个班级。如果要更改director类中的字符串do m.DirectorName.Name

在类电影中,您有一个对类的引用。如果要更改director类中的字符串,请确保m.DirectorName.Name

DirectorName不是字符串。所以你不能给它分配一个字符串。你可以给它指派一个主管。由于DirectorName属性实际上代表一个控制器,因此它的名称很差。将电影类更改为:

public class Movie
{
     public string Name { get; set; }

     public Director MovieDirector { get; set; }
}
您的方法代码如下所示:

 //Create a movie and set the name property
 Movie m = new Movie();
 m.Name = "Matrix";

 //Create a director and set the name property
 Director d = new Director();
 d.Name = "Someone";

 //Assign the director to the movie by setting the MovieDirector property
 m.MovieDirector = d;

 //Print out the movie's director's name.
 Console.WriteLine(m.MovieDirector.Name);

还有一种使用对象初始值设定项的简写语法:

Movie m = new Movie
{
    Name = "Matrix",
    MovieDirector = new Director { Name = "Someone" }
};

DirectorName不是字符串。所以你不能给它分配一个字符串。你可以给它指派一个主管。由于DirectorName属性实际上代表一个控制器,因此它的名称很差。将电影类更改为:

public class Movie
{
     public string Name { get; set; }

     public Director MovieDirector { get; set; }
}
您的方法代码如下所示:

 //Create a movie and set the name property
 Movie m = new Movie();
 m.Name = "Matrix";

 //Create a director and set the name property
 Director d = new Director();
 d.Name = "Someone";

 //Assign the director to the movie by setting the MovieDirector property
 m.MovieDirector = d;

 //Print out the movie's director's name.
 Console.WriteLine(m.MovieDirector.Name);

还有一种使用对象初始值设定项的简写语法:

Movie m = new Movie
{
    Name = "Matrix",
    MovieDirector = new Director { Name = "Someone" }
};

DirectorName
是一种类型的
Director
,您试图将字符串值传递给它。
DirectorName
是一种类型的
Director
,您正在尝试将字符串值传递给它。

DirectorName属于Director类型-不是字符串-您无法将字符串分配给DirectorName属于Director类型-不是字符串-您无法将字符串分配给DirectorName类型-然后他将获得NullReferenceException,因为他从不创建
DirectorName
。然后他将获得NullReferenceException,因为他从不创建
DirectorName