Résultats de 1 à 2 sur 2

Sujet : [VB.NET] Utiliser CType mais autrement

  1. #1

    [VB.NET] Utiliser CType mais autrement

    Bonjour à tous,

    Voilà, j\'aimerai créer une fonction qui recoit en parametre :
    - une valeur,
    - un type de données auquel je veux convertir cette valeur.

    Et donc je pensais utiliser la fonction CType(...) mais apparement il faut ecrire directement le type dans lequel on veut convertir (System.Integer ou System.String par exemple)

    Public sub test(byVal maValeur as object, byVal monType as type)

    Dim valeur = CType(maValeur , monType)

    End Sub
    j\'espere que vous aurez a peu pres compris mon problème, je sais pas si j\'ai été assez clair. Enfin si vous avez une idée...

    Merci d\'avance à tous.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    5
    Salut,

    Ce serait tellement plus simple de convertir directement ta variable sans passer par une fonction :

    Code:
    Dim valeur as integer = 1000
    Dim valeur2 as string = valeur.toString
    Mais si tu y tiens :

    Code:
        Function ConversionDeType(ByVal valeur As Object, ByVal type As Type)
            Dim nInt As Integer
            Dim nStr As String
            Dim nBool As Boolean
            Dim nDbl As Double
    
            Dim nType = type.GetType
    
            If TypeOf nType Is Integer Then
                Try
                    nInt = System.Convert.ToInt32(valeur)
                Catch ex As Exception
                    nInt = 0
                End Try
                Return nInt
    
            ElseIf TypeOf nType Is Double Then
                Try
                    nDbl = System.Convert.ToDouble(valeur)
                Catch ex As Exception
                    nDbl = 0
                End Try
                Return nDbl
    
            ElseIf TypeOf nType Is Boolean Then
                Try
                    nStr = System.Convert.ToBoolean(valeur)
                Catch ex As Exception
                    nStr = \"\"
                End Try
                Return nStr
    
            ElseIf TypeOf nType Is String Then
                Try
                    nBool = System.Convert.ToString(valeur)
                Catch ex As Exception
                    nBool = False
                End Try
                Return nBool
            End If
        End Function
    Pour tester cette fonction:

    Code:
        Dim valeurInitiale As Integer = 10000
        Dim valeurConvertie As String
        Dim test As String = ConversionDeType(valeurInitiale, valeurConvertie.GetType)
    Reste plus qu\'a rajouter des Types et aussi une partie qui testera si la conversion est possible et si elle génère des erreurs de type overflow ou autre ...

    a+

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé