Pages 1
| 2
Des différences significatives
Java et C# gèrent les threads différemment. En Java,
deux possibilités existent pour créer un thread. Utiliser
une classe dérivée de la classe java.lang.Thread,
l'autre consiste à utiliser l'interface java.lang.Runnable
(cf notre premier tutoriel sur les
threads). En C# il faut d'abord créer un objet de type
System.Threading.Thread et le passer à un "delegate"
System.Threading.ThreadStart. Ce delegate, comparable à un
pointeur de fonction en C, est initialisé avec la méthode
destinée à devenir un thread.
Dans le domaine de la génération automatique de documentation,
Java possède l'outil Javadoc. Celui-ci génère
une documentation au format HTML à partir des commentaires
contenus dans le code source.
En C#, la documentation repose sur le format XML. L'utilisation
de ce format permet à la documentation d'être convertie
facilement, via des feuilles de style XSLT, dans d'autres formats.
Le langage Java ne permet pas d'avoir plus d'une classe "public"
par fichier source. De plus le nom du fichier source doit porter
le nom de la classe. Ces deux restrictions n'existent pas en C#.
Les fonctionnalités propres au C#
- L'interface System.IDisposable permet aux utilisateurs de libérer
manuellement la mémoire de leur classe.
- Le mot clef "enum" permet de regrouper les types définis
par l'utilisateur. Le code gagne alors en fiabilité puisque
le compilateur C# est alors capable de vérifier automatiquement
que les types employés le sont correctement.
- Le type "struct" permet en C# d'optimiser la gestion
de la mémoire.
- L'instruction "foreach", présente également
en Perl ou Php par exemple, permet de boucler facilement au travers
de tableaux.
- Le préprocesseur C# permet la compilation conditionnelle
via les directives du type #if, #elif, #else...
- Le mot clef "using" augmente la lisibilité du
code en définissant des raccourcis :
using Terminal = System.Console;
class Test
{
public static void Main(string[] args)
{
Terminal.WriteLine("Terminal.WriteLine
is equivalent to System.Console.Writeline");
}
}
- Le mot-clef "unsafe" permet au CLR de baisser la garde.
Moins de contrôle sont effectués, les pointeurs sont
alors autorisés.
- En plus du passage par valeur (une méthode opère
sur les copies des valeurs), le passage par référence
est autorisé via le mot clef "ref".
- Les chaînes de caractères dites "verbatim"
permettent de se passer du doublement des caractères spéciaux
:
string filename = @"C:\My Documents\My Files\File.html";
Ces différences et similitudes ne sont pas exhaustives, c'est
pourquoi nous vous conseillons de prendre connaissance des ressouces
suivantes :
- Une discussion
intéressante à propos des différences entre
ces deux languages
- Une interview
Anders Hejlsberg (auteur de Turbo Pascal et architecte de Delphi
et de C#)
- Une comparaison
poussée des deux langages, codes à l'appui.
Pages 1
| 2
|