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 une adresse mail - Guide
- Créer un compte google - Guide
- Créer un compte instagram - Guide
- Créer un compte facebook - Guide
1 réponse
Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 008
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