IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre les nouveautés de C# 6 et C# 7
Un tutoriel de Aymen TROUDI

Le , par Community Management

67PARTAGES

10  0 
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel de Aymen TROUDI pour vous apprendre les nouveautés de C# 6 et C# 7.

Lors des TechDays 2015, Microsoft a présenté une nouvelle version 6 de son langage phare C#. À peine un an après, son successeur C# 7 prépare son arrivée. Chacune de ces versions apporte un ensemble de facilités aux développeurs.

À travers ce tutoriel, nous passons en revue l'ensemble des nouveautés apportées par C# 6 et celles attendues par C# 7. Chaque fonctionnalité sera décortiquée avec des exemples illustratifs.
Bonne lecture.

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation Dotnet.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de François DORIN
Expert éminent sénior https://www.developpez.com
Le 04/08/2017 à 9:17
Bonjour,

Bon article ! Ca fait du bien d'avoir des petites synthèses comme cela de temps en temps.

Il est juste dommage que certains codes sources donnés en exemple soient erronés.

Par exemple : dans la section II-C Initialisation des collections :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Avant C# 6

// initialisation d'une collection de personnes
var oldPers = new List<Person>()
{
    new Person("Walter", "White"),
    new Person("Jon", "Snow")
};

// Avec C# 6

// définition de méthodes d'extensions « Add »

// 1re méthode d'extension « Add » acceptant deux paramètres « string »
public static void Add(this List<Person> persons, string first, string last)
{
    persons.Add(new Person(first, last));
}

// 2e méthode d'extension « Add » acceptant un paramètre « int »
public static void Add(this List<Person> persons, int nbr)
{
    for (var index = 0; index < nbr; index++)
    {
        persons.Add(new Person("F_" + index, "L_" + index));
    }
}

// initialisation d'une collection de personnes
var newPers = new List<Person>()
{
    { "Walter", "White" },
    { "Jon", "Snow" },
    { 2 },
};
Les corrections sont en rouge.

Ensuite, même si je comprends que les codes données sont juste là pour donner le syntaxe, il serait bon de rester cohérent dans le code fourni. Ici, on déclare une méthode d'extension à côté d'attribut, ce qui n'est pas possible ! Car une méthode d'extension nécessite une classe statique, tandis que les attributs nécessitent une classe non statique. Il faudrait alors utiliser des attributs de classe.
3  0 
Avatar de François DORIN
Expert éminent sénior https://www.developpez.com
Le 04/08/2017 à 16:16
Merci pour le retour. Je comprends mieux maintenant l'origine de l'erreur. En temps normal, je n'aurais rien dit, car c'est du chipotage, mais l'erreur portant précisément sur les éléments syntaxiques en question...
2  0 
Avatar de Noxen
Membre chevronné https://www.developpez.com
Le 08/08/2017 à 15:42
Code : Sélectionner tout
1
2
3
4
5
var oldPers = new List<Person>()
{
    new Person("Walter", "White"),
    new Person("Jon", "Snow")
};
Tant qu'on en est de chipoter, avec les initialisateurs d'objets ou de collections on n'a pas besoin des parenthèses du constructeur sans paramètre (d'ailleurs ReSharper le signale comme code redondant).

Code : Sélectionner tout
1
2
3
4
5
6
// C'est correct sans les parenthèses du new List<T>()
var oldPers = new List<Person>
{
    new Person("Walter", "White"),
    new Person("Jon", "Snow")
};
1  0 
Avatar de atr.net
Nouveau Candidat au Club https://www.developpez.com
Le 04/08/2017 à 15:05
Merci François pour ton commentaire et d'avoir remarqué les erreurs qui sont passées entre les mailles du filet malgré les relectures depuis la première publication.
En cause le plugin utilisé pour faire la coloration syntaxique dans wordpress qui remplace les '()' par un ';' en fonction des actions d'édition (Preview ou Save).
J'espère que les modérateurs auront le temps et pourront corriger ces petites erreurs.
Pour info, le code (avant publication) a été testé sous VS 15/17 (R#) et Linqpad 5.
Cordialement,
Aymen

Citation Envoyé par François DORIN Voir le message

Bon article ! Ca fait du bien d'avoir des petites synthèses comme cela de temps en temps.
Il est juste dommage que certains code source donnée en exemple soient erronés.
0  0