2017-08-10 120 views
0

我正在開發一個項目,而且我也是C#的新手。 所以,我必須從文件傳入一些值到一個對象,我想檢查它們是否通過打印正確傳遞,但無法找到方法。 我有一個類酒店我想要把值在C#中打印對象[]。值#

public class Hotel 
{ 
    int id { get; set; } 
    string name { get; set; } 
    int stars { get; set; } 
    int numberOfRooms { get; set; } 
    public Hotel(int Id, string Name, int Stars, int NumberOfRooms) 
    { 
     id = Id; 
     name = Name; 
     stars = Stars; 
     numberOfRooms = NumberOfRooms; 
    } 
} 

而且運行類主要的一切是做

public class Running 
    { 
     static void Main(string[] args) 
     { 
      Hotel[] hotel = new Hotel[0]; 
      hotel = new Hotel[3]; 
      int Id = 0; 
      string Name = ""; 
      int Stars = 0; 
      int NumberOfRooms = 0; 
      //... 
      //code for reading file and passing the values into Id, Name, Stars, NumberOfRooms 
      hotel[0] = new Hotel(Id, Name, Stars, NumberOfRooms); 
     } 
    } 

我試過例如Console.WriteLine(hotel[0].name);等「組合「,但得到編譯錯誤。只有Console.WriteLine(hotel);似乎打印「Project.Hotel」。如果有人可以提供幫助或建議,我將不勝感激。另外,如果我錯誤地發音,我真的很抱歉。先謝謝你。

+3

嗨,歡迎來到Stack Overflow。 'name'是'Hotel'的私有屬性,這可能是您在嘗試使用'Console.WriteLine(hotel [0] .name);'時得到的錯誤消息。很可能你想要公開這些屬性。請考慮發佈編譯器在將來的問題中給出的錯誤消息,因爲這可以讓人們更容易幫助您。 –

+0

您可以重寫'ToString'來獲得更好的'Console.WriteLine(hotel)'輸出。 'hotel [0] .name'不起作用,因爲'name'是私人的(默認)。 – juharr

+0

@ LasseV.Karlsen非常感謝您的通知,這確實是錯誤,併爲您提供建議! – PeterS

回答

4

你的問題是你的類的屬性是不公開的,它們默認是私有的。讓他們可以從課外訪問將他們設置爲公開!就像這樣:

public int id { get; set; } 
public string name { get; set; } 
public int stars { get; set; } 
public int numberOfRooms { get; set; } 

點擊此處瞭解詳情:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

附:你的代碼的這些線是一種毫無意義的:

Hotel[] hotel = new Hotel[0]; 
hotel = new Hotel[3]; 

嘗試用這種替代它們:

Hotel[] hotel = new Hotel[3]; 

基本上你正在做的是使大小爲0的家(爲什麼你曾經想要的數組那麼?),然後用大小爲3的新數組替換該數組。我提供的新代碼僅在第一次創建大小爲3的數組。

+0

非常感謝您的快速回復!編譯錯誤是固定的,但輸出是空白的。事先,我打印'Name'本身'Console.WriteLine(Name);'來檢查它是否是空白的,但它是正確的。如果你能在我的代碼中發現任何錯誤,那將是非常有用的。如果沒有,沒關係,你已經完成了你的工作來幫助 – PeterS

+0

@PeterS很高興能有幫助。如果您可以將此標記爲答案,讓其他人知道這解決了您的問題,那就太棒了!至於你的名字是空白的問題,我認爲這歸結於閱讀和解析文件信息的問題。但是你已經將它留作評論,所以我無法確定。如果你提供它,我可以更好地幫助你。 –

+0

您是否檢查了'Name' _after_從文件中讀取數據的值?我能想到的一個原因是,當你從文件中讀取數據時,你會以某種方式覆蓋變量。 – Sach