Créer un ficher .exe d'une méthode VS C#
Fermé
Thomas
-
10 août 2018 à 15:15
Mr_Evil_Duck Messages postés 43 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 31 octobre 2018 - 11 oct. 2018 à 16:32
Mr_Evil_Duck Messages postés 43 Date d'inscription vendredi 5 octobre 2018 Statut Membre Dernière intervention 31 octobre 2018 - 11 oct. 2018 à 16:32
A voir également:
- Créer un ficher .exe d'une méthode VS C#
- Créer un compte gmail - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un compte instagram sur google - Guide
- Créer une adresse hotmail - Guide
1 réponse
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
10 août 2018 à 15:59
10 août 2018 à 15:59
Bonjour,
Avec visual studio, un projet = un exécutable.
Par contre, tu peux avoir un seul exécutable mais dont le premier argument définisse la fonction à appeler.
Par exemple pour une calculatrice, tu aurais un exécutable operation.exe qui pourrait être appelé comme ceci :
> operation.exe --addition 1 4
La syntaxe en question est entière libre, c'est toi qui la définis. Comment ? Tout se passe dans ta classe Program, fonction Main. Regarde les paramètres qu'elle porte :
Dans l'exemple du dessus, args contient donc ["--addition", "1", "4"] (sous forme de chaînes de caractères).
C'est donc toi qui dois définir les options possibles et, en fonction des arguments, appeler telle ou telle méthode.
Voici une calculatrice très rudimentaire :
Après on peut faire des choses bien plus complexes en utilisant des syntaxes d'arguments telles que /o=add, etc. Tu fais ce que tu veux mais c'est à toi de le coder ;)
Quelque chose de sympa aussi, c'est de penser à autoriser le /? qui va afficher la syntaxe attendue. C'est standard.
Xavier
Avec visual studio, un projet = un exécutable.
Par contre, tu peux avoir un seul exécutable mais dont le premier argument définisse la fonction à appeler.
Par exemple pour une calculatrice, tu aurais un exécutable operation.exe qui pourrait être appelé comme ceci :
> operation.exe --addition 1 4
La syntaxe en question est entière libre, c'est toi qui la définis. Comment ? Tout se passe dans ta classe Program, fonction Main. Regarde les paramètres qu'elle porte :
Main(string[] args). Que contient le tableau "args" ? Il contient justement les paramètres additionnels fournis lors de l'appel du programme, séparés par des espaces et prenant en compte les éventuels guillemets.
Dans l'exemple du dessus, args contient donc ["--addition", "1", "4"] (sous forme de chaînes de caractères).
C'est donc toi qui dois définir les options possibles et, en fonction des arguments, appeler telle ou telle méthode.
Voici une calculatrice très rudimentaire :
using System; namespace Calculatrice { class Program { private enum Operations {Addition, Soustraction, Multiplication, Division} private static Operations _operation; private static double _op1, _op2; static void Main(string[] args) { if (!CheckArgs(args)) Help(); else { switch (_operation) { case Operations.Addition: Console.WriteLine("{0} + {1} = {2}", _op1, _op2, _op1 + _op2); break; case Operations.Soustraction: Console.WriteLine("{0} - {1} = {2}", _op1, _op2, _op1 - _op2); break; case Operations.Multiplication: Console.WriteLine("{0} x {1} = {2}", _op1, _op2, _op1 * _op2); break; case Operations.Division: Console.WriteLine("{0} / {1} = {2}", _op1, _op2, _op1 / _op2); break; default: throw new ArgumentOutOfRangeException(); } } } private static void Help() { Console.WriteLine("Usage : calculatrice.exe op op1 op2"); Console.WriteLine("op peut valoir :"); Console.WriteLine(" a, +, addition : génère une addition"); Console.WriteLine(" s, -, soustraction : génère une soustraction"); Console.WriteLine(" m, x, *, multiplication : génère une multiplication"); Console.WriteLine(" d, /, division : génère une division"); Console.WriteLine("op1 et op2 sont les opérandes."); } private static bool CheckArgs(string[] args) { if (args.Length == 0) return false; switch (args[0]) { case "/?": return false; // Pour afficher l'aide case "a": case "+": case "addition": _operation = Operations.Addition; break; case "s": case "-": case "soustraction": _operation = Operations.Soustraction; break; case "m": case "x": case "*": case "multiplication": _operation = Operations.Multiplication; break; case "d": case "/": case "division": _operation = Operations.Division; break; } if (args.Length < 3) return false; try { _op1 = double.Parse(args[1]); _op2 = double.Parse(args[2]); } catch { return false; } return true; } } }
Après on peut faire des choses bien plus complexes en utilisant des syntaxes d'arguments telles que /o=add, etc. Tu fais ce que tu veux mais c'est à toi de le coder ;)
Quelque chose de sympa aussi, c'est de penser à autoriser le /? qui va afficher la syntaxe attendue. C'est standard.
Xavier
10 août 2018 à 16:19
11 oct. 2018 à 16:32