Variable de propriété

Résolu
Julien237
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
- 9 déc. 2006 à 16:59
Julien237
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
- 9 déc. 2006 à 17:14
Bonjour,

Je cherche à déclarer une variable qui soit de type propriété d'une classe. Par exemple si j'ai ma classe C qui possède 3 propriétés p1, p2, p3 du même type, pouvoir déclarer

dim MaVar as new PropertyOfC

Et qu'après je puisse l'utiliser par exemple comme ceci pour définir une des propriétés :

C.MaVar = ...

J'imagine que ma vision syntaxique est un peu simpliste...

J'ai besoin de ce système car je suis en train de créer une classe assez gigantesque, et par la suite je devrai créer des fonctions pour me calculer la somme, le produit, la moyenne, la moyenne géométrique de chacune des ses propriétés (sur un array de classes, pas d'une seule)... Et j'aimerais ne pas devoir recréer une fonction pour chaque opération et chaque propriété de ma classe (Ce serait réellement énorme...).

Merci de votre aide !

Julien.

2 réponses

Julien237
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
9 déc. 2006 à 17:07
Wow j'ai trouvé !

System.Type.GetProperty

Puissant le framework 2.0...

Julien.
3
Julien237
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
7
9 déc. 2006 à 17:14
Je trouve ca intéressant alors je vous le montre :p ...

Public Class Form1

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim y As New Yop, l As Label
l = CType(y.GetType.GetProperty("Haha", GetType(Label)).GetValue(y, Nothing), Label)
MsgBox(l.Text)
End Sub
End Class

Public Class Yop
Private m_lbl As Label

Public Property Haha() As Label
Get
Return m_lbl
End Get
Set(ByVal value As Label)
m_lbl = value
End Set
End Property

Public Sub New()
m_lbl = New Label
m_lbl.Text = "yopyop"
End Sub
End Class
0