Pourquoi ajouter des virgules de fin
Pourquoi tirer parti de cette fonctionnalité lorsque vous écrivez du code manuellement ?
- Les patchs résultants ont moins de lignes affectées. Ils sont donc plus faciles à lire et à réviser.
- La fusion automatique et la résolution des conflits sont plus précises car il n'y a pas de bruit supplémentaire pour embrouiller l'algorithme.
Exemples
Sans virgule de fin (ok)
Exemple d'ajout d'une ligne lorsque le développeur précédent n'a pas laissé de virgule de fin :
@@ -119,7 +119,8 @@ namespace SomeApp.Example
{
NameTitle = contact.NameTitle,
GivenName = contact.GivenName,
- FamilyName = contact.FamilyName
+ FamilyName = contact.FamilyName,
+ ProperName = contact.ProperName
},
ContactTelephone1 = contact.ContactTelephone1,
ContactType = contact.ContactType,
Sans virgule de fin (mieux)
Exemple d'ajout d'une ligne lorsque le développeur précédent a laissé une virgule de fin :
@@ -122,2 +122,3 @@ namespace SomeApp.Example
FamilyName = contact.FamilyName,
+ ProperName = contact.ProperName,
},
Notez qu'une ligne a été ajoutée dans le dernier cas, alors qu'une ligne a été supprimée et deux ajoutées. C'est beaucoup plus facile à gérer pour l'homme et la machine.
Pourquoi l'ont-ils ajouté au C# ?
Quant à la raison pour laquelle elle est autorisée, comme dans les autres réponses :
La spécification C# (Page 355/Section 17.7) stipule :
Comme le C++ standard, le C# autorise une virgule de fin à la fin d'un initialisateur de tableau. Cette syntaxe offre une certaine souplesse dans l'ajout ou la suppression de membres d'une telle liste, et simplifie la génération automatique de telles listes.
Cela s'applique aux initialisateurs de tableaux, aux initialisateurs d'objets et aux enums.
26 votes
Parce que C# a été conçu par de vrais programmeurs, pas par un comité.
2 votes
Et, C a été conçu par un comité :)
1 votes
J'espère que Dennis Ritchie ne verra pas ce commentaire.
0 votes
J'ai remarqué que la même chose peut être observée dans
object inline initialization
/object initializers
. (et tout aussi bien remarqué, Sergey Teplyakov l'a mentionné, ci-dessous).1 votes
C'est moi ou ce serait bien si tous les langages le permettaient ? par exemple SQL, JSON, etc.
0 votes
Je préférerais demander comment il se fait que la virgule de fin ne soit pas appliquée.