Echo en Mono, por lo que tambien funciona para este, util para hacer algo sencillo lo de la consola, y puede mejorarse mucho
using System;
class Menu
{
static void Main()
{
int opcion=1;
Console.Clear();
Console.SetCursorPosition(20,1);
System.Console.WriteLine("Opciones");
Console.SetCursorPosition(16, 3);
System.Console.WriteLine("[ ]Opcion 1");
Console.SetCursorPosition(16, 4);
System.Console.WriteLine("[ ]Opcion 2");
Console.SetCursorPosition(16, 5);
System.Console.WriteLine("[ ]Opcion 3");
armar(opcion);
while(true){
if(Console.KeyAvailable){
ConsoleKeyInfo keyInfo = Console.ReadKey(true);
if (keyInfo.Key==ConsoleKey.DownArrow){
borrar(opcion);
opcion=sumarrestar(opcion,true);
armar(opcion);
}
if (keyInfo.Key==ConsoleKey.UpArrow){
borrar(opcion);
opcion=sumarrestar(opcion,false);
armar(opcion);
}
if (keyInfo.Key==ConsoleKey.Enter){
//Codigo a ejecutar al hacer enter en algun item del menu
Console.Beep();
//Fin del codigo
}
}
}
}
static void armar(int opcion){
if(opcion==1){
Console.SetCursorPosition(17, 3);
System.Console.WriteLine("+");
}
if(opcion==2){
Console.SetCursorPosition(17, 4);
System.Console.WriteLine("+");
}
if(opcion==3){
Console.SetCursorPosition(17, 5);
System.Console.WriteLine("+");
}
}
static void borrar(int opcion){
if(opcion==1){
Console.SetCursorPosition(17, 3);
System.Console.WriteLine(" ");
}
if(opcion==2){
Console.SetCursorPosition(17, 4);
System.Console.WriteLine(" ");
}
if(opcion==3){
Console.SetCursorPosition(17, 5);
System.Console.WriteLine(" ");
}
}
static int sumarrestar(int asumar,bool sumaoresta){
if(sumaoresta==true){
if(asumar<3){
asumar=asumar+1;
}else{
asumar=1;
}
}
if(sumaoresta==false){
if(asumar>1){
asumar=asumar-1;
}else{
asumar=3;
}
}
return asumar;
}
}