Bien sûr, cela peut être fait et le processus est extrêmement simple.
Ici, j'explique les étapes pour Ubuntu Linux.
Ouvrir le terminal :
Ctrl + Alt + T
Tapez
gedit hello.cs
Dans le gedit
fenêtre qui s'ouvre collez l'exemple de code suivant :
using System;
class HelloWorld {
static void Main() {
Console.WriteLine("Hello World!");
}
}
Enregistrez et fermez gedit.
Retour au type de terminal :
sudo apt update
sudo apt install mono-complete
mcs -out:hello.exe hello.cs
mono hello.exe
Sortie :
Hello World!
REMARQUE :la réponse de @adabru ci-dessous rend ma solution obsolète, sauf si vous utilisez une ancienne plate-forme mono.
Les scripts C # peuvent être exécutés à partir de la ligne de commande bash, tout comme les scripts Python et Perl, mais il faut un peu de magie bash pour que cela fonctionne. Comme Corey l'a mentionné ci-dessus, vous devez d'abord installer Mono sur votre machine. Ensuite, enregistrez le code suivant dans un script bash exécutable sur votre machine Linux :
if [ ! -f "$1" ]; then
dmcs_args=$1
shift
else
dmcs_args=""
fi
script=$1
shift
input_cs="$(mktemp)"
output_exe="$(mktemp)"
tail -n +2 $script > $input_cs
dmcs $dmcs_args $input_cs -out:${output_exe} && mono $output_exe [email protected]
rm -f $input_cs $output_exe
En supposant que vous ayez enregistré le script ci-dessus sous /usr/bin/csexec, un exemple de "script" C# suit :
#!/usr/bin/csexec -r:System.Windows.Forms.dll -r:System.Drawing.dll
using System;
using System.Drawing;
using System.Windows.Forms;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello Console");
Console.WriteLine("Arguments: " + string.Join(", ", args));
MessageBox.Show("Hello GUI");
}
}
Enregistrez le code ci-dessus dans un fichier tel que "hello.cs", rendez-le exécutable, modifiez la première ligne pour pointer vers le script bash précédemment enregistré, puis exécutez-le, vous devriez voir la sortie suivante avec une boîte de dialogue indiquant "Hello GUI":
bash-4.2$ ./hello.cs foo bar baz
Hello Console
Arguments: foo, bar, baz
Notez que l'interface graphique nécessite que vous soyez au niveau d'exécution 5. Voici un script C# plus simple qui s'exécute sur une console en texte pur :
#!/usr/bin/csexec
using System;
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello Console");
Console.WriteLine("Arguments: " + string.Join(", ", args));
}
}
Notez que les arguments de ligne de commande sont passés au script C#, mais les arguments shebang (dans le premier script C# ci-dessus "-r:System.Windows.Forms.dll -r:System.Drawing.dll") sont passés au C# compilateur. En utilisant cette dernière fonctionnalité, vous pouvez spécifier tous les arguments de compilateur dont vous avez besoin sur la première ligne de votre script C#.
Si vous êtes intéressé par les détails du fonctionnement du script bash, shebang (#!) regroupe tous les arguments qui lui sont transmis sur la première ligne du script C #, suivis du nom du script, suivis des arguments de ligne de commande transmis au script lui-même. Dans le premier exemple C# ci-dessus, les 5 arguments suivants seraient transmis au script bash (délimités par des guillemets) :
"-r:System.Windows.Forms.dll -r:System.Drawing.dll" "hello.cs" "foo" "bar" "baz"
Le script détermine que le premier argument n'est pas un nom de fichier et suppose qu'il contient des arguments pour le compilateur C#. Il supprime ensuite la première ligne du script C# à l'aide de 'tail' et enregistre le résultat dans un fichier temporaire (puisque le compilateur C# ne lit pas à partir de stdin). Enfin, la sortie du compilateur est enregistrée dans un autre fichier temporaire et exécutée en mono avec les arguments d'origine passés au script. L'opérateur 'shift' est utilisé pour éliminer les arguments du compilateur et le nom du script, ne laissant que les arguments du script.
Les erreurs de compilation seront transférées vers la ligne de commande lors de l'exécution du script C#.
Le #!
La balise (hashbang) est utilisée pour indiquer au shell quel interpréteur utiliser pour que vos scripts perl, php, bash, sh, etc. s'exécutent correctement.
Mais C# n'est pas un langage de script, il est destiné à être compilé dans un format exécutable. Vous devez installer au moins un compilateur et un runtime si vous souhaitez utiliser C#, et de préférence un IDE (Integrated Development Environment) pour vous aider à développer et déboguer vos applications.
Installez Mono pour le compilateur et le runtime, puis MonoDevelop pour l'IDE.