Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

170
Vistas
¿Es Switch-case suficiente para crear varios pasos en una aplicación de consola para la modularización?

Quiero modificar una aplicación de consola, para modularizarla (en C#). La salida debe pedir entrada por módulo para que haya dos pasos antes de llegar a la operación. El primero es Módulo y el segundo es Operación en ese Módulo. Por ejemplo, la salida actual es:

 1. Add a member to A 2. View all members of A 3. Add a member to B 4. View all members of B 5. Add a member to C 6. View all members of C

Estoy usando la declaración de cambio de caso para elegir una opción en la entrada del usuario y realizar una operación en ella. Después de la modularización, quiero obtener un resultado como:

 1. A 2. B 3. C

Después de seleccionar 1 como entrada de usuario, la salida debería ser como:

 1.1. Add element to A 1.2. View all elements of A

y así sucesivamente para el resto de las entradas del usuario. Ahora de nuevo cuando entro en 1.1. o 1.2., se realiza la operación final y se llama al método. ¿Cómo debo proceder?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Si lo entendí correctamente, desea crear un menú interactivo CLI (interfaz de línea de comandos) con submenús.

Para ese propósito, puede buscar en línea un marco C# MVC CLI con las funciones que desea (algunas buenas palabras clave para buscar en Google podrían ser " c# cli menu " y frases equivalentes)

Si desea implementarlo usted mismo, considere primero una separación de la interfaz de usuario y la lógica. Sus clases de IU solo deben preocuparse por el estado actual de la IU y las entradas del usuario. Para llamar a la lógica dinámicamente, un diccionario de devoluciones de llamada en la clase Vista podría ser una solución simple, como en el momento de la confirmación, dado el estado actual de las devoluciones de llamada [selección] si se cumplen los criterios.

Como nota final, creo que lo estás sobredimensionando. Una sangría más simple podría hacer el truco más fácilmente, ya que estamos hablando de una CLI.

 1. A 1.1 view member 1.2 add member 2. B 2.1 whatever
over 4 years ago · Santiago Trujillo Denunciar

0

Si solo desea un menú de cambio simple, solo vea mi demostración:

Siéntase libre de modificar este código de acuerdo a sus necesidades.

 using System; namespace ConsoleApp5 { internal class Program { static void Main(string[] args) { MainMenu(); Console.ReadLine(); int MainMenu() { while (true) { Console.WriteLine("\nPlease select menu item (key in 1-3): "); Console.WriteLine("1.A"); Console.WriteLine("2.B"); Console.WriteLine("3.C"); int choice; int.TryParse(Console.ReadLine(),out choice); switch (choice) { case 1: AMenu(); break; case 2://to do break; case 3://to do break; default: Console.WriteLine("\nInvalid input!\n"); break; } Console.WriteLine("\nIf you want to continue, press y, otherwise, press any other key!"); string ct = Console.ReadLine(); if (ct != "y") break; } return 0; } int AMenu() { while (true) { Console.WriteLine("\nPlease select menu item (key in 1.1-1.2): "); Console.WriteLine("1.1. Add element to A"); Console.WriteLine("1.2. View all elements of A"); double choice; double.TryParse(Console.ReadLine(), out choice); if (choice == 1.1) choice = 1; else if (choice == 1.2) choice = 2; switch (choice) { case 1: Console.WriteLine("Add element to A"); ; break; case 2: Console.WriteLine("View all elements of A"); break; default: Console.WriteLine("\nInvalid input!\n"); break; } Console.WriteLine("\nIf you want to continue, press y, otherwise, press any other key!"); string ct = Console.ReadLine(); if (ct != "y") break; } return 0; } } } }

Producción:

ingrese la descripción de la imagen aquí

Si tiene preguntas sobre mi código, por favor comente a continuación.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda