Создать n объектов, указанных пользователем в C #

1

У меня есть программа лифта, в которой пользователь вводит количество людей, которые будут созданы.

Как только количество людей будет создано, им необходимо по одному запросить лифт.

Код для класса объекта person:

class Person
{
    public int currentFloor;
    public int destinationFloor;
    public bool requestMade; // user does not request until inside the lift
    public bool isWaiting;

    // manual
    public Person(int currentFloor, int destinationFloor)
    {
        this.currentFloor = currentFloor;
        this.destinationFloor = destinationFloor;
    }

    // automatic
    public Person()
    {
        var r = new Random();
        currentFloor = r.Next(0, 4); // assign random floor as current (5 lifts)
        assignRandomDestination(); // assign random floor for destination but cannot be the same as current, else randomise destination again
    }

    private void assignRandomDestination()
    {
        var r = new Random();
        destinationFloor = r.Next(0, 4);

        if (destinationFloor == currentFloor)
        {
            assignRandomDestination();
        }
    }

    public void state(Person person, bool waiting)
    {
        if (waiting == true) { person.isWaiting = true; } else { person.isWaiting = false; }
    }

    public bool request()
    {
        return requestMade;
    }
}

И как я мог бы назвать их индивидуально?

  • 0
    Создайте List<Person> и используйте цикл, чтобы позволить пользователю добавлять в него
  • 0
    Я бы держал коллекцию людей в коллекции - например, List <Person>. КСТАТИ: Просто быстрый комментарий: публичное пустое состояние (человек человек, ожидание bool) странно. Если вы хотите знать «состояние» «человека», вам не нужно «сообщать человеку, кто он», то есть передавать его в качестве параметра.
Показать ещё 8 комментариев
Теги:
object
variables

1 ответ

0

Вы должны сделать еще один класс для лифта и добавить System.Collections.Generic.

  List<Person> passenger = new List<Person>();

  //Make an Instance of your Person.
  Person my1stperson = new Person();

  //Access their member by dot operator.
  my1stperson.currentFloor = 13;

  //After setting their fields; You can add them to the list by.
  passenger.Add(my1stperson);

  // if you have an Elevator class with currentLocation field on the elevator.

  Elevator.currentLocation = passenger[0].currentFloor; //<- only works if the field is static. Or use the Index. LinQ also works for list. Enumerables etc.

  //If not static, Instantiate the Elevator Class.
  Elevator myElevator = new Elevator();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню