在C#中打印对象[]。值

时间:2017-08-10 18:34:47

标签: c# class object

我正在研究一个项目而且我是c#的新手。 所以,我必须将一些文件中的值传递给一个Object,我想通过打印来检查它们是否正确传递,但是无法找到方法。 我有一个班级酒店,我想把值放在

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

使用Main的正在运行类,其中一切都已完成

    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"。如果有人可以提供帮助或建议我会很感激。另外,如果我发错了,我真的很抱歉。提前谢谢。

1 个答案:

答案 0 :(得分:4)

您的问题是您的类的属性不公开,默认情况下它们是私有的。要让他们从课堂外访问它们,将它们设置为公开!像这样:

cars
 3282jasjd893j:
     item: doors
 819idid82jkdf:
     item: windows
 fjf842jr8448r:
     item: audi

此处提供更多信息:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers

P.S。这些代码行是没有意义的:

 3282jasjd893j:
     item: doors

尝试用它替换它们:

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

基本上你正在做的是制作一个大小为0的酒店数组(你为什么要这样?),然后用一个大小为3的新数组替换那个数组。我提供的新代码只是创建一个大小的数组3第一次。