VB/VB.Net get/set petite question

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#1
Comme le marque le titre, j'ai un gros problème avec les fameux send/get x) et je me demande si une ame de grosse bonté peu me vulgariser(simplifier) leur fontion dans notre programme(n'importe ). Merci d'avance :D
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#2
Petit exemple du MSDN:

Code:
Dim Name As String
Property fullName() As String
    Get
      Return Name
    End Get
    Set(ByVal Value As String)
      Name = Value
    End Set
End Property
Facile à comprendre non ?
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#3
C'est ca le prob' je galere a comprendre qu'est ca que le value viens faire ici ainsi que la nature du fullname() (fonction, objet...) ? merci deja pour ta reponse :p
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#4
En gros le principe c'est d'avoir une variable qui stockera la valeur:
Code:
Dim Name As String
Et un Property:
Code:
Property fullName() As String
    Get
      Return Name
    End Get
    Set(ByVal Value As String)
      Name = Value
    End Set
End Property
Décortiquons ce code:

Code:
Get
      Return Name
    End Get
Le get c'est se qui va retourner la valeur, donc on retourne Name.

Code:
Set(ByVal Value As String)
      Name = Value
    End Set
Le set c'est lorqu'on défini la valeur de Name, Value étant la valeur attribué.
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#5
WOOOOOOAAAAA c'est de la POO sauce VB ???
Jamais rien vu d'aussi dégueu !!!

C'était le démotivateur de minuit :D
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#6
sinon a la place de set :
name = value
et de get :
value = name
ca marche aussi
 
Inscrit
19 Aout 2014
Messages
16
Reactions
0
#7
C'est ce qu'on appelle des propriétés, tu n'es pas obligé d'en utiliser bien que ce soit plus propre.
 

Lakh92

Membre Actif
Inscrit
24 Decembre 2009
Messages
118
Reactions
0
#8
De manière générale, les propriétés permettent de mieux gérer l'accessibilité de ta donnée.
Tu veux par exemple exposer une variable sans pour autant permettre à une ressource extérieure de modifier cette variable.
C'est faisable en disant explicitement que le Set est privé :

Code:
Private foo As Integer
Public Property Foo() As Integer
   Get
      Return foo
   End Get
   Private Set(ByVal value As Integer)
      foo = value
   End Set
End Property
Ainsi, foo est accessible en lecture, mais pas en écriture.
 

Gohu

Membre Actif
Inscrit
16 Novembre 2013
Messages
222
Reactions
2
#9
Propriétés = connerie de la POO.
C'est simplement le nom que on a donné au variables publiques, pour faire croire que c'est moins sale que une variable publique.
 

zahid98

Membre Actif
Inscrit
13 Decembre 2014
Messages
352
Reactions
2
#10
Haha @gohu donc c est futile :D et merci pour vos reponses ca fait plaisir de voir autant de reponses :D!
Edit: donc le get/servent a declarer ume variable constante? :) et le value faut pas le declarer? x)
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#11
En gros ta une variable Publique et une variable Privée qui retourneront les mêmes valeurs.
Je vois pas vraiment l'interet d'un property si c est pas pour effectuer des opérations sur la variable, ou des conditons assez spéciales. Autrement autant déclarer une variable publique.
 

Lakh92

Membre Actif
Inscrit
24 Decembre 2009
Messages
118
Reactions
0
#12
Gohu a dit:
Propriétés = connerie de la POO.
C'est simplement le nom que on a donné au variables publiques, pour faire croire que c'est moins sale que une variable publique.
BlueDream a dit:
En gros ta une variable Publique et une variable Privée qui retourneront les mêmes valeurs.
Je vois pas vraiment l'interet d'un property si c est pas pour effectuer des opérations sur la variable, ou des conditons assez spéciales. Autrement autant déclarer une variable publique.
...

Lakh92 a dit:
De manière générale, les propriétés permettent de mieux gérer l'accessibilité de ta donnée.
Tu veux par exemple exposer une variable sans pour autant permettre à une ressource extérieure de modifier cette variable.
C'est faisable en disant explicitement que le Set est privé :

Code:
Private foo As Integer
Public Property Foo() As Integer
   Get
      Return foo
   End Get
   Private Set(ByVal value As Integer)
      foo = value
   End Set
End Property
Ainsi, foo est accessible en lecture, mais pas en écriture.
 
Dernière édition par un modérateur:
Haut Bas