cs_ShayW
Messages postés3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 2019
-
20 déc. 2012 à 19:18
foliv57
Messages postés420Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention15 juillet 2014
-
20 déc. 2012 à 20:12
Bonjour
quelle est la différence entre heriter
une class ou faire passer comme parametre
ex 1
P
ublic class ClassA
Inherits PictureBox
Public Sub New(ByVal position As Point)
Me.Location = New Point(position)
Me.width = 100
me.height = 100
End Sub
end class
'dans la form
Private pic1 As ClassA
dans le load
pic1 = new classA(new point(10,10)
me.controls.add(pic1)
ex 2
Public Class classB
Public Sub New(byref picA as picturebox,ByVal position As Point)
picA.Location = New Point(position)
picA.width = 100
picA.height = 100
End Sub
end class
'dans la form
Private pic1 As ClassB
private picA as new picturebox
dans le load
pic1 = new classB(picA,new point(10,10)
me.controls.add(pic1)
foliv57
Messages postés420Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention15 juillet 20149 20 déc. 2012 à 20:07
La différence est qu'avec l'héritage, votre objet héritera de toutes les propriétés de la classe de base et pourra être considéré comme une PictureBox si nécessaire.
Exemple en utilisant une propriété de la classe de base
Dim pic1 = new classA(new point(10,10))
pic1.Image = MonImage
Exemple de cast
Dim pic1 = new classA(new point(10,10))
Dim monPict As PictureBox = CType(pic1, PictureBox)
Dans l'autre cas, la picture box n'est qu'une variable de votre objet. Il faudra créer une propriété pour pouvoir accéder à ces propriétés.
Exemple:
Dim pic1 = new classB(picA,new point(10,10))
pic1.MonPictureBox.Image = MonImage
Ou MonPictureBox est :
Public ReadOnly Property MonPictureBox As PictureBox
Get
Return picA
End Get
End Property
Et la classe ClassB ne pourra pas être considéré comme une PictureBox.
foliv57
Messages postés420Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention15 juillet 20149 20 déc. 2012 à 20:12
D'ailleurs dans votre exemple de ClassB, vous ne pouvais pas faire
pic1 = new classB(picA,new point(10,10))
me.controls.add(pic1)
Vous devriez avoir une erreur de compilation car pict1 n'est pas un contrôle.
Dans le cas de l'héritage ça va marcher car ClassA hérite de PictureBox qui à un certain niveau hérite de la classe Control. L'objet peut donc être utilisé comme un contrôle.