C# 代码C有问题吗

C# 代码C有问题吗,c#,C#,这是一个简单的用于出租房间的控制台应用程序。我对方法Bill有问题,当我测试应用程序时,它总是0。我用房间的价格预订了好几天,但有些地方不对劲。有人能帮我吗 static void Main(string[] args) { Room RoomOne = new Room(11, 1, 6, false); Room RoomTwo = new Room(21, 2, 5, false); Room RoomThree = new Room

这是一个简单的用于出租房间的控制台应用程序。我对方法Bill有问题,当我测试应用程序时,它总是0。我用房间的价格预订了好几天,但有些地方不对劲。有人能帮我吗

static void Main(string[] args)
    {
        Room RoomOne = new Room(11, 1, 6, false);
        Room RoomTwo = new Room(21, 2, 5, false);
        Room RoomThree = new Room(31, 3, 9, true);
        Customer CustomerOne = new Customer("Bob Marley", "Male", 39, 1);
        Customer CustomerTwo = new Customer("Isaac Newton", "Male", 67, 2);
        Customer CustomerThree = new Customer("Frankenstein", "Male", 50, 3);
        Console.WriteLine("");
        CustomerOne.ReserveRoom();
        RoomOne.IsRoomOccupied();
        Console.WriteLine("");
        CustomerTwo.ReserveRoom();
        RoomTwo.IsRoomOccupied();
        Console.WriteLine("");
        CustomerThree.ReserveRoom();
        RoomThree.IsRoomOccupied();
        Console.ReadKey();
    }

class Customer : Room
{
    private string Name;
    private string Gendre;
    private int Age;
    private int ID;

    public Customer()
    {
    }

    public Customer(string name, string gendre, int age, int id)
    {
        Name = name;
        Gendre = gendre;
        Age = age;
        ID = id;
    }

    public void ReserveRoom()
    {
        Console.WriteLine("Welcome to Plaza Hotel!!!\nWhat kind of room would you like? We have Standard, Moderate and Superior.");
        string roomtype = Console.ReadLine();

        switch (roomtype)
        {
            case "Standard":
                    {
                        Standard RoomOne = new Standard();
                    }
                    break;
            case "Moderate":
                    {
                        Standard RoomTwo = new Standard();
                    }
                    break;
            case "Superior":
                    {
                        Standard RoomThree = new Standard();
                    }
                    break;
            default:
                {
                    Console.WriteLine("That type of room doesn't exist!!!");
                }
                break;
        }
    }
}

 class Room
{
    private int RoomNumber;
    private int FloorNumber;
    private double Price;
    private int NumberOfDaysOccupied;
    private bool Occupied = false;
    private string TypeOfRoom;

    public Room()
    {

    }
    public Room(int room, int floor,int nodo, bool occupied)
    {
        RoomNumber = room;
        FloorNumber = floor;
        NumberOfDaysOccupied = nodo;
        Occupied = occupied;
    }

    public void NumberOfRoom()
    {
        Console.WriteLine("Room number is: {0}", RoomNumber);
    }

    public void NumberOfFloor()
    {
        Console.WriteLine("Floor number is: {0}", FloorNumber);
    }

    public double Bill()
    {
        return NumberOfDaysOccupied * Price;
    }

    public void IsRoomOccupied()
    {
        if (Occupied == true)
        {
            Console.WriteLine("This type of room is occupied!!!");
        }
        else
        {
            Console.WriteLine("Your room number is: {0} on floor: {1}, reserve for: {2} and your bill is: {3}" ,RoomNumber, FloorNumber, NumberOfDaysOccupied, Bill());
        }
    }

    public class Standard : Room
    {
        public Standard()
        {
            Price = 50;
            TypeOfRoom = "Standard";
        }
    }

    public class Moderate : Room
    {
        public Moderate()
        {
            Price = 100;
            TypeOfRoom = "Moderate";
        }
    }

    public class Superior : Room
    {
        public Superior()
        {
            Price = 200;
            TypeOfRoom = "Superior";
        }
    }
}

您的标准/中等/高级类继承Room,但不要调用Room上设置价格的构造函数。当您不提供要调用的基类构造函数时,将调用默认构造函数,该构造函数不设置任何选项

您需要更新房间,使其更像:

public class Standard : Room
{
    public Standard(int room, int floor, int nodo, bool occupied)
        : base(room, floor, nodo, occupied)
    {
        Price = 50;
        TypeOfRoom = "Standard";
    }
}
然后将您的房间设置为:

Room standardRoom = new Standard(11, 1, 6, false);

只发布我们需要的信息,而不是整个代码。代码甚至都没有为我编译。检查你的构造函数参数。我删除get并将属性设置为short code…@Bojan只发布所需的代码。如果问题出在某个特定的方法上,那么在调试器中为Bill设置断点并检查NumberOfDaysOccupied和Price时,只发布该方法以及理解该方法所需的任何信息。您找到了什么?您是在查看Room对象上的Price属性,还是标准对象上的Price属性?a不明白。。。在何处更改此代码室standardRoom=新标准11,1,6,错误;在我的主方法中或在预订室中…很难从您发布的代码中知道您想要实现什么,但可能是在您的主方法中。