2017-04-20 107 views
0

能否請你讓創建物業自其他類我知道爲什麼我收到此錯誤錯誤在另一個類

CS0029無法隱式轉換類型「字符串」到「UserQuery.Director」

on

m.DirectorName =「Someone」;

在:

void Main() 
{ 
    Movie m = new Movie(); 
    m.Name = "Matrix"; 
    m.DirectorName = "Someone"; 
    Console.WriteLine(m.Name); 
} 

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

public class Movie 
{ 
    public string Name { get; set;} 
    public Director DirectorName { get; set; } 
} 
+0

DirectorName的類型爲Director - 不是字符串 - 您不能將字符串分配給Director類型 –

回答

3

DirectorName不是字符串。所以你不能給它分配一個字符串。您可以將Director分配給它。由於DirectorName屬性實際上代表了Director,所以它的命名很差。改變你的電影類這樣的:

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" } 
}; 
-1

在你的類的電影,你必須一類的引用。如果要更改導演類中的字符串,請執行m.DirectorName.Name

+2

然後,他將得到NullReferenceException,因爲他從不創建'DirectorName'。 –

0

DirectorNameDirector的一種,您嘗試將字符串值傳遞給它。