+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Community Manager

    Femme Profil pro
    Étudiant
    Inscrit en
    juin 2015
    Messages
    1 595
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2015
    Messages : 1 595
    Points : 4 569
    Points
    4 569

    Par défaut Tutoriel pour apprendre les nouveautés de C# 6 et C# 7

    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.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  2. #2
    Rédacteur/Modérateur

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 1 416
    Points : 4 774
    Points
    4 774
    Billets dans le blog
    5

    Par défaut

    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 - Visualiser dans une fenêtre à part
    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.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    août 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : août 2017
    Messages : 1
    Points : 1
    Points
    1

    Par défaut

    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.

  4. #4
    Rédacteur/Modérateur

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    1 416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 1 416
    Points : 4 774
    Points
    4 774
    Billets dans le blog
    5

    Par défaut

    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...
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : juin 2007
    Messages : 383
    Points : 585
    Points
    585

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 - Visualiser dans une fenêtre à part
    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")
    };

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/09/2017, 15h44
  2. Réponses: 5
    Dernier message: 16/03/2017, 00h26
  3. Réponses: 3
    Dernier message: 06/10/2016, 21h22
  4. Tutoriel pour apprendre les structures arborescentes
    Par Malick dans le forum Général Algorithmique
    Réponses: 0
    Dernier message: 21/01/2006, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo