Programmation C sharp/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
[modifier | modifier le wikicode]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
[modifier | modifier le wikicode]- Syntaxe : les mots clés communs avec Java s'utilisent dans les mêmes circonstances et de la même manière :
public
,private
,protected
,abstract
,class
,interface
,try
,catch
,finally
,throw
,new
,return
,this
,if
,while
,do
,for
,foreach
,enum
... et le mot clélock
est l'équivalent C# du mot clé Javasynchronized
; - 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++
[modifier | modifier le wikicode]- 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
[modifier | modifier le wikicode]- 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++.