C sharp Un livre de Wikilivres. Une version à jour et éditable de ce livre est

C sharp Un livre de Wikilivres. Une version à jour et éditable de ce livre est disponible sur Wikilivres, une bibliothèque de livres pédagogiques, à l'URL : http://fr.wikibooks.org/wiki/Programmation_C_sharp Vous avez la permission de copier, distribuer et/ou modifier ce document selon les termes de la Licence de documentation libre GNU, version 1.2 ou plus récente publiée par la Free Software Foundation ; sans sections inaltérables, sans texte de première page de couverture et sans Texte de dernière page de couverture. Une copie de cette licence est inclue dans l'annexe nommée « Licence de documentation libre GNU ». Introduction Le langage de programmation C# (C dièse en français, ou prononcé C-sharp en anglais) a été développé par la société Microsoft, et notamment un de ses employés, Anders Hejlsberg, pour la plateforme .NET (point NET / dot NET). Ce langage est orienté objet, avec un typage fort. Il est très proche du langage Java. Il est précompilé en MSIL (Microsoft Intermediate Language), puis exécuté sur une machine virtuelle, ou compilé en code natif à l'exécution. Il dispose d'un ramasse-miettes (garbage collector). Il utilise l'API .NET en remplacement des MFC (Microsoft foundation class). Il semble être le nouveau langage pour développer des applications Windows, avec Visual Basic et C++. Caractéristiques partagées Le langage C# possède un certain nombre de caractéristiques communes avec d'autres langages de programmation. Il sera donc plus facile de l'apprendre si ces autres langages sont connus. Caractéristiques partagées avec le langage Java Syntaxe : les mots clés communs avec Java s'utilisent dans les mêmes circontances et de la même manière : public, private, protected, abstract, class, interface, try, catch, finally, throw, new, Programmation C sharp/Version imprimable — Wikilivres https://fr.wikibooks.org/w/index.php?title=Programmation_C_sharp/Ve... 1 sur 142 14/07/2015 16:36 return, this, if, while, do, for, foreach, enum... et le mot clé lock est l'équivalent C# du mot clé Java synchronized; Garbage collector : les objets qui ne sont plus référencés sont traités par le ramasse-miettes afin de libérer la mémoire qu'ils occupent ; Références : les objets sont en fait des références ; Documentation automatique : cette caractéristique commune utilise cependant une syntaxe différente dans les 2 langages : le langage Java utilise les commentaires spéciaux /** */ au format HTML, avec des tags commençant par le caractère arobase @ ; tandis que le langage C# utilise les commentaires /// au format XML ; Méthodes courantes : une majeure partie des méthodes de l'API de C# ressemblent à celles de Java, excepté que leur nom commence par une majuscule : Main, Equals, ToString, Length, IndexOf, ... Caractéristiques partagées avec le langage C++ surcharge des opérateurs ; structures (mot clé struct) ; énumérations (mot clé enum) ; pointeurs : il est possible, en mode unsafe, d'utiliser des pointeurs au lieu de références. Caractéristiques partagées avec d'autres langages propriétés (Delphi) : une propriété est un couple de méthodes (get et set) appelées lorsque celle-ci est lue ou modifiée ; attributs : un attribut est lié à une déclaration et contient des méta-données sur celle-ci (méthode obsolète, importée d'une DLL, ...) ; delegate : un delegate est un modèle de méthode, qui lorsqu'il est appelé, appelle toutes les méthodes qui lui ont été associées. Pour faire un parallèle avec le C++, les delegates peuvent être comparés à des pointeurs de fonction. Leur sémantique est toutefois nettement plus riche qu'en C++. Compilation Les fichiers sources Un fichier source C# porte l'extension ".cs". Il s'agit d'un fichier texte. Le programme compilé porte l'extension ".exe". Une bibliothèque rassemble des classes et porte l'extension ".dll". Elle peut être utilisée par un programme ou une autre bibliothèque. La compilation Un compilateur C# permet la traduction du programme source en instructions .Net. Contrairement à d'autres compilateurs, ces instructions sont produites pour un processeur virtuel et ne sont donc pas directement interprétées par le processeur, mais interprétés par le moteur .Net. Sous Windows, le compilateur produit un exécutable appelant l'interpréteur .Net. Programmation C sharp/Version imprimable — Wikilivres https://fr.wikibooks.org/w/index.php?title=Programmation_C_sharp/Ve... 2 sur 142 14/07/2015 16:36 Sous Linux, le programme produit n'est pas directement exécutable et doit être lancé en argument de l'interpréteur mono. Compilateurs Plusieurs compilateurs C# existent selon la plateforme utilisée. Il existe plusieurs versions des spécifications du framework : 1.0, 1.1, 2.0. Ces versions successives ajoutent de nouvelles fonctionnalités au langage. Il existe également différentes versions de la spécification du langage C# : C#1.0 : version initiale du langage, C#2.0 : ajoute de nouvelles classes à l'API (compression de données, collections génériques, ...), permet l'utilisation de types génériques, facilite la création d'énumération avec le mot clé yield, C#3.0 : ajoute de nouvelles facilités de syntaxe : types non spécifiés pour les variables locales (déduit d'après la valeur d'initialisation), intégration des requêtes SQL dans le langage (LINQ [1]), ajout de nouvelles méthodes à une classe existante, expressions lambda pour les delegates anonymes, initialisation des membres d'un objet à la déclaration. C#4.0 : ajoute de nouvelles fonctionnalités : covariance et contrevariance, binding dynamique, paramètres nommés et optionnels, meilleure interopérabilité avec COM. Compilateur pour Windows Le framework .NET est disponible gratuitement pour les utilisateurs de Windows. Si le framework Microsoft .NET est installé, le compilateur nommé csc.exe doit se situer dans l'un des deux répertoires suivants (à ajouter à la variable d'environnement PATH) : C:\WINDOWS\Microsoft.NET\Framework\vnuméro_de_version_du_framework C:\WINDOWS\Microsoft.NET\Framework64\vnuméro_de_version_du_framework Le répertoire Framework64 contient la version 64 bits du Framework, disponible seulement sur les versions 64 bits de Windows. Afin de profiter de toutes la puissance du matériel, il est préférable d'utiliser la version 64 bits si Windows est également 64 bits. Il est également possible d'utiliser Visual Studio .NET pour développer, compiler et débogguer les applications C#. L'édition Express de Visual Studio est téléchargeable gratuitement sur le site de Microsoft [2], mais possède moins d'outils que la version complète. Une autre possibilité est d'utiliser SharpDevelop qui a l'avantage d'être un logiciel libre [3]. Compilateur pour Linux Mono est une implémentation libre de la plate-forme de développement Microsoft .NET. Le compilateur est nommé msc. L'interpréteur est nommé mono[4]. gmcs est le nouveau compilateur C# 2.0. Il est recommandé d'utiliser ce dernier. Références Programmation C sharp/Version imprimable — Wikilivres https://fr.wikibooks.org/w/index.php?title=Programmation_C_sharp/Ve... 3 sur 142 14/07/2015 16:36 http://msdn.microsoft.com/data/ref/linq/ 1. http://msdn.microsoft.com/vstudio/express/visualcsharp 2. http://www.icsharpcode.net/OpenSource/SD/ 3. http://www.mono-project.com 4. Compilation et exécution La compilation et l'exécution peuvent se faire à l'aide d'un environnement graphique. Il est toutefois utile de connaître la ligne de commande à utiliser en cas d'absence d'environnement graphique ou si une option spéciale de compilation doit être utilisée, ... Pour utiliser les lignes de commandes de compilation : Ouvrir une fenêtre console, 1. Faire du répertoire du programme à compiler ou exécuter le répertoire courant, 2. Vérifier que la variable d'environnement PATH contient le chemin vers le compilateur, en tapant le nom du compilateur (csc sous Windows, gmcs sous Linux (Mono)). 3. Si le compilateur ne se lance pas (programme non trouvé) : Vérifier qu'un compilateur C# est installé, Vérifier que le chemin complet du répertoire du compilateur est contenu dans la variable d'environnement PATH, Essayer de lancer le compilateur en donnant son chemin complet. Le compilateur peut produire soit directement un exécutable, soit un module (une bibliothèque DLL) utilisable par d'autres programmes. Si les sources d'un exécutable ou d'un module sont répartis entre différents fichiers (même répertoire ou non), il faut spécifier leur chemin au compilateur. Exemple : Les sources de l'exécutable prog.cs sont répartis dans deux fichiers : C:\Prog\Exemple\main.cs et D:\Prog\Util\util.cs. Il faut donc utiliser la ligne de commande suivante : Windows csc C:\Prog\Exemple\main.cs D:\Prog\Util\util.cs Linux (Mono) gmcs C:\Prog\Exemple\main.cs D:\Prog\Util\util.cs Il est également possible d'utiliser les caractères génériques * et ? pour spécifier plusieurs fichiers. Les syntaxes des commandes à utiliser pour les différentes tâches du développement sont résumées dans le tableau suivant : Programmation C sharp/Version imprimable — Wikilivres https://fr.wikibooks.org/w/index.php?title=Programmation_C_sharp/Ve... 4 sur 142 14/07/2015 16:36 1 Tâche Windows Linux compiler un programme (.exe) avec fenêtre console csc fichier.cs gmcs fichier.cs compiler un programme (.exe) sans fenêtre console csc /t:winexe fichier.cs gmcs -target:winexe fichier.cs compiler une bibliothèque (.dll) csc /t:library fichier.cs gmcs -target:library fichier.cs utiliser une bibliothèque (.dll) csc /r:fichier.dll ... gmcs -r:fichier.dll ... exécuter un programme programme arguments... mono programme.exe arguments... Un premier programme Hello world Cet exemple typique de programmation est censé montrer la syntaxe du langage. Le fichier source Enregistrez le listing suivant dans un document texte, intitulé par exemple « helloworld.cs » : using System; public class HelloWorld { public static void Main() { Console.WriteLine("Hello world !"); Console.ReadLine(); } } Test Compilez-le, puis lancez l'exécutable produit. Le programme doit afficher : Hello world ! Détails Voici le détail ligne par ligne du fichier source, certains concepts étant expliqués dans les chapitres suivants : using System; Le fichier source utilise l'espace de noms nommé « System ». public class HelloWorld Programmation C sharp/Version imprimable — Wikilivres https://fr.wikibooks.org/w/index.php?title=Programmation_C_sharp/Ve... 5 sur 142 14/07/2015 16:36 2 3 4 5 6 7 8 9 { Déclaration d'une classe nommée « HelloWorld ». public static void Main() { Déclaration d'une méthode statique nommée « Main » dans la classe HelloWorld. Cette méthode est celle qui est appelée au démarrage du programme. Console.WriteLine("Hello world !"); Affichage de la uploads/Litterature/ programmation-c-sharp-fr 1 .pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager