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

 .NET Discussion :

Comparaison VS Affectation


Sujet :

.NET

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 53
    Points
    53
    Par défaut Comparaison VS Affectation
    Bonjour,

    Je me retrouve dans un cas ou je souhaite dans une condition faire dans le même temps une affectation, ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim A As Integer = 0
    If ( (A = MaFonctionRenvoieUnEntier(MonParametre)) <> 1 ) Then
    <div style="margin-left:40px">...</div>Else
    <div style="margin-left:40px">...</div>End If
    Je veux donc affecter à A une valeur que ma fonction me renvoie, et le comparer aussitôt à 1. Je pourrai comparer le résultat de ma fonction directement à 1 en écrivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim A As Integer = 0
    If ( (MaFonctionRenvoieUnEntier(MonParametre)) <> 1 ) Then
    ...
    Mais je veux conserver dans ma variable A, le résultat de ma fonction.
    Est-ce que c'est possible, en utilisant évidemment autre chose que l'opérateur = puisque VB.NET ne fait pas une distinction comme certains langages avec == et =
    Je sais que votre première remarque va être
    mais pourquoi tu n'affectes pas ta valeur à A dans un premier temps, et ensuite tu fais ta comparaison
    , tout simplement parceque dans mon contexte ce n'est pas ce que je veux faire, je veux rendre mon système lisible et simple en même temps.
    Evidemment si c'est impossible, je n'irai pas voir plus loin, par contre si quiconque a le petit truc qui permet de le faire, soit avec un opérateur magique, ou bien avec une autre méthode..
    Dans mon exemple, ce qui se passe évidemment c'est qu'il compare tout d'abord A qui est égal à 0 (et dont la valeur ne sera pas modifiée) à ce que me retourne ma fonction, disons 5 par exemple.
    Ce qui nous donne donc 0 = 5 c'est à dire False.
    Ensuite il compare False (0) à 1, ce qui donne 0 <> 1, c'est à dire True.

    Merci d'avance pour vos bonnes suggestions !

    JS

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Je ne crois pas que ce soit possible en VB.NET... la faute à l'opérateur "=" qui sert à la fois à l'affectation et à la comparaison. Dans un If, je crois qu'il est toujours interprété comme opérateur de comparaison.

    En C# on pourrait faire ça, vu que l'opérateur d'égalité ("==") et d'affectation ("=") sont différents.

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Points : 53
    Points
    53
    Par défaut
    Merci pour ta réponse tomlev,
    Je m'attendais bien sûr à ce que je demandais soit impossible à faire, vu l'interprétation de l'opérateur '=' par VB.NET.
    Mais je crois toujours à LA solution alternative (qui n'arrivera peut-être jamais..), alors sait-on jamais...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] VBA comparaison et affectation de données excel
    Par Vijeth75 dans le forum Excel
    Réponses: 2
    Dernier message: 04/05/2015, 13h58
  2. comparaison+affectation dans une boucle
    Par casafa dans le forum C++
    Réponses: 6
    Dernier message: 07/06/2008, 12h25
  3. comparaison de 2 dates
    Par eisti dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2003, 11h33
  4. Comparaison d'un registre 8 bits avec une variable 32 bits
    Par tupperware dans le forum x86 32-bits / 64-bits
    Réponses: 3
    Dernier message: 15/10/2002, 10h25
  5. [MaskEditBox] Affecter avec un réel
    Par fikou dans le forum Général VBA
    Réponses: 6
    Dernier message: 16/09/2002, 09h28

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