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 :

Peux t'on énumérer les types de variables (String, integer, boolean, etc)?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut Peux t'on énumérer les types de variables (String, integer, boolean, etc)?
    Bonjour,
    J'écrit une classe pour manipuler les fichiers INI, dans cette classe j'ai une méthode destinée à convertir la chaîne de caractères vers le type de variable attendue. Peux t'on énumérer ces types de façon à transmettre l'argument à la méthode TryToConvert ? (autrement dit remplacer vartype as string par vartype as XXXXXXX dans la méthode ci-dessous)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Function TryToConvert(ByVal vartype As String, ByVal Value As String) As Object
            Dim _Value As Object = Nothing
            Try
                Select Case vartype
                    Case "String"
                        _Value = Convert.ToString(Value)
                    Case "Boolean"
                        _Value = Convert.ToBoolean(Value)
                    Case "Int16"
                        _Value = Convert.ToInt16(Value)
                End Select
            Catch ex As Exception
            End Try
            Return _Value
        End Function
    Merci beaucoup pour vos retours.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour quoi tu n'utilises pas "typeof" pour déterminer dans quel type du convertir ta valeur

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    Bonjour gcorbineau,
    Je pensais que c'étais mieux de déclarer explicitement le type attendue afin d'éviter des erreurs mais peut-être en effet que je pourrais laisser le code tester lui-même le type de donnée. Dans ce cas je pourrais même supprimer mon argument vartype. Je vais tester tout ça et revenir pour donner mes résultats.
    merci beaucoup pour l'information.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    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 204
    Par défaut
    il nous faudrait plus de détails, ici le typeof ne servirait à rien à mon avis

    tu recois un object, et selon le vartype qu'on te donne tu retourne un object converti
    or si tu veux le convertir, c'est que la variable n'est pas typé comme il faut en entrée, et le typeof ne sera alors pas utile si ce n'est pas typé
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    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 : 43
    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
    Par défaut
    Il vaudrait mieux faire une méthode générique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function TryToConvert(Of T)(ByVal Value As String) As T
        Dim ret As T
        Try
            ret = DirectCast(Convert.ChangeType(Value, GetType(T)), T)
        Catch
        End Try
        Return ret
    End Function
    Et pour l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim x = TryToConvert(Of Int32)("42")

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    Merci pour vos retours, je ne me suis pas encore décidé sur la méthode à utiliser. je me pose la question de savoir si je doit déclarer le type explicitement ou laisser le code se débrouiller et deviner dans quel type ma variable doit être converti

    or si tu veux le convertir, c'est que la variable n'est pas typé comme il faut en entrée
    Je précise que la valeur à convertir est un string à la base puisque celle-ci est issue d'un fichier .ini et bien que toutes les valeurs soit enregistrées en string au final elle doivent être converties dans le bon type :
    en boolean si c'est = "True" ou "False"
    en Integer si c'est = "42"
    en string si c'est ="Texte"
    et ainsi de suite....

    le code de Tomlev fonctionne bien mais c'est une autre façon de faire la même chose que moi (en précisant le type comme paramètre de la fonction d la fonction).
    EDIT : Le code de Tomlev fait mieux que moi puisqu'il évite l'énumération dans le code de tous les cas correspondant à chaque type
    Je vais faire des tests avec typeof pour voir ce que ça donne si j'arrive à l'utiliser.

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

Discussions similaires

  1. Afficher les type de variable
    Par merlinerick dans le forum Simulink
    Réponses: 0
    Dernier message: 27/08/2009, 11h48
  2. [Débutant] problème avec les types de variables
    Par mitmit dans le forum Débuter
    Réponses: 10
    Dernier message: 14/02/2008, 11h40
  3. Problème avec les types de variable
    Par binhjuventus dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/07/2006, 12h30
  4. les types de variables.
    Par 973thom dans le forum Access
    Réponses: 2
    Dernier message: 12/07/2006, 13h39
  5. Comparer les types de variable
    Par onipif dans le forum ASP
    Réponses: 11
    Dernier message: 27/05/2004, 18h07

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