<Serializable()> _ Public Class SegmentCollection Inherits List(Of Segment) ' Public ReadOnly Property ItemByID(ByVal id As String) As Segment Get For Each Item As Segment In Me If Item.ID.ToLower = id.ToLower Then Return Item End If Next Return Nothing End Get End Property ' Public ReadOnly Property ItemByName(ByVal name As String) As Segment Get For Each Item As Segment In Me If Item.Nom.ToLower = name.ToLower Then Return Item End If Next Return Nothing End Get End Property ' End Class <Serializable()> _ Public Class Segment ' Public ID As String Public Nom As String Public Type_Deb, Segment_Type_Fin As String Public Commentaire As String ' Public Marquages As New MarquageCollection ' End Class <Serializable()> _ Public Class MarquageCollection Inherits List(Of Marquage) End Class <Serializable()> _ Public Class Marquage ' 'Public Toto As Tata... ' End Class
For liste As Integer = 0 To Me.liste_reseaux.Item(index).liste_segments.Count - 1 affaire.liste_reseaux.Item(index).liste_segments.Item(liste).segment_nom next
affaire.liste_reseaux.item(index1).liste_segments.item(index2).liste_marquages.item(index3).marque_nom.
Public Class dlg_Edit_segment Private _Segment As cls_segment Private Property Segment As cls_segment Get Return _Segment End Get Set(value As cls_segment) _Segment = Value End Set End Property Private Sub Form_Load(sender As Object, e As System.EventArgs) Handles Me.Load 'Ton code pour charger le formulaire If _Segment IsNot Nothing Then Me.TxtName.Text = Segment.Nom 'Ainsi de suite... Else _Segment = New cls_segment End If End Sub 'Un bouton Save, etc... ' End class
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionOption Explicit On Option Strict On Imports System Imports System.IO Imports System.Runtime.Serialization.Formatters.Binary <Serializable()> Public Class cls_segment Public segment_ID As String 'index du segment Public segment_nom As String 'nom du segment Public segment_type_deb, segment_type_fin As String 'type des bouts du segment Public segment_longueur As Double 'longueur du segment Public segment_commentaire As String 'commentaire facultatif Public liste_marquages As List(Of cls_marquage) ' attribut un nouvel ID à chaque nouvelle ligne. Public Sub New() segment_ID = System.Guid.NewGuid.ToString liste_marquages = New List(Of cls_marquage) 'et intancie (new) End Sub Public Sub Add(ByVal Marque As cls_marquage) liste_marquages.Add(Marque) End Sub Public Sub Remove(ByVal index As Integer) ' contrôle. If index > Count - 1 Or index < 0 Then System.Windows.Forms.MessageBox.Show("Index non valide!") Else ' Appelle la méthode RemoveAt de l'objet collection. liste_marquages.RemoveAt(index) End If End Sub Public ReadOnly Property Item(ByVal Index As Integer) As cls_marquage Get Item = liste_marquages.Item(Index) 'retourne un segment End Get End Property Public ReadOnly Property count() As Integer Get count = liste_marquages.Count 'retourne le nombre de segments End Get End Property End Class
Public Class MainClass Private _Childs As New ChildCollection Public Property Childs As ChildCollection Get Return _Childs End Get Set(ByVal value As ChildCollection) _Childs = value End Set End Property ' Public Class ChildCollection Inherits List(Of ChildClass) ' Public ReadOnly Property ItemByID(ByVal id As Guid) As ChildClass Get For Each Item As ChildClass In Me If Item.ID.Equals(id) Then Return Item End If Next Return Nothing End Get End Property Public ReadOnly Property ItemByName(ByVal name As String) As ChildClass Get For Each Item As ChildClass In Me If Item.Name.ToLower = name.ToLower Then Return Item End If Next Return Nothing End Get End Property ' End Class ' Public Class ChildClass ' Private _ID As Guid = Guid.NewGuid Private _Name As String ' Public Property Name As String Get Return _Name End Get Set(ByVal value As String) _Name = value End Set End Property Public Property ID As Guid Get Return _ID End Get Set(ByVal value As Guid) _ID = value End Set End Property ' Public Sub New() End Sub Public Sub New(ByVal name As String) _Name = name End Sub ' End Class ' End Class
Dim mc As New MainClass mc.Childs.Add(New MainClass.ChildClass("Item 1")) Dim item As MainClass.ChildClass = mc.Childs.ItemByName("Item 1")
Public Class MaClass ' Public Event TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) ' Private _Text As String' On déclare le cham privé car c'est la propriété qui sera public, donc pas besoin de voir celui-ci. ' Public Property Text Get 'Ce code est exécuté lors d'un appel à: Toto = IsntanceDeMaClasse.Text (On demande la valeur de la propriété Text). Return _Text End Get Set(ByVal value) 'Ici c'est le contraire on défini sa propriété : IsntanceDeMaClasse.Text = "Bla Bla Bla...". _Text = value RaiseEvent TextChanged(Me, New EventArgs) 'On sait que la propriété a changé et on déclanche l'événement. End Set End Property ' End Class
Je vais écrire les méthodes pour utiliser mon object affaire, et ce de la façon la plus simple possible. Aprés je n'aurais qu'a me démerder pour que mon objet "AFFAIRE" fasse tout ce que je lui demande (Encapsulation)
Hum au fait en lisant un cours sur la POO en C++ j'ai vu que toute les attributs (variables) doivent être private !