Java Vs C# : Les Property en C#

By Hugo2 min read

Warning, warning, ceci n'est pas une rubrique à troll !!

Bien qu'étant plutot spécialiste Java, je me suis mis récemment au C#. Loin des débats qui n'en finissent plus pour savoir lequel des deux p... le plus loin, je tenais à faire une petite rubrique pour lister "les trucs qui tuent" qui existent dans chaque langage et que tout bon développeur aime connaitre.

Et donc le truc qui tue du jour :

Les Property en C#

En C# comme en Java on respecte le principe d'encapsulation sur les attributs des classes. C'est à dire que les attributs sont déclarées private et ensuite on définit des getters et setters pour y accéder :

java
private int maVariable;

public void setMaVariable (int maVariable)
{
    this.maVariable = maVariable;
}
pubic int getMaVariable ()
{
    return maVariable;
}

Seul inconvénient, il est plus verbeux d'écrire ceci

java
maClasse.setMaVariable (maClasse.getMaVariable()+1)

que directement

java
maClasse.maVariable++;

En C# existe la notion de Property qui permet d'éviter l'utilisation de getter et setter :

csharp
public double Hours
{
    get
   {
        return seconds / 3600;
   }
   set
   {
       seconds = value \* 3600;
   }
}

Ce qui permet d'écrire :

csharp
maClasse.Hours = maClasse.Hours + 1;

et qui reviendra à :

csharp
maClasse.setSeconds (maClasse.getSeconds() + 1);

Et depuis la version 3.0, on peut même utiliser des la notion de Property auto-implémenté lorsque les getters et setters ne font rien de spécial :

csharp
public int ID { get; set; }

Et en Java ?

A priori rien de prévu pour imiter cette syntaxe en Java pour l'instant. Cependant certains frameworks utilisent l'instrumentation de code pour reproduire le même comportement. Avec Play! la syntaxe est même allégé par rapport aux Property de C# :

java
public int maVariable;
...
monObjet.maVariable = monObjet.maVariable+1;

Les getters et setters sont automatiquement générés par Play. Si cependant un getter ou un setter a été défini, il sera utilisé à la place des accesseurs générés par Play!.

Written by Hugo

Ingénieur logiciel/Indie Hacker avec plus de 20 ans d'expérience. Je partage sur les technologies, l'entreprenariat et les startups, entre autre...

Stay in the loop

Get new articles delivered directly to your inbox. No spam, unsubscribe anytime.

0 Comments

No comments yet. Be the first to comment!

Copyright © 2026EventuallycodingPowered by Writizzy