Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

166
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!