我的 c# 控制臺應用程式中有以下選單選項。
選單
當用戶選擇選項 2 時,用戶可以看到分頁格式的產品。用戶輸入 0 后,我需要再次進入主選單。我不確定如何作為其控制臺應用程式執行此操作。一旦用戶完成產品分頁的事情,他應該能夠回傳到主選單。我被卡住了。
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
var shouldRun = true;
DisplayOptions();
while (shouldRun )
{
Console.Write("Enter an option: ");
var input = Console.ReadKey();
Console.WriteLine("\n");
ConsoleKeyInfo selectedCurrency ;
var currencyName = "USD";
switch (input.Key)
{
case ConsoleKey.NumPad1:
case ConsoleKey.D1:
Console.WriteLine("Printing all products");
OutputAllProduct(currencyName);
break;
case ConsoleKey.NumPad2:
case ConsoleKey.D2:
Console.WriteLine("Printing paginated products");
PaginatedProducts();
break;
case ConsoleKey.Q:
shouldRun = false;
break;
default:
Console.WriteLine("Invalid option!");
break;
}
Console.WriteLine();
DisplayOptions();
}
Console.Write("\n\rPress any key to exit!");
Console.ReadKey();
await _host.StopAsync(stoppingToken);
}
public void OutputPaginatedProducts()
{
int totalPages = products.Count() / 5;
do
{
Console.Write($"Please Enter Page number from 1 to {totalPages} or press 0 to exit\n");
int pageNumber;
if (int.TryParse(Console.ReadLine(), out pageNumber))
{
if (pageNumber >= 1 && pageNumber <= totalPages)
{
IEnumerable<Product> result = products.Skip((pageNumber - 1) * 5).Take(5);
Console.WriteLine();
Console.WriteLine("Displaying page: " pageNumber);
foreach (Product product in result)
{
Console.WriteLine($"ID : {product.Id}\t Product Name : {product.ProductName}\tPrice : {product.Price} \tCurrency : {product.Price} {Currency.USD}");
}
Console.WriteLine();
}
else if(pageNumber==0)
{
Environment.Exit(0);
}
}
else
{
Console.WriteLine($"Page number must be integer between 1 and {totalPages}");
}
} while (1==1);
}
uj5u.com熱心網友回復:
只需讓方法回傳即可。
而不是打電話Environment.Exit(0);
你需要放一個breakorreturn那里
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/524198.html
標籤:C#。网.net-core控制台应用程序.net-6.0
