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

VB.NET Discussion :

Traduire le Yield de C# en VB 2010


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut Traduire le Yield de C# en VB 2010
    Bonjour

    Comment traduire le mot clé de C# en VB 2010 ?

    Merci

  2. #2
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    le mot clé yied en c# est traduit en fonction static (Shared en VB.NET).

    l'exemple ci-dessus donne comme résultat: 1,2,3,4,5,6,7,8,9,10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Shared Function Inc() As Integer()
        Dim count As Integer = 0
        Dim resultats As New List(Of Integer)
        Dim resultat As Integer = 0
        While count <= 10
            resultat += 1
            resultats.Add(result)
            count += 1
        End While
        Return resultats.ToArray()
    End Function

    en c#:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public static IEnumerable<int> Inc()
    {
        int count=0;
        int resultat=0;
        while (count <= 10)
        {
            resultat += 1;
            count += 1;
            yield return resultat;
        }
    }
    Il est disponible en VB.NET 2012, si tu as le 2010, le yeald est inclus dans l'extension Async CTP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Merci pour cette explication.

    Si je comprend bien ton exemple, désolé je ne connais pas bien la syntaxe de C#,
    permet de renvoyer un array de Int ?

    Je suis aller sur Async CTP.
    Dois-je passer en Framework 4.5 ?
    Ou dois-je télécharger un patch ?

    Merci pour ton aide.

    Bernard

  4. #4
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Voici un article qui explique le yield en c#

    Lien pour télécharger async CTP

    Il te faut au moins le framework 4.0 car c'est déjà inclus dans le framework 4.5.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 152
    Par défaut
    Bonsoir

    Merci beaucoup pour ton aide précieuse!!

    Bernard

  6. #6
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    De rien, si ça répond à ta question tu peux marquer la discussion comme étant résolue.

    Bon dév

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    Citation Envoyé par chamamo Voir le message
    le mot clé yied en c# est traduit en fonction static (Shared en VB.NET).
    oser dire ca alors que vous semblez connaitre ce que fait concretement yield ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    oser dire ca alors que vous semblez connaitre ce que fait concretement yield ?
    Il me semble qu'en c# le yield est transformé en un bloc static, pour garder l'état en mémoire avec l'exécution tardive, si tu n'es pas d'accord donne nous ton explication, on est la pour apprendre.

    L'autre approche est d'implémenter le pattern Iterator.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    je ne connais pas trop yield, ne faisant pas de c#
    ce mot clé n'est dispo que depuis vs 2012
    j'ai récupéré le lien pour le lire à l'occasion

    par contre moi ce que j'en pensait c'est que yield retourne un instance d'une collection, à chaque appel d'un for

    static/shared n'a rien à voir dans ce fonctionnement
    et retourner un tableau ou une collection remplie diffère donc du comportement de yield qui fait que la méthode est exécutée en plusieurs fois avec une sortie à chaque yield


    après en vb on a un mot clé static mais qui n'a pas le même fonctionnement qu'en c#
    le static de c# est le shared en vb
    le static en vb s'utilise à la place d'un dim pour dire que la valeur reste d'un appel à un autre
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    la méthode est exécutée en plusieurs fois avec une sortie à chaque yield
    Je ne suis pas tout à fait d'accord, ce n'est pas la méthode elle même qui est exécutée plusieurs fois, le yield retourne un IEnumerator, le compilateur génère une classe de type IEnumerator, il faudrait peu être faire un exemple et voir ce que ça donne avec Reflector.

  11. #11
    Max
    Max est déconnecté
    Expert confirmé

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Par défaut
    Yop.
    Citation Envoyé par Pol63 Voir le message
    je ne connais pas trop yield, ne faisant pas de c#
    ce mot clé n'est dispo que depuis vs 2012
    Si mes souvenirs sont bons, yield est apparu avec le framework 2.0 .

Discussions similaires

  1. [XL-2010] Traduire fonction excel en VBA dans une macro
    Par Foifoi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/09/2014, 15h31
  2. Traduire code VB 6 en code Vb 2010 express
    Par Garl17 dans le forum VB.NET
    Réponses: 1
    Dernier message: 23/04/2011, 23h27
  3. Obligatoire : lisez les règles du forum : MAJ 06/08/2010
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 03/07/2008, 13h46
  4. [merise]traduire en sql une association réflexive
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/03/2004, 18h10
  5. Traduire du DSP pour ADSP2181 de Analog Devices en C
    Par Aramis dans le forum Autres architectures
    Réponses: 4
    Dernier message: 14/06/2002, 12h03

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