none
Mot clef OPTIONAL avec variable RRS feed

  • Question

  • Existe t'il une solution pour utiliser une variable comme valeur par défaut au lieu d'une constante en utilisant le mot clef OPTIONAL?

    Exemple en .net

    Public Sub Ecrire(Mot as String, Optional Mot1 as String=variable)

    lundi 20 décembre 2010 14:54

Réponses

  • Bonjour,

    Pas directement avec "optional", mais une autre solution serait de définir une routine Ecrire(Mot) qui ferait un appel à la routine Ecrire(Mot,Variable). Qq chose comme :

     Public Property def As String = "Valeur par défaut"
    
     Public Sub MaSub(ByVal a As String)
      MaSub(a, def)
     End Sub
    
     Public Sub MaSub(ByVal a As String, ByVal b As String)
      ' Code...
    End Sub

     Ce qui permet de changer éventuellement la valeur par défaut. Bien sûr si cette valeur par défaut change fréquemment cela reviendrait à passer tout simplement cette variable comme deuxième paramètre et il deviendrait sans doute plus logique d'avoir simplement une routine avec deux arguments. 


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    lundi 20 décembre 2010 15:41
    Modérateur

Toutes les réponses

  • Bonjour,

    Pas directement avec "optional", mais une autre solution serait de définir une routine Ecrire(Mot) qui ferait un appel à la routine Ecrire(Mot,Variable). Qq chose comme :

     Public Property def As String = "Valeur par défaut"
    
     Public Sub MaSub(ByVal a As String)
      MaSub(a, def)
     End Sub
    
     Public Sub MaSub(ByVal a As String, ByVal b As String)
      ' Code...
    End Sub

     Ce qui permet de changer éventuellement la valeur par défaut. Bien sûr si cette valeur par défaut change fréquemment cela reviendrait à passer tout simplement cette variable comme deuxième paramètre et il deviendrait sans doute plus logique d'avoir simplement une routine avec deux arguments. 


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    lundi 20 décembre 2010 15:41
    Modérateur
  • Bonjour,

    oui c'est possible mais ta variable doit etre une constante comme ceci:

     

    Public Class Form1
     Public Const prenom As String = "toto"
     Public Sub Ecrire(ByVal Mot As String, Optional ByVal Mot1 As String = "exemple")
     'code
     End Sub
     Public Sub Ecrire2(ByVal Mot As String, Optional ByVal Mot1 As String = prenom)
     'code
     End Sub
    End Class
    
    


    fred
    lundi 20 décembre 2010 15:42
  • Merci pour vos réponses. J'avais envisagé la seconde solution en utilisant une variable globale. La première est intéressante aussi.

    En VB6.0 on pouvait utiliser une variable locale et la gérer avec la fonction IsMissing. En .net il faut passer par une variable globale.

    @+

    mardi 21 décembre 2010 08:59