Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| csharp [Le 15/02/2023, 12:54] – [Création d'une application avec IHM dans Visual Studio Code] rafbor | csharp [Le 01/02/2025, 14:47] (Version actuelle) – Mise à jour pour la version courante rafbor | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag>Bionic Focal Jammy programmation |
| ---- | ---- | ||
| ====== C# ====== | ====== C# ====== | ||
| - | C# (CSharp) est un langage de programmation orientée objet, développé par Microsoft pour la plateforme .NET, dérivé de C, C++ et proche du Java. | + | [[wpfr> |
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| Ligne 19: | Ligne 19: | ||
| Dans chaque cas, suivre cette [[https:// | Dans chaque cas, suivre cette [[https:// | ||
| - | <note info> | + | <note info>depuis Ubuntu 22.04, |
| - | Pour vérifier la version du SDK installée, exécuter dans un [[https:// | + | Pour vérifier la version du SDK installée, exécuter dans un [[: |
| < | < | ||
| Le résultat doit être similaire à: | Le résultat doit être similaire à: | ||
| - | < | + | < |
| Pour vérifier la version du runtime installée: | Pour vérifier la version du runtime installée: | ||
| < | < | ||
| Le résultat doit être similaire à: | Le résultat doit être similaire à: | ||
| - | < | + | < |
| - | Microsoft.NETCore.App | + | Microsoft.AspNetCore.App |
| + | Microsoft.NETCore.App | ||
| </ | </ | ||
| ===== Outils pour le développement ===== | ===== Outils pour le développement ===== | ||
| - | Un projet .NET est composé d'une multitude de fichiers. Il est donc conseillé d' | + | Un projet .NET est composé d'une multitude de fichiers. Il est donc conseillé d' |
| + | Il existe également MonoDevelop qui est un IDE gratuit et open source spécialement développé par des passionnés pour amener | ||
| ===== Création d'une application console .NET sans IDE ===== | ===== Création d'une application console .NET sans IDE ===== | ||
| - Créer un dossier '' | - Créer un dossier '' | ||
| - | - Ouvrir un [[https:// | + | - Ouvrir un [[: |
| - Exécuter la commande: | - Exécuter la commande: | ||
| < | < | ||
| Ligne 64: | Ligne 66: | ||
| * Pour créer une IHM, il faut utiliser un framework tel que [[https:// | * Pour créer une IHM, il faut utiliser un framework tel que [[https:// | ||
| Procéder ainsi:\\ | Procéder ainsi:\\ | ||
| - | * Dans le terminal intégré de Visual Studio Code, exécuter cette commande pour installer le template: | + | * Dans le terminal intégré de Visual Studio Code, exécuter cette commande pour installer le modèle: |
| < | < | ||
| - | * Vérifier que le template | + | * Vérifier que le modèle |
| < | < | ||
| Le résultat doit être: | Le résultat doit être: | ||
| Ligne 119: | Ligne 121: | ||
| Pour plus d' | Pour plus d' | ||
| + | |||
| + | ===== Scripts ===== | ||
| + | Créer un projet .NET pour de petites tâches simples est un peu excessif. Pour cela il existe [[https:// | ||
| + | |||
| + | ==== Installation ==== | ||
| + | Pré-requis: | ||
| + | | ||
| + | Exécuter dans un [[: | ||
| + | < | ||
| + | |||
| + | ==== Création d'un script ==== | ||
| + | dotnet-script est doté d'une commande d' | ||
| + | * Créer un dossier '' | ||
| + | * Ouvrir un [[: | ||
| + | * Exécuter la commande: | ||
| + | < | ||
| + | Deux fichiers vont se créer: '' | ||
| + | * '' | ||
| + | * '' | ||
| + | <file cpp main.csx> | ||
| + | # | ||
| + | Console.WriteLine(" | ||
| + | </ | ||
| + | * Sur Linux, les scripts ainsi créés peuvent être exécutés directement comme s'ils étaient des exécutables. Vérifiez que le script fonctionne en exécutant la commande suivante: | ||
| + | < | ||
| + | Résultat: | ||
| + | < | ||
| + | Ci dessous un exemple qui exploite un peu plus le potentiel de .NET en créant un tableau de personnes (nom et âge). Le script se verra passer un paramètre, stocké dans la variable '' | ||
| + | Modifiez le fichier '' | ||
| + | <file cpp main.csx> | ||
| + | # | ||
| + | |||
| + | using System; | ||
| + | using System.Data; | ||
| + | |||
| + | Int16 nAge = 0; | ||
| + | if (Args.Count > 0) | ||
| + | nAge = Convert.ToInt16(Args[0]); | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine(" | ||
| + | return; | ||
| + | } | ||
| + | DataTable dtable = new DataTable(); | ||
| + | dtable.Columns.Add(" | ||
| + | dtable.Columns.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | dtable.Rows.Add(" | ||
| + | int n=0; | ||
| + | DataRow[] dtRows; | ||
| + | dtRows = dtable.Select(" | ||
| + | string strResult; | ||
| + | Console.WriteLine(" | ||
| + | foreach(DataRow row in dtRows) | ||
| + | { | ||
| + | strResult = string.Format(" | ||
| + | Console.WriteLine(strResult); | ||
| + | } | ||
| + | </ | ||
| + | Exécuter le script avec la commande: | ||
| + | < | ||
| + | Résultat: | ||
| + | < | ||
| + | Ont moins de 50 ans | ||
| + | Lorenzo | ||
| + | Federico | ||
| + | Leonardo | ||
| + | Roberto | ||
| + | Silvia | ||
| + | Gabriele | ||
| + | Mattia | ||
| + | </ | ||
| + | ==== Mode REPL (Read-Evaluate-Print-Loop) ==== | ||
| + | Le mode REPL ("mode interactif" | ||
| + | |||
| + | Le mode interactif permet de fournir des blocs individuels de code C# qui sont exécutés dès que l'on appuie sur la touche Entrée: | ||
| + | < | ||
| + | ~$ dotnet script | ||
| + | > var x = 1; | ||
| + | > x+x | ||
| + | 2 | ||
| + | </ | ||
| + | |||
| + | ===== Résolution des problèmes ===== | ||
| + | |||
| + | Consulter [[https:// | ||
| + | < | ||
| + | dotnet run</ | ||
| ===== Voir aussi ===== | ===== Voir aussi ===== | ||
| Ligne 126: | Ligne 224: | ||
| * [[http:// | * [[http:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| ---- | ---- | ||
| // | // | ||
