Консольное приложение C # для аукционной системы, возникли проблемы с запросом имени элемента

#c# #visual-studio-2010 #console-application

#c# #visual-studio-2010 #консольное приложение

Вопрос:

Я справился со своей первоначальной проблемой, мне пришлось добавить разрыв; но теперь аукцион запрашивает дату товара, начальную цену и резерв, но по какой-то причине, когда я добавляю все это, а затем перехожу к поиску товара, там просто написано существующие аукционы: Аукцион как мне заставить его отображать название, еще раз извините за мою «наивность», но я добиваюсь своего:D кстати, большое вам спасибо за отличную помощь

 {
case place_auction:
    {
        screen.DisplayMessage("Please Enter a title for your Auction Item");
        string ItemName = Convert.ToString(Console.ReadLine());
        screen.DisplayMessage("Enter a start price for your item:");
        double startPrice = Convert.ToDouble(Console.ReadLine());
        screen.DisplayMessage("Now enter your reserve price for your item:");
        double reservePrice = Convert.ToDouble(Console.ReadLine());
        screen.DisplayMessage("Enter the closing date for your auction:");
        DateTime closeDate = Convert.ToDateTime(Console.ReadLine());

        // creating the auction
        Auction aucttion = new Auction(ItemName, startPrice, reservePrice, closeDate);

        // auction is entering auction list.
        auctionList.Add(aucttion);

        Console.WriteLine("auction is now created :)");
        Console.WriteLine("Auction details are as follows:");
        Console.WriteLine("Item name"   ItemName);
        Console.WriteLine("The Starting Price"   startPrice);
        Console.WriteLine("The Reserve Price"   reservePrice);
        Console.WriteLine("Closing date of this auction"   closeDate);
    }
case browse_auction:
    {
        if (auctionList.Count > 0)
        {
            Console.WriteLine("Existing Auctions:");
            foreach (Auction aucttion in auctionList)
            {
                Console.WriteLine("Auction");
            }

        }
        else
        {
            Console.WriteLine(" No existing auction appearing on the system");
        }

        break;
    }
case locate_auction:
    {
        screen.DisplayMessageLine("Insert Auction ID: ");
        break;
    }
case exit:
    {
        screen.DisplayMessageLine("");
        screen.DisplayMessageLine("System Shutting Down!");
        userExit = true;
        break;
    }
default:
    {
        screen.DisplayMessageLine("");
        screen.DisplayMessageLine("Selection was not recognisable, please try again");
        break;
    }
}
  

Комментарии:

1. Можете ли вы сообщить нам о сообщении об ошибке, которое вы получаете из этого кода?

2. ошибка заключается в том, что элемент управления не может перейти с одной метки обращения (‘case1:’) на другую

Ответ №1:

Вам нужно добавить оператор break; в конце вашего первого обращения:

 case place_auction:
    {
        /* snipped */
        Console.WriteLine("The Starting Price"   startPrice);
        Console.WriteLine("The Reserve Price"   reservePrice);
        Console.WriteLine("Closing date of this auction"   closeDate);
        break;
    }
  

Что касается второй части вашего вопроса (при условии, что аукцион имеет свойство с именем «ItemName»):

     Console.WriteLine(string.Format("Auction: {0}", auction.ItemName));
  

Комментарии:

1. блестяще, теперь у меня все заработало, спасибо, но теперь, когда я просматриваю свои товары, оно не отображается, я ввожу имя, дату, начальную цену и резерв, но мне чего-то не хватает, что при просмотре моего аукциона товар не отображается

2. Я предполагаю, что auctionList — это статическое свойство или что-то подобное. Не видя всей программы, я не уверен, что смогу вам чем-то помочь.

3. да, я понимаю, приятель, ты видишь этот фрагмент: если (список аукционов. Количество > 0) { Консоль. WriteLine(«Существующие аукционы:»); foreach (аукционный аукцион в списке аукционов) { Консоль. WriteLine(«Auction:»); } как бы мне заставить это показывать имя элемента после того, как оно говорит «Аукцион»:

4. @Paul Rogers: Пожалуйста, прочтите это :). meta.stackexchange.com/questions/10811 /…

5. Я сидел, пытаясь разобраться в этом, в течение 4 часов сегодня и примерно 2 недель, я бы не обратился за помощью, если бы действительно не застрял, спасибо за совет, я постараюсь заставить его работать, хотя я все еще не уверен, куда добавить вторую часть в моем кодировании

Ответ №2:

После вашего первого обращения вам не хватает инструкции break.

Комментарии:

1. я полностью новичок в этом, я не знаю, что это значит или куда это поместить

2. break сообщает элементу управления остановиться, когда он видит инструкцию break. Если у вас есть несколько обращений в вашей инструкции switch без перерыва, и если переменная, которую вы переключаете, вызывает обращение 1, она начнет выполняться в случае 1 и продолжит выполнение либо до тех пор, пока не достигнет конца инструкции switch, либо не столкнется с прерыванием. Следовательно, при отсутствии ‘break’ оно завершит выполнение case i и продолжит выполнение case (i 1).

3. У вас есть инструкция switch («переключить (значение) { … } «), содержащее некоторые операторы case (» case (значение) { … }»). Правила для операторов case заключаются в том, что вы не можете переходить от одного к следующему, если в case нет кода. «break;» в конце каждой инструкции предотвращает переход выполнения к следующему обращению.