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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Les nouveautés de C# 5.0 [Tutoriel]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut Les nouveautés de C# 5.0
    Bonjour,

    Cet article présente les deux grandes nouvelles fonctionnalités du langage C# en version 5.0.

    À l'heure à laquelle j'écris cet article, les outils et composants de Microsoft cités sont au stade de la Release Candidate et c'est sur cette version-là que les exemples ont été réalisés.

    L'article est accessible ici !

    N'hésitez pas commenter et noter cet article

    Bonne lecture à tous !

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Par défaut
    Bonjour,

    Il y a une coquille sur le premier tableau. Les iterateurs etaient présent dès C# 1.0.

    L'avant dernier bout de code du paragraphe II n'est pas coloré correctement. Et tous comme le bout de code suivant les "<" sont mal affichés
    Func&lt;Task&gt;
    Sinon la partie async n'a pas du être simple à écrire, on ne peut que te féliciter pour la facilité de compréhension que tu donnes sur le sujet.

    Par contre j'ai une petite question les nouveaux attributs. Si je tag un paramètre nommé toto avec CallerMemberName. La valeur de toto est elle saisie a la compilation, ou a l’exécution via un quelconque mécanisme de réflexion?
    Y'a-t-il un attribut pour récupérer l'instance appelante?
    Le fait que cela ne marche qu'avec Visual 2012, me laisse penser que c'est à la compilation.

  3. #3
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Bonjour,

    Merci pour ces quelques remarques et compliments

    Pour ce qui est des itérateurs, ils sont apparus avec C# 2.0.
    (source: http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx)

    Pour les deux coquilles avec le code, je vais corriger cela ce soir, merci !

    Pour les nouveaux attributs, c'est bien à la compilation que les valeurs sont résolues. Si on prend mon exemple avec l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    static void Main(string[] args)
    {
        try
        {
            int i = int.Parse("test");
        }
        catch (Exception exc)
        {
            new LogManager().LogException(exc);
        }
    }
    Le code compilé ressemblera à quelque chose de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    static void Main(string[] args)
    {
        try
        {
            int i = int.Parse("test");
        }
        catch (Exception exc)
        {
            new LogManager().LogException(exc, "Main", "Program.cs", 10);
        }
    }
    C'est le compilateur qui s'occupe de spécifier correctement les paramètres optionnels ayant été décorés avec les nouveaux attributs.

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Par défaut
    Citation Envoyé par Jérôme Lambert Voir le message
    Pour ce qui est des itérateurs, ils sont apparus avec C# 2.0.
    (source: http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx)
    Ah c'est yield qui est apparu avec C# 2, toutes mes excuses je pensais à IEnumerator.

  5. #5
    Membre extrêmement actif

    Homme Profil pro
    Software Developer
    Inscrit en
    Mars 2008
    Messages
    1 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Software Developer

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 470
    Par défaut
    Super article

    async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
    Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.

    101 exemples MSDN: http://www.wischik.com/lu/AsyncSilve...ncSamples.html

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    Super article

    async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
    Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.
    J'imagine qu'en méttant plusieurs await à la suite ca devrait être bon non?
    Bon apres si l'on offre la possibilité de déclencher les actions par divers biais...Mais bon du coup le cas ou il faut tout de même attendre les résultats d'autre action que l'on a même pas "prévu" c'est plutot étrange non?

  7. #7
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Par défaut
    Citation Envoyé par alex_vino Voir le message
    Super article

    async - await est une grande nouveauté, a la fois simple et puissant tout en était d'extremement lisible.
    Par contre les choses se compliquent lorsque plusieurs taches asynchrones dépendent l'une de l'autre (synchronisation), et a ce jour ils ne semblent toujours pas avoir simplifié ce probleme.

    101 exemples MSDN: http://www.wischik.com/lu/AsyncSilve...ncSamples.html
    Les task existent depuis le .NET Framework 4.0 et il existe une multitude de méthodes (ContinueWith, Wait, WaitAny, WaitAll, etc) permettant de construire des synchronisations plus complexes :

    http://msdn.microsoft.com/fr-fr/libr...asks.task.aspx

    Par contre, il est vrai que la lecture/relecture n'est pas aisée et async/await n'a pas pour but de simplifier ces deux points.

Discussions similaires

  1. [CR10]Quelles sont les nouveautés de la version 10 ?
    Par osoudee dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 11/11/2004, 16h37

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