如何解决如何为控制台应用程序制作合适的C#菜单?
我有一个按键功能,我猜对D1到D0有反应。
根据我按下的键,它会跳到开关盒上。
看起来像这样:
static void Main(string[] args)
{
const ConsoleKey showProductsKey = ConsoleKey.D1;
const ConsoleKey createProductKey = ConsoleKey.D2;
const ConsoleKey updateProductKey = ConsoleKey.D3;
const ConsoleKey deleteProductKey = ConsoleKey.D4;
const ConsoleKey showCategoriesKey = ConsoleKey.D5;
const ConsoleKey createCategoryKey = ConsoleKey.D6;
const ConsoleKey updateCategoryKey = ConsoleKey.D7;
const ConsoleKey deleteCategoryKey = ConsoleKey.D8;
while (true)
{
Console.WriteLine("Press 1 : Show Products");
Console.WriteLine("Press 2 : Create Product");
Console.WriteLine("Press 3 : Update Product");
Console.WriteLine("Press 4 : Delete Product\n");
Console.WriteLine("Press 5 : Show Categories");
Console.WriteLine("Press 6 : Create Category");
Console.WriteLine("Press 7 : Update Category");
Console.WriteLine("Press 8 : Delete Category\n\n");
ConsoleKey pressedKey = PressedKey();
switch (pressedKey)
{
//-------------------------- PRODUCTS -----------------------------------------//
case showProductsKey:
Database.ShowProducts();
Console.WriteLine("\n");
break;
case createProductKey:
Console.Write("Indtast Produktnavn: ");
string createproductname = Console.ReadLine();
Console.Write("Hvor mange er der på lager?: ");
int createproductstock = int.Parse(Console.ReadLine());
Console.Write("Hvilken kategori ID hører produktet til?: ");
int createproductcategoryid = int.Parse(Console.ReadLine());
Console.Write("Hvilket medarbejder ID har oprettet produktet?: ");
int createproductemployeeid = int.Parse(Console.ReadLine());
try
{
Database.CreateProduct(createproductname,createproductstock,createproductcategoryid,createproductemployeeid);
Console.WriteLine("\n" + createproductname + " Oprettet med success!\n\n");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
break;
case updateProductKey:
Console.Write("Hvilket produkt ID vil du redigere?: ");
string updateproductid = Console.ReadLine();
Console.Write("Indtast nyt Produktnavn: ");
string updateproductname = Console.ReadLine();
Console.Write("Hvor mange er der på lager?: ");
int updateproductstock = int.Parse(Console.ReadLine());
Console.Write("Hvilken kategori ID hører produktet til?: ");
int updateproductcategoryid = int.Parse(Console.ReadLine());
Console.Write("Hvilket medarbejder ID har rettet produktet?: ");
int updateproductemployeeid = int.Parse(Console.ReadLine());
try
{
Database.UpdateProduct(updateproductname,updateproductstock,updateproductcategoryid,updateproductemployeeid,updateproductid);
Console.WriteLine("\n" + updateproductname + " Opdateret med success!\n\n");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
break;
case deleteProductKey:
Console.Write("Hvilket produkt ID vil du slette?: ");
string deleteproduct = Console.ReadLine();
Database.DeleteProduct(deleteproduct);
Console.WriteLine("\n" + "ID: " + deleteproduct + " Slettet med success!\n\n");
break;
//-------------------------- CATEGORIES -----------------------------------------//
case showCategoriesKey:
Database.ShowCategories();
Console.WriteLine("\n");
break;
case createCategoryKey:
Console.Write("Indtast kategorinavn: ");
string createcategoryname = Console.ReadLine();
try
{
Database.CreateCategory(createcategoryname);
Console.WriteLine("\n" + createcategoryname + " Oprettet med success!\n\n");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
break;
case updateCategoryKey:
Console.Write("Hvilket produkt ID vil du redigere?: ");
string updatecategoryid = Console.ReadLine();
Console.Write("Indtast nyt kategorinavn: ");
string updatecategoryname = Console.ReadLine();
try
{
Database.UpdateCategory(updatecategoryname,updatecategoryid);
Console.WriteLine("\n" + updatecategoryname + " Opdateret med success!\n\n");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
break;
case deleteCategoryKey:
Console.Write("Hvilket kategori ID vil du slette?: ");
string deletecategory = Console.ReadLine();
Database.DeleteCategory(deletecategory);
Console.WriteLine("\n" + "ID: " + deletecategory + " Slettet med success!\n\n");
break;
}
}
ConsoleKey PressedKey()
{
do
{
while (!Console.KeyAvailable);
ConsoleKey pressed = Console.ReadKey(true).Key;
if (pressed == showProductsKey || pressed == createProductKey || pressed == updateProductKey || pressed == deleteProductKey ||
pressed == showCategoriesKey || pressed == createCategoryKey || pressed == updateCategoryKey || pressed == deleteCategoryKey)
return pressed;
Console.Clear();
} while (true);
}
}
但是我在该程序中需要更多功能,有没有办法将它们分开? 我在想是否要转到产品上,请单击D1。然后我显示菜单
const ConsoleKey showProductsKey = ConsoleKey.D1;
const ConsoleKey createProductKey = ConsoleKey.D2;
const ConsoleKey updateProductKey = ConsoleKey.D3;
const ConsoleKey deleteProductKey = ConsoleKey.D4;
我试图说一个话,如果ConsoleKey.D1 == true和其他很多..我不确定什么是正确/最聪明的方法。
但是在我看来,我想我想要一份菜单, 按1查看产品菜单 按2进入类别菜单 按3进入员工菜单 等等。
,然后单击其中之一: 按1列出产品 按2创建产品 按3编辑产品 按4删除产品
那样的东西会膨胀吗? 我是一名业余程序员,试图通过制作某种仓库控制台应用程序来学习C#。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。