簡體   English   中英

什么是C#中的NZEC錯誤以及以下代碼段的位置

[英]What is NZEC error in C# and where it is in following code snippet

這是我第一次遇到NZEC錯誤。 我不理解此錯誤,我只是發現它代表“非零退出代碼”。 但這意味着什么。 當我們得到這個錯誤。 我在一個在線編碼挑戰網站上而不是在Visual Studio中收到此錯誤。 我真的很需要幫助。 請檢查以下代碼段,我在哪里出現此錯誤,並建議我做錯了什么。

using System;
using System.Collections.Generic;
using System.Linq;

namespace PractiseConsoleApplication
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            //Get input
            var stringInput = Console.ReadLine();

            var numberOfRooms = Convert.ToInt32(Console.ReadLine());

            var endOfInput = Convert.ToInt32(Console.ReadLine());

            var customers = stringInput.ToArray();

            var hotel = new Hotel(numberOfRooms);

            foreach (var customerName in customers)
            {
                hotel.CheckInCheckoutCustomer(customerName);
            }

            Console.WriteLine(Convert.ToString(hotel.CustomersLeftWithoutStayingInHotel.Count));
        }
    }

    internal class Hotel
    {
        public bool IsRoomAvailable { get; private set; }

        public List<HotelRoom> Rooms { get; private set; }

        public List<char> CustomersLeftWithoutStayingInHotel { get; private set; }

        private Hotel()
        {
            Rooms = new List<HotelRoom>();
            CustomersLeftWithoutStayingInHotel = new List<char>();
        }

        public Hotel(int numberOfRooms)
            : this()
        {
            for (int i = 1; i <= numberOfRooms; i++)
            {
                Rooms.Add(new HotelRoom(i));
            }
        }

        public void CheckInCheckoutCustomer(char customer)
        {
            if (CustomersLeftWithoutStayingInHotel.Any(f => f == customer))
            {
                return;
            }

            var existingCustomer = Rooms.FirstOrDefault(f => f.IsRoomAllocatedToCustomer  && f.CustomerName == customer);

            //Already room allocated to this customer
            if (existingCustomer != null)
            {
                //checkout him
                existingCustomer.CustomerCheckout();
            }
            else
            {
                //Get empty rooms
                var emptyRoom = Rooms.FirstOrDefault(f => f.IsRoomAllocatedToCustomer == false);

                if (emptyRoom != null)
                {
                    emptyRoom.AllocateRoomToCustomer(customer);
                }
                else
                {
                    CustomersLeftWithoutStayingInHotel.Add(customer);
                }
            }
        }
    }

    internal class HotelRoom
    {
        public int RoomNumber { get; private set; }

        public char? CustomerName { get; private set; }

        public HotelRoom(int roomNumber)
        {
            RoomNumber = roomNumber;
            CustomerName = null;
        }

        public bool IsRoomAllocatedToCustomer
        {
            get
            {
                return CustomerName.HasValue;
            }
        }

        public void AllocateRoomToCustomer(char customerDetails)
        {
            CustomerName = customerDetails;
        }

        public void CustomerCheckout()
        {
            CustomerName = null;
        }
    }

    internal class Customer
    {
        public char CustomerName { get; private set; }

        public Customer(char name)
        {
            CustomerName = name;
        }
    }
}

正如Tony Hopkinson在評論中所說,main應該返回一個int。
將此語句放在main方法的末尾:

return 0;

這將以零代碼退出(因此非零退出代碼錯誤)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM