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 :

Comment déclarer une variable avec le contenu d'une autre variable ?


Sujet :

VB.NET

  1. #1
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut Comment déclarer une variable avec le contenu d'une autre variable ?
    Bonjour,

    Je ne sais pas si c'est possible :

    Peut-on déclarer unee variable avec le contenu d'une autre variable ?

    Exemple, une variable serait ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim v1 as string = "bonjour"
     
    ' il faudrait qu'ensuite on puisse faire (principe) :
     
    Dim contenu_de_v1 As type_de_v1
     
    ' ce qui donnerait in fine une utilisation du genre :
     
    bonjour = "string..."
    Ah, je me demande si avec adressOf on ne peut pas faire quelque chose, mais bon ... là je suis largeement dépassé, si quelqu'un sait, merci d'avance, cordialement.

    Joe.
    .

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080

  3. #3
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Merci de ta réponse,

    Alors pour le type, a priori ça peut être ce que tu m'indiques, toutefois il reste le problème de savoir si on peut ensuite reprednre dynamiquement le contenu pour nommer une autre variable avec ?

    Merci, cordialement.

    Joe.
    .

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Qu'appelles tu nommer la variable?

  5. #5
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Qu'appelles tu nommer la variable?
    Bonjour toujours,

    Je pensais avoir bien expliqué ma demande avec exemple, je me serais donc mal expliqué, alors je recommence

    Je cherche à idetifier le type d'une variable (ce qui est fait grace à toi, bien que la boucle soit un peu volumineuse, voici le code pour le plaisir) :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Option Explicit On
    Public Class Form1
    	Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    		Dim re As Boolean	' réponse
    		Dim letype As String = ""	' type de la variable
    		Dim i As Integer
    		'----------------
    		Dim vr As Decimal	' type de la variable recherchér = vr si STRING : mettre une "= valeur"
    		'----------------
    		Dim v01 As UShort = 1	' type de variable à tester
    		Dim v02 As Short = 1
    		Dim v03 As Char = "a"
    		Dim v04 As Byte = 1
    		Dim v05 As SByte = 1
    		Dim v06 As Boolean = False
    		Dim v07 As Integer = 1
    		Dim v08 As UInteger = 1
    		Dim v09 As Long = 1
    		Dim v10 As ULong = 1
    		Dim v11 As Single = 1
    		Dim v12 As Double = 1
    		Dim v13 As Decimal = 1
    		Dim v14 As Date = "12/02/2011"
    		Dim v15 As String = "test"
    		Dim v16 As Object = Nothing
    		'
    		For i = 1 To 16
    			re = False
    			Select Case i
    				Case 1 : re = Object.ReferenceEquals(vr.GetType(), v01.GetType())
    				Case 2 : re = Object.ReferenceEquals(vr.GetType(), v02.GetType())
    				Case 3 : re = Object.ReferenceEquals(vr.GetType(), v03.GetType())
    				Case 4 : re = Object.ReferenceEquals(vr.GetType(), v04.GetType())
    				Case 5 : re = Object.ReferenceEquals(vr.GetType(), v05.GetType())
    				Case 6 : re = Object.ReferenceEquals(vr.GetType(), v06.GetType())
    				Case 7 : re = Object.ReferenceEquals(vr.GetType(), v07.GetType())
    				Case 8 : re = Object.ReferenceEquals(vr.GetType(), v08.GetType())
    				Case 9 : re = Object.ReferenceEquals(vr.GetType(), v09.GetType())
    				Case 10 : re = Object.ReferenceEquals(vr.GetType(), v10.GetType())
    				Case 11 : re = Object.ReferenceEquals(vr.GetType(), v11.GetType())
    				Case 12 : re = Object.ReferenceEquals(vr.GetType(), v12.GetType())
    				Case 13 : re = Object.ReferenceEquals(vr.GetType(), v13.GetType())
    				Case 14 : re = Object.ReferenceEquals(vr.GetType(), v14.GetType())
    				Case 15 : re = Object.ReferenceEquals(vr.GetType(), v15.GetType())
    				Case 16 : re = Object.ReferenceEquals(vr.GetType(), v16.GetType())
    			End Select
    			If re = False Then Continue For
    			Select Case i
    				Case 1 : letype = "v" & Format(i, "00") & " est de type UNSIGNED SHORT"
    				Case 2 : letype = "v" & Format(i, "00") & " est de type SHORT"
    				Case 3 : letype = "v" & Format(i, "00") & " est de type CHAR"
    				Case 4 : letype = "v" & Format(i, "00") & " est de type BYTE"
    				Case 5 : letype = "v" & Format(i, "00") & " est de type SIGNED BYTE"
    				Case 6 : letype = "v" & Format(i, "00") & " est de type BOOLEAN"
    				Case 7 : letype = "v" & Format(i, "00") & " est de type INTEGER"
    				Case 8 : letype = "v" & Format(i, "00") & " est de type UNSIGNED INTEGER"
    				Case 9 : letype = "v" & Format(i, "00") & " est de type LONG"
    				Case 10 : letype = "v" & i & " est de type UNSIGNED LONG"
    				Case 11 : letype = "v" & i & " est de type SINGLE"
    				Case 12 : letype = "v" & i & " est de type DOUBLE"
    				Case 13 : letype = "v" & i & " est de type DECIMAL"
    				Case 14 : letype = "v" & i & " est de type DATE"
    				Case 15 : letype = "v" & i & " est de type STRING"
    				Case 16 : letype = "v" & i & " est de type OBJET"
    			End Select
    			If re = True Then
    				MsgBox("La variable  " & letype, vbInformation)
    				End
    			End If
    		Next
    		MsgBox("Type indéterminé", vbExclamation)
    		End
    	End Sub
    End Class
    Et maintenant il me reste à utiliser le contenu d'une variable pour en déclarer unen autre, exemple :

    Nous aurions une variable comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox(variableX) ' = "bonjour"
    Je voudrais avec le contenu de cette variableX en faire une variable qui se nomme "bonjour", soit, qui se nomme avec le contenu de la première, ce qui serait censé faire sur le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim contenu_de_variableX
    bonjour = "nouvelle variable du contenu de la première"
    Peut être est-ce possible avec AdressOff, ou d'aute codes de ce genre, je ne sais pas, ce qui permettrait de déclarer d'ynamiquement des variable en les prénomant par exemple à partir de la lecture d'un fichier ou du contenu d'une variable (dans cet exemple).

    Au plaisir, cordialement.

    Joe.
    .

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Question idiote: A quoi ca sert? Quelle est l'application?

  7. #7
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Question idiote: A quoi ca sert? Quelle est l'application?
    Bonsoir,

    A déclarer des variables sans avoir à les écrire directement.

    Cordialement.

    Joe.
    .

  8. #8
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut automatiser la "frappe" du code
    bonjour
    c'est pas possible .Il faut voir System.CodeDom.
    Une Calamite pour les "povres" programmeurs .Il cree le code,le compile et genere un assembly executable
    Regarde dans Sub New de classe Sample pour le nom du type cree.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
     
    Imports System
    Imports System.Reflection
    Imports System.IO
    Imports System.CodeDom
    Imports System.CodeDom.Compiler
    Imports Microsoft.VisualBasic
     
    ' This code example creates a graph using a CodeCompileUnit and  
    ' generates source code for the graph using the VBCodeProvider.
    Class Sample
     
        ' Define the compile unit to use for code generation. 
        Private targetUnit As CodeCompileUnit
     
        ' The only class in the compile unit. This class contains 2 fields,
        ' 3 properties, a constructor, an entry point, and 1 simple method. 
        Private targetClass As CodeTypeDeclaration
     
        ' The name of the file to contain the source code.
        Private Const outputFileName As String = "SampleCode.vb"
     
        ' Define the class.
        Public Sub New()
            targetUnit = New CodeCompileUnit()
            Dim samples As New CodeNamespace("CodeDOMSample")
            samples.Imports.Add(New CodeNamespaceImport("System"))
            'voici le nom du type !!!!
            targetClass = New CodeTypeDeclaration("CodeDOMCreatedClass")
            targetClass.IsClass = True
            targetClass.TypeAttributes = _
                TypeAttributes.Public Or TypeAttributes.Sealed
            samples.Types.Add(targetClass)
            targetUnit.Namespaces.Add(samples)
     
        End Sub 'New
     
        ' Adds two fields to the class.
        Public Sub AddFields()
            ' Declare the widthValue field.
            Dim widthValueField As New CodeMemberField()
            widthValueField.Attributes = MemberAttributes.Private
            widthValueField.Name = "widthValue"
            widthValueField.Type = _
                New CodeTypeReference(GetType(System.Double))
            widthValueField.Comments.Add(New CodeCommentStatement( _
                "The width of the object."))
            targetClass.Members.Add(widthValueField)
     
            ' Declare the heightValue field
            Dim heightValueField As New CodeMemberField()
            heightValueField.Attributes = MemberAttributes.Private
            heightValueField.Name = "heightValue"
            heightValueField.Type = _
                New CodeTypeReference(GetType(System.Double))
            heightValueField.Comments.Add(New CodeCommentStatement( _
                "The height of the object."))
            targetClass.Members.Add(heightValueField)
     
        End Sub 'AddFields
     
        ' Add three properties to the class.
        Public Sub AddProperties()
            ' Declare the read only Width property.
            Dim widthProperty As New CodeMemberProperty()
            widthProperty.Attributes = _
                MemberAttributes.Public Or MemberAttributes.Final
            widthProperty.Name = "Width"
            widthProperty.HasGet = True
            widthProperty.Type = New CodeTypeReference(GetType(System.Double))
            widthProperty.Comments.Add(New CodeCommentStatement( _
                "The width property for the object."))
            widthProperty.GetStatements.Add(New CodeMethodReturnStatement( _
                New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "widthValue")))
            targetClass.Members.Add(widthProperty)
     
            ' Declare the read-only Height property.
            Dim heightProperty As New CodeMemberProperty()
            heightProperty.Attributes = _
                MemberAttributes.Public Or MemberAttributes.Final
            heightProperty.Name = "Height"
            heightProperty.HasGet = True
            heightProperty.Type = New CodeTypeReference(GetType(System.Double))
            heightProperty.Comments.Add(New CodeCommentStatement( _
                "The Height property for the object."))
            heightProperty.GetStatements.Add(New CodeMethodReturnStatement( _
                New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "heightValue")))
            targetClass.Members.Add(heightProperty)
     
            ' Declare the read only Area property.
            Dim areaProperty As New CodeMemberProperty()
            areaProperty.Attributes = _
                MemberAttributes.Public Or MemberAttributes.Final
            areaProperty.Name = "Area"
            areaProperty.HasGet = True
            areaProperty.Type = New CodeTypeReference(GetType(System.Double))
            areaProperty.Comments.Add(New CodeCommentStatement( _
                "The Area property for the object."))
     
            ' Create an expression to calculate the area for the get accessor
            ' of the Area property.
            Dim areaExpression As New CodeBinaryOperatorExpression( _
                New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "widthValue"), _
                CodeBinaryOperatorType.Multiply, _
                New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "heightValue"))
            areaProperty.GetStatements.Add( _
                New CodeMethodReturnStatement(areaExpression))
            targetClass.Members.Add(areaProperty)
     
        End Sub 'AddProperties
     
        ' Adds a method to the class. This method multiplies values stored 
        ' in both fields.
        Public Sub AddMethod()
            ' Declaring a ToString method.
            Dim toStringMethod As New CodeMemberMethod()
            toStringMethod.Attributes = _
                MemberAttributes.Public Or MemberAttributes.Override
            toStringMethod.Name = "ToString"
            toStringMethod.ReturnType = _
                New CodeTypeReference(GetType(System.String))
     
            Dim widthReference As New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "Width")
            Dim heightReference As New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "Height")
            Dim areaReference As New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "Area")
     
            ' Declaring a return statement for method ToString.
            Dim returnStatement As New CodeMethodReturnStatement()
     
            ' This statement returns a string representation of the width,
            ' height, and area.
            Dim formattedOutput As String = "The object:" & Environment.NewLine _
                & " width = {0}," & Environment.NewLine & " height = {1}," _
                & Environment.NewLine & " area = {2}"
            returnStatement.Expression = New CodeMethodInvokeExpression( _
                New CodeTypeReferenceExpression("System.String"), "Format", _
                New CodePrimitiveExpression(formattedOutput), widthReference, _
                heightReference, areaReference)
            toStringMethod.Statements.Add(returnStatement)
            targetClass.Members.Add(toStringMethod)
     
        End Sub 'AddMethod
     
        ' Add a constructor to the class.
        Public Sub AddConstructor()
            ' Declare the constructor
            Dim constructor As New CodeConstructor()
            constructor.Attributes = _
                MemberAttributes.Public Or MemberAttributes.Final
     
            ' Add parameters.
            constructor.Parameters.Add( _
                New CodeParameterDeclarationExpression( _
                GetType(System.Double), "width"))
            constructor.Parameters.Add( _
                New CodeParameterDeclarationExpression( _
                GetType(System.Double), "height"))
     
            ' Add field initialization logic
            Dim widthReference As New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "widthValue")
            constructor.Statements.Add(New CodeAssignStatement( _
                widthReference, New CodeArgumentReferenceExpression("width")))
            Dim heightReference As New CodeFieldReferenceExpression( _
                New CodeThisReferenceExpression(), "heightValue")
            constructor.Statements.Add( _
                New CodeAssignStatement(heightReference, _
                New CodeArgumentReferenceExpression("height")))
            targetClass.Members.Add(constructor)
     
        End Sub 'AddConstructor
     
        ' Add an entry point to the class.
        Public Sub AddEntryPoint()
            Dim start As New CodeEntryPointMethod()
            Dim objectCreate As New CodeObjectCreateExpression( _
                New CodeTypeReference("CodeDOMCreatedClass"), _
                New CodePrimitiveExpression(5.3), _
                New CodePrimitiveExpression(6.9))
     
            ' Add the statement:
            ' "CodeDOMCreatedClass testClass = _
            '     new CodeDOMCreatedClass(5.3, 6.9);"
            start.Statements.Add(New CodeVariableDeclarationStatement( _
                New CodeTypeReference("CodeDOMCreatedClass"), _
                "testClass", objectCreate))
     
            ' Creat the expression:
            ' "testClass.ToString()"
            Dim toStringInvoke As New CodeMethodInvokeExpression( _
                New CodeVariableReferenceExpression("testClass"), "ToString")
     
            ' Add a System.Console.WriteLine statement with the previous 
            ' expression as a parameter.
            start.Statements.Add(New CodeMethodInvokeExpression( _
                New CodeTypeReferenceExpression("System.Console"), _
                "WriteLine", toStringInvoke))
            targetClass.Members.Add(start)
     
        End Sub 'AddEntryPoint
     
        ' Generate Visual Basic source code from the compile unit.
        Public Sub GenerateVBCode(ByVal fileName As String)
            Dim provider As CodeDomProvider
            provider = CodeDomProvider.CreateProvider("VisualBasic")
            Dim options As New CodeGeneratorOptions()
            Dim sourceWriter As New StreamWriter(fileName)
            Try
                provider.GenerateCodeFromCompileUnit( _
                    targetUnit, sourceWriter, options)
            Finally
                sourceWriter.Dispose()
            End Try
     
        End Sub 'GenerateVBCode
     
        ' Create the CodeDOM graph and generate the code.
        Shared Sub Main()
            Dim sample As New Sample()
            sample.AddFields()
            sample.AddProperties()
            sample.AddMethod()
            sample.AddConstructor()
            sample.AddEntryPoint()
            sample.GenerateVBCode(outputFileName)
     
        End Sub 'Main
    End Class 'Sample
    .
    Lorsque l'exemple précédent est compilé et exécuté, il produit le code source suivant.
    le "monstre" du DodeDom qui risque de mettre les "povres" au chomage.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    Lorsque l'exemple précédent est compilé et exécuté, il produit le code source suivant.
    '--------------------------------------------------------------------------
    ' <auto-generated>
    '     This code was generated by a tool.
    '     Runtime Version:2.0.50727.42
    '
    '     Changes to this file may cause incorrect behavior and will be lost if
    '     the code is regenerated.
    ' </auto-generated>
    '--------------------------------------------------------------------------
     
    Option Strict Off
    Option Explicit On
     
    Imports System
     
    Namespace CodeDOMSample
     
        Public NotInheritable Class CodeDOMCreatedClass
     
            'The width of the object.
            Private widthValue As Double
     
            'The height of the object.
            Private heightValue As Double
     
            Public Sub New(ByVal width As Double, ByVal height As Double)
                MyBase.New
                Me.widthValue = width
                Me.heightValue = height
            End Sub
     
            'The width property for the object.
            Public ReadOnly Property Width() As Double
                Get
                    Return Me.widthValue
                End Get
            End Property
     
            'The Height property for the object.
            Public ReadOnly Property Height() As Double
                Get
                    Return Me.heightValue
                End Get
            End Property
     
            'The Area property for the object.
            Public ReadOnly Property Area() As Double
                Get
                    Return (Me.widthValue * Me.heightValue)
                End Get
            End Property
     
            Public Overrides Function ToString() As String
                Return String.Format("The object:"& _
                    Global.Microsoft.VisualBasic.ChrW(13)& _
                    Global.Microsoft.VisualBasic.ChrW(10)& _
                    " width = {0},"&Global.Microsoft.VisualBasic.ChrW(13)& _
                    Global.Microsoft.VisualBasic.ChrW(10)& _
                    " height = {1},"&Global.Microsoft.VisualBasic.ChrW(13)& _
                    Global.Microsoft.VisualBasic.ChrW(10)&" area = {2}", _
                    Me.Width, Me.Height, Me.Area)
            End Function
     
            Public Shared Sub Main()
                Dim testClass As CodeDOMCreatedClass = _
                    New CodeDOMCreatedClass(5.3, 6.9)
                System.Console.WriteLine(testClass.ToString)
            End Sub
        End Class
    End Namespace
    si tu adpotes "ca" tu te feras "hara-kiri".....
    bonne soiree....

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par Ehjoe Voir le message
    Bonsoir,

    A déclarer des variables sans avoir à les écrire directement.

    Cordialement.

    Joe.
    .
    Ca j'avais bien compris. Mais l'utilité fonctionelle derrière? Quel est le besoin?
    Un nom de variable n'est qu'un nom sur une case mémoire pour que le programmeur s'y retrouve. Quand c'est compilé la machine s'en fiche du nom...

  10. #10
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Mais l'utilité fonctionelle derrière? Quel est le besoin?
    Bonjour,

    Plusieurs raisons, je vois parfois cette question qui a priori ne trouve pas de réponse (elle n'en a peut être pas), par curiosité aussi, et en dernier, ça peut en effet être utilisé dans certains cas où ça éviterait d'écrire le nom de variables (déjà écrit dans des datas).

    Vois cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub Button1_Click(ByVal sender As System.Object, ByVal e As ystem.EventArgs) Handles Button1.Click
      Dim t As New System.Threading.Thread(AddressOf maProcedure)
      t.Start()
    End Sub
    '
    Sub maProcedure()
      MsgBox("Je suis dans la procédure : maProcedure")
    End Sub
    Je me demande si on ne peut pas faire quelque chose sur ce principe, en somme localiser l'emplacement d'une variable pour lire son contenu et le passer en argument à la déclaration d'une autre variable ?

    Cordialement.

    Joe.
    .

  11. #11
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Ca s'appelle un pointeur. Mais je vois toujours pas l'utilité dans un cas concret.
    De tous les trucs que j'ai fait, et pourtant j'en ai fait des trucs tordus et saugrenus, j'en ai jamais eu l'utilité.

  12. #12
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Ca s'appelle un pointeur. Mais je vois toujours pas l'utilité dans un cas concret.
    De tous les trucs que j'ai fait, et pourtant j'en ai fait des trucs tordus et saugrenus, j'en ai jamais eu l'utilité.
    Bonjour,

    Mais... je t'ai donné un exemple, des datas contenant différentes informations (peu importe : des voiture : couleurs : prix)... ben en lisant la première ligne qui indiquerait voiture, etc... Il ne serait pas insensé de reprendre le mot "voiture" contenu dans la variable de lecture de la data pour en faire une variable dim() puis après lecture en faire un ReDim avec le nombre, et en seconde lecture de tout verser dans la variable "voiture(i)", etc pour les autres...

    Alors sur une opération ce n'est peut être pas significatif, mais si on a un mécanisme répétitif ce n'est pas inintéressant de déclarer des variables virtuellement... C'est comme les objets virtuels, à quoi ça sert, on peut aussi les écrire avec le code, ben ça sert à gagner un peu de temps dans certains cas, ou par exemple de présenter un exemple de codage qui ne demande rien d'autre qu'un copier-coller du code, les objets se mettant en place tout seul, ben là, ce seraient les variables qui se mettraient aussi en place sans code écrit, ça ne me semble pas fondamentalement inutile de pouvoir le faire.

    Toutefois, on n'est pas toujours obligé d'avoir une utilité puis de rechercher le procédé, on peut avoir des procédés et ensuite y trouver une utilité, non ?

    Cordialement.

    Joe.
    .

  13. #13
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut nom des variables declares au run-time
    bonjour
    Il y a la confusion totale entre Compile-Time & Run-Time.
    Au Run-Time (c.a.d apres compilation et generation d'un executable binaire) un executable ne contient que les adresses binaires des variables.
    Les noms des variables sont geres par le compilateur uniquement. Il n' y a aucune trace dans l'executable.
    Or ce que tu veux faire c'est gerer le nom des variables à l'execution apres run-time,c'est absurde.
    bon code...

  14. #14
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 682
    Points : 1 952
    Points
    1 952
    Par défaut
    Citation Envoyé par Ehjoe Voir le message
    ce seraient les variables qui se mettraient aussi en place sans code écrit
    Mise a part avec un abracadabra, impossible a une simple variable de faire quoi que ce soit ... ce n'est qu'une variable !!!

    Citation Envoyé par MABROUKI Voir le message
    Or ce que tu veux faire c'est gerer le nom des variables à l'execution apres run-time,c'est absurde.
    Et totalement sans interet.
    Sans parler qu'apres obfuscation ...

  15. #15
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Je croyais être le seul à pas comprendre, je me sens moins bête

Discussions similaires

  1. [XL-2003] Comment documenter un DTPickers avec le contenu d'une cellule qui peut être vide.
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/12/2010, 00h54
  2. [PHP 4] Affichage d'une image avec chemin contenu dans une variable
    Par terrysharp dans le forum Langage
    Réponses: 1
    Dernier message: 16/07/2009, 14h54
  3. executer une requete avec le contenu d'une variable
    Par giloo(94) dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/02/2007, 01h58
  4. Remplir une ListView avec le contenu d'une requête
    Par callo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/10/2006, 08h44
  5. [CSS] Probleme avec le contenu d'une boite avec IE
    Par Seth77 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 19/07/2006, 11h52

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