Envoyé par
Arnard
- Expressions de déclaration (on va pouvoir spammer les TryParse avec moins de ligne OUAAAIIIISSSSS)
En fait pour le TryParse, je préfèrerais de loin que ça renvoie un nullable :
1 2 3
| int? x = int.TryParse(text);
// ou encore
int y = int.TryParse(text) ?? 0; |
Envoyé par
Arnard
Y'a une idée de quand ils veulent release tout ça ? Courant 2014 ? 2015 ?
Aucune idée, mais vu qu'il y a encore un petit paquet de fonctionnalités à implémenter, je dirais pas avant 6 mois (en étant optimiste) ou un an... en attendant, rien n'empêche de jouer avec les fonctionnalités déjà prêtes
Envoyé par
DonQuiche
Sur le fond je suis assez chagriné : des petites choses sympas mais sans plus. Pas de mixins ou de nouvelles contraintes génériques ou de corps de méthodes dans les interfaces, des ajouts qui me semblaient pourtant plus que nécessaires.
La liste des fonctionnalités "plus que nécessaires" est malheureusement assez longue , et ils ne peuvent pas tout faire à la fois...
Le gros chantier de cette version est le compilateur Roslyn, tout le reste est du bonus. Mais tel que je vois les choses, ça va rendre les futures évolutions plus faciles à implémenter, donc on verra peut-être arriver les nouvelles fonctionnalités plus rapidement... Perso le truc que j'aimerais bien avoir c'est le "tuple unpacking" des langages fonctionnels, pour pouvoir faire des choses comme ça :
var (x, y) = MethodQuiRenvoieUnTuple();
Pour les "corps de méthodes dans les interfaces", tu veux dire quoi au juste ? tu penses aux defender methods de Java 8 ?
Envoyé par
DonQuiche
Et certaines syntaxes me semble un peu malheureuses (les "membres dont le corps est une expression" dépareillent trop des autres membres par exemple)
Oui, c'est un peu bizarre, mais on s'y fera je pense... la concision que ça apporte justifie bien un petit effort d'adaptation à mon avis.
Envoyé par
DonQuiche
ou ont des limitations inutiles (proprios en lecture seule initialisables uniquement depuis le seul constructeur primaire).
Comment ça ? Tu peux les initialiser inline, avec ou sans constructeur primaire... Tu voudrais pouvoir les initialiser depuis un constructeur normal ?
Envoyé par
DonQuiche
Gros regret notamment : les constructeurs primaires auraient pu être un vrai bonus pour la concision du code lorsqu'il s'agit de déclarer des classes immuables ou POCO. On sent qu'ils ont fortement lorgné sur la prog fonctionnelle. Malheureusement il manque une mise en œuvre automatisée de comparaisons structurelles (voire de relations d'ordonnancement) et de hash codes, indispensables pour adapter les motifs de la prog fonctionelle. Du coup on économisera seulement trois lignes au lieu d'en économiser trente ou quarante.
Bah si tu veux ça tu peux toujours faire des structs plutôt que des classes. A partir du moment où c'est immuable, il n'y a plus tant de différences entre les deux (au niveau de l'utilisation du moins).
Sinon c'est vrai que ce genre de truc est assez laborieux à implémenter ; perso j'utilise Resharper depuis longtemps, qui a une fonctionnalité "Generate equality members" assez bien faite.
Partager