Hallo zusammen!
Ich hab da ein Verständnisproblem mit einem Beispiel aus einem Video. (youtube.com/watch?v=KG6zxlljCsM)
Inzwischen entstand daraus ein funktionierendes kleines Beispielprojekt. Es gibt eine Klasse, in der alle ObservableCollections erstellt werden. Von dieser Klasse wird in einem Modul eine Instanz erstellt. So lässt sich aus dem gesamten Programm darauf zugreifen.
Was aber passiert, wenn man die Collection wie folgt erstellt?
Im Modul wird dann so eine Instanz der Klasse erstellt.
Führt das NEW (also die Instanzierung) im "Speicherbereich" der Collection nicht dazu, dass bei jeder Änderung eines Propertys eine neue Instanz entsteht? Falls das so ist, füllt sich dann nicht der Arbeitsspeicher immer weiter, oder wird die alte Instanz hier einfach wieder von .NET aus dem Speicher geworfen?
Oder entsteht nur eine neue Instanz des Datenbereich der Collection, wenn die Klasse an einer weiteren Stelle noch einmal instanziert wird?
Edit: oder passiert dabei im Grunde das Gleiche wie bei dieser Methode?
und im Programm dann:
Im 1. Beispiel entsteht dann eine neue Instanz des Speicherbereichs durch Instanzierung der Klasse, die die Collection enthält. Beim 2. Beispiel wird der Speicherbereich einfach direkt mit einer neuen Instanz befüllt? Verhält es sich so?
Gruß
eddi
Thema verschoben (da nicht nur für die WPF relevant) ~VaporiZed
Ich hab da ein Verständnisproblem mit einem Beispiel aus einem Video. (youtube.com/watch?v=KG6zxlljCsM)
Inzwischen entstand daraus ein funktionierendes kleines Beispielprojekt. Es gibt eine Klasse, in der alle ObservableCollections erstellt werden. Von dieser Klasse wird in einem Modul eine Instanz erstellt. So lässt sich aus dem gesamten Programm darauf zugreifen.
Was aber passiert, wenn man die Collection wie folgt erstellt?
VB.NET-Quellcode
- Public Class Collection_Klasse
- Private _lesen_coll As New ObservableCollection(Of Lesen_Klasse) 'mit NEW
- Public Property Lesen_Coll() As ObservableCollection(Of Lesen_Klasse)
- Get
- Return _lesen_coll
- End Get
- Set(ByVal value As ObservableCollection(Of Lesen_Klasse))
- _lesen_coll = value
- End Set
- End Property
Im Modul wird dann so eine Instanz der Klasse erstellt.
Führt das NEW (also die Instanzierung) im "Speicherbereich" der Collection nicht dazu, dass bei jeder Änderung eines Propertys eine neue Instanz entsteht? Falls das so ist, füllt sich dann nicht der Arbeitsspeicher immer weiter, oder wird die alte Instanz hier einfach wieder von .NET aus dem Speicher geworfen?
Oder entsteht nur eine neue Instanz des Datenbereich der Collection, wenn die Klasse an einer weiteren Stelle noch einmal instanziert wird?
Edit: oder passiert dabei im Grunde das Gleiche wie bei dieser Methode?
VB.NET-Quellcode
- Public Class Collection_Klasse
- Private _lesen_coll As ObservableCollection(Of Lesen_Klasse) 'OHNE NEW
- Public Property Lesen_Coll() As ObservableCollection(Of Lesen_Klasse)
- Get
- Return _lesen_coll
- End Get
- Set(ByVal value As ObservableCollection(Of Lesen_Klasse))
- _lesen_coll = value
- End Set
- End Property
und im Programm dann:
Im 1. Beispiel entsteht dann eine neue Instanz des Speicherbereichs durch Instanzierung der Klasse, die die Collection enthält. Beim 2. Beispiel wird der Speicherbereich einfach direkt mit einer neuen Instanz befüllt? Verhält es sich so?
Gruß
eddi
Thema verschoben (da nicht nur für die WPF relevant) ~VaporiZed
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()