Bonjour,
Je me retrouve dans un cas ou je souhaite dans une condition faire dans le même temps une affectation, ex:
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
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
Mais je veux conserver dans ma variable A, le résultat de ma fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim A As Integer = 0 If ( (MaFonctionRenvoieUnEntier(MonParametre)) <> 1 ) Then ...
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, 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.mais pourquoi tu n'affectes pas ta valeur à A dans un premier temps, et ensuite tu fais ta comparaison
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
Partager