Java/.NET : Opérateurs
Dans ce billet, nous allons parler des opérateurs. Les opérateurs existants en Java existent également en C#, et les différences entre les deux sont quasi-inexistantes.
Nous allons donc parler de deux fonctionnalités, présentes en C#, qui n'existent pas en Java :
Voici un exemple de surcharge des opérateurs en C# :
Il n'existe aucun équivalent à la surcharge des opérateurs en Java.
Voici un exemple de code mettant en oeuvre un indexeur :
Il n'existe aucun équivalent aux indexeurs en Java.
En ce qui concerne les opérateurs en C#, nous avons vu deux fonctionnalités intéressantes qui n'existent malheureusement pas en Java.
Beaucoup de personnes ont espéré voir la surcharge des opérateurs arriver dans Java 7. Cependant, cette fonctionnalités est assez controversée, et il y a peu de chances de la voir arriver dans le langage (de même que les indexeurs).
Nous allons donc parler de deux fonctionnalités, présentes en C#, qui n'existent pas en Java :
- La surcharge des opérateurs
- Les indexeurs
Surcharge des opérateurs
Le langage C#, contrairement au langage Java, implémente la surcharge des opérateurs. Les principes sont inspirés du C++.Voici un exemple de surcharge des opérateurs en C# :
class Program
{
static void Main(string[] args)
{
MyString s1 = new MyString("Hello ");
MyString s2 = new MyString("World!");
MyString s = s1 + s2;
}
}
class MyString
{
private string _value;
public MyString(string _value)
{
this._value = _value;
}
public static MyString operator + (MyString a, MyString b)
{
return (new MyString(a._value + b._value));
}
}
Il n'existe aucun équivalent à la surcharge des opérateurs en Java.
Indexeurs
Le langage C# introduit un nouveau concept, les indexeurs. Un indexeur est semblable à un opérateur, et il permet d'accéder à un index donné d'un objet, comme par exemple un tableau. Cet index peut être de typeint, mais aussi de n'importe quel autre type, valeur ou référence.Voici un exemple de code mettant en oeuvre un indexeur :
class Program
{
static void Main(string[] args)
{
MyIndex i = new MyIndex();
Console.WriteLine(i[12]);
}
}
class MyIndex
{
public string this [int index]
{
get
{
return ("Index " + index);
}
}
}
Il n'existe aucun équivalent aux indexeurs en Java.
En ce qui concerne les opérateurs en C#, nous avons vu deux fonctionnalités intéressantes qui n'existent malheureusement pas en Java.
Beaucoup de personnes ont espéré voir la surcharge des opérateurs arriver dans Java 7. Cependant, cette fonctionnalités est assez controversée, et il y a peu de chances de la voir arriver dans le langage (de même que les indexeurs).