gpt4 book ai didi

c# - 在c#中制作简单的控制台菜单

转载 作者:行者123 更新时间:2023-11-30 15:35:05 26 4
gpt4 key购买 nike

我想用 C# 制作一个简单的菜单,例如:像这样的东西应该从控制台打印出来:

FirstOption 
SecondOption
Exit

到目前为止,这是我的代码(在命名和封装方面存在问题,但这只是快速原型(prototype),花了大约 30 分钟):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
Menu StartGame = new Menu("Start Game");
Menu EndGame = new Menu("End Game");
Console.WriteLine(StartGame);
Console.WriteLine(End Game);
EndGame.isChecked = false;
}
}

class Menu
{
private string Content;
public bool isChecked = true;

public Menu(string Content)
{
this.Content = Content;
}
public void CheckCondition()
{
if (isChecked)
{
Console.BackgroundColor = ConsoleColor.White;
Console.ForegroundColor = ConsoleColor.Black;
}
else
{
Console.ResetColor();
}
}
public override string ToString()
{
this.CheckCondition();
return this.Content;
}
}
}

这个想法是当一个按钮被点击时菜单项被高亮显示。当一个人来到最后一个菜单项时,他不能再次按 DownArrow,第一个项目和 UpArrow 也是如此。

我完全被这个困住了。

最佳答案

我不完全确定.. 可能这可以帮助您入门。

while (true)
{
var ch = Console.ReadKey(false).Key;
switch (ch)
{
case ConsoleKey.UpArrow:
HighlightStartGame();
break;

case ConsoleKey.DownArrow:
HighlightEndGame();
break;
}
}
static void HighlightStartGame()
{
Console.Clear();
Console.ResetColor();
StartGame.isChecked = true;
Console.WriteLine(StartGame);
EndGame.isChecked = false;
Console.WriteLine(EndGame);

}

static void HighlightEndGame()
{
Console.Clear();
Console.ResetColor();
StartGame.isChecked = false;
Console.WriteLine(StartGame);
EndGame.isChecked = true;
Console.WriteLine(EndGame);

}

关于c# - 在c#中制作简单的控制台菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463099/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com