De Delphi à C# .Net

Cette section va vous présenter quelques notes qui m'ont permit de faciliter ma migration de Delphi à C#. En espérant que ces notes vous soit tout aussi utile qu'a moi, je vous souhaite une bonne réflexion :-)

 

 

Voici quelques différences que j'ai noté :

  • Le mot clé as en Delphi peut lever une exception. Pas en .net : il renvoie null
  • Il n'y a pas héritage des constructeur : B hérite de A. A implémente un constructeur. B aucun. Il n'est pas possible de faire new B avec le constructeur de la classe A. Vous trouverez ici une discussion sur le pourquoi...
  • Le concept de méta classe tel qu'il est connu en Delphi (class of Txxx) n'existe pas (C.F. ici). Cependant, on peut considérer que la classe Type est la méta classe de la classe object.
  • Delphi supporte un ensemble (set of) d'éléments d'une énumération. Voici un exemple :

    Type
    TJour=(jrLundi,jrMardi,jrMercredi,jrJeudi,jrVendredi,jrSamedi,jrDimanche);
    TJoursTravailles = set of TJour;

    A ma connaissance, .Net ne supporte pas ce type de déclaration.

 

Versions :

Il n'y a pas de relation entre la version du language C# et celle du framework .Net.
Actuellement les versions de du language C# sont : 1.0 2.0 et 3.0
Les versions du framework : 1.0 1.1 2.0 3.0 et 3.5

 

Quelques liens :

Utilisation des expressions régulières en .Net http://lgmorand.developpez.com/dotnet/regex/
Création d'un Addin pour Visual Studio .Net http://lgmorand.developpez.com/dotnet/vsaddin/
Création d'un visualiseur de debuggage avec VS2005 http://lgmorand.developpez.com/dotnet/debugvisualizer/
Comparatif inter-langages http://www.jmdoudoux.fr/divers/syntheses%20langages.htm

 

Vocabulaire :

WMI = Windows Management Instrument
BAM = Business Activity Monitoring
MS SMS = System Management Server

Fxcops = Outils d'analyse de code (Projet/properties/Code analysis)

Classe Helper = Classe qui ne contient que des méthodes statique

 

Quelques équivalences :

Delphi .Net
GetTickCount System.Diagnostics : stopWatch.Start() .Stop() .ElapsedTime
sLineBreak '\n'
Application.ProcessMessages() Application.DoEvents();