Je suis en train de créer une application de console pour aider à expier certaines choses que je fais régulièrement. J'ai un menu avec 4 options de procédures, qui se traduisent par différentes méthodes dans ma classe.En C#, quel est le meilleur moyen de contrôler le flux basé sur l'analyse d'une chaîne d'entrée?
son genre Fondamentalement de la manière suivante:
Que voulez-vous faire?
1 Cette chose
2 That Thing
3 Quelques trucs
4 Cool Stuff
0 Tous les trucs.
chaîne de commande d'entrée: _
Actuellement Je vérifie une entrée valide avec:
while (command.IndexOfAny("12340".ToCharArray()) == -1)
{
//Display the menu and accept input
}
et le contrôle puis flux avec:
if (command.IndexOf("1") > 0)
{
thisThing();
}
if (command.IndexOf("2") > 0)
{
thatThing();
}
if (command.IndexOf("3") > 0)
{
someStuff();
}
if (command.IndexOf("4") > 0)
{
coolStuff();
}
if (command.IndexOf("0") > 0)
{
thisThing();
thatThing();
someStuff();
coolStuff();
}
L'objectif est de fournir entrer et exécuter un ou plusieurs processus comme indiqué:
1: thisThing()
13: thisThing() et someStuff();
42: thatThing() et coolStuff();
0: exécuter tous les processus que j'ai définis.
Y a-t-il un moyen de faire quelque chose comme ça avec de meilleures pratiques?
Eh bien, honnêtement, je créerais un gui dans les formes de gain ou WPF et juste mapper les clics des boutons aux processus. En outre, vous ne pouvez pas, avec cette méthode, exécuter une commande deux fois dans le cas où vous devez effectuer thisThing() => someStuff() => thisThing(). –
Oui, j'ai pensé à utiliser une interface graphique avec des boutons, mais je suppose que j'ai décidé de la console pour plus de simplicité. Je suis vraiment nouveau dans ce genre de choses, donc les choses de l'interface graphique m'intimident un peu. Actuellement, ce n'est qu'une petite partie de quelque chose qui pourrait être divisé en un module d'une plus grande chose - à quel point quelque chose comme ça devrait probablement être fait. En ce moment, c'est juste un fichier .exe qui m'aide à configurer un nouveau client dans une base de données, avec plusieurs tâches qui peuvent ou ne doivent pas être faites. Merci pour votre temps! –