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