Goedenavond, sorry dat ik zo laat stoor. Ik heb een dringende vraag, omdat ik iets niet helemaal snap...
Programmeertaal: C# (versie 7.3)
Omgeving: Visual Studio 2019
Klasse A
- hier maak ik een instantie aan van een klasse X en geef ik vervolgens wat parameters door in de constructor (in de klasse zelf bind ik deze parameters weer aan de interne properties). Voor het testen zeg ik eerst PropertyName = parameter; en roep ik ook een methode methode aan in de constructor van klasse X. In de methode stop ik dan de PropertyName in ipv de parameter door te geven.
Klasse X
- de methode geeft uiteindelijk een object/type terug, maar wat ik niet snap is dat ik nergens in mijn code bijvoorbeeld zeg PropertyName equals to local variable (van de methode) en toch weet Visual Studio op de een of andere manier dat PropertyName gelijk staat aan de huidige staat van de lokale variable. In de methode van klasse X, zeg ik niet eens PropertyName = local variable of iets.. en toch: als ik een type/object terug geef, ik dan gewoon de informatie van de local variable krijg maar wat vreemd is, is dat de huidige staat van de local variable gelijk staat aan de PropertyName, zonder dat ik ook maar 1x heb aangegeven: Ok => nu is PropertyName gelijk aan local variable ...
Heeft dit te maken, omdat ik in de constructor heb aangegeven: Gebruik de PropertyName? En Visual Studio heeft een referentie aangemaakt voor deze PropertyName in de methode en deze gekoppeld aan de local variable? Staat daarom steeds de local variable gelijk aan de PropertyName en andersom?
Ik hoor het graag van u en bij voorbaat dank..
Maar als ik een kopie van deze lijst stuur, wordt de originele lijst niet gemanipuleerd, maar wordt de gekopieerde lijst als het ware aangepast en niet de originele. De objecten worden dan gerefereerd naar de kopieerde lijst en niet naar de originele. Nu ik dit weet, bedank ik de andere voor hun bijdrage. De volgende keer zal ik proberen te beginnen met het tonen van voorbeeld codes (die compileren).
Programmeertaal: C# (versie 7.3)
Omgeving: Visual Studio 2019
Klasse A
- hier maak ik een instantie aan van een klasse X en geef ik vervolgens wat parameters door in de constructor (in de klasse zelf bind ik deze parameters weer aan de interne properties). Voor het testen zeg ik eerst PropertyName = parameter; en roep ik ook een methode methode aan in de constructor van klasse X. In de methode stop ik dan de PropertyName in ipv de parameter door te geven.
Klasse X
- de methode geeft uiteindelijk een object/type terug, maar wat ik niet snap is dat ik nergens in mijn code bijvoorbeeld zeg PropertyName equals to local variable (van de methode) en toch weet Visual Studio op de een of andere manier dat PropertyName gelijk staat aan de huidige staat van de lokale variable. In de methode van klasse X, zeg ik niet eens PropertyName = local variable of iets.. en toch: als ik een type/object terug geef, ik dan gewoon de informatie van de local variable krijg maar wat vreemd is, is dat de huidige staat van de local variable gelijk staat aan de PropertyName, zonder dat ik ook maar 1x heb aangegeven: Ok => nu is PropertyName gelijk aan local variable ...
Heeft dit te maken, omdat ik in de constructor heb aangegeven: Gebruik de PropertyName? En Visual Studio heeft een referentie aangemaakt voor deze PropertyName in de methode en deze gekoppeld aan de local variable? Staat daarom steeds de local variable gelijk aan de PropertyName en andersom?
Ik hoor het graag van u en bij voorbaat dank..
Update: conclusie
Het kwam doordat de originele lijst die ik doorstuurde een reference type is. List<T> is een class en classes zijn reference types, dus die lijst die ik doorstuur is een reference type. Zie: https://docs.microsoft.co...c.list-1?view=netcore-3.1. Ik wist dat classes wel reference types waren, alleen stond ik er even niet bij stil.. (bij het gebruik van List<T>)Maar als ik een kopie van deze lijst stuur, wordt de originele lijst niet gemanipuleerd, maar wordt de gekopieerde lijst als het ware aangepast en niet de originele. De objecten worden dan gerefereerd naar de kopieerde lijst en niet naar de originele. Nu ik dit weet, bedank ik de andere voor hun bijdrage. De volgende keer zal ik proberen te beginnen met het tonen van voorbeeld codes (die compileren).
[ Voor 20% gewijzigd door umask op 23-05-2020 02:17 ]