1. #1
    Rage's Avatar
    Registered
    12/12/02
    Location
    Gemeente
    Posts
    6,034
    iTrader
    15 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/111

    C# Objecten 'verbonden' ?

    Ik was mijn code aan het opschonen, en ik heb iets vreemd voor. Het werkt terwijl het niet zou moeten werken

    Ik maak een object aan. Ik steek dat object in een lijst. Ik steek datzelfde object ook ergens anders in. Ik maak een object aan van een andere klasse, en daar steek ik dat eerst object dus in. Als ik in mijn lijst dat object aanpas, verandert dat dan ook op die andere plaats?

    Lees spoiler als mijn uitleg vaag is

    Spoiler:


    Ik heb geen andere verklaring voor het gedrag van mijn programma, ik ben mijn kop hierover aant breken
    Last edited by Rage; 25-11-2011 at 20:36.
    no votes  

  2. #2

    Registered
    04/11/03
    Location
    Wervik
    Posts
    1,901
    iTrader
    35 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/14
    zelfgemaakte objecten (klasses dus) zijn referentietypes.

    Dus, als ge een object van een referentietype gaat opslaan in twee verschillende lijsten, dan bevatten die lijsten geen kopie van dat object, maar een adresverwijzing naar dat object. Het gevolg is dan dat beide lijsten een 'link' bevatten naar hetzelfde object. Dus, als ge 't object wijzigt in de eerste lijst, dan zal het ook gewijzigd worden in de tweede lijst, simpelweg omdat het eigenlijk maar 1 object is die wordt gewijzigd (want beide lijsten bevatten gewoon een link naar het origineel toegevoegde object)

    Dit wat snel uitgelegd begrijp je wat ik bedoel?
    no votes  

  3. #3
    NeverwinterX's Avatar
    Registered
    27/08/04
    Location
    Leuven
    Posts
    930
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    11/38
    Misschien helpt het om er op de volgende manier over na te denken: een object op zich is een doosje met daarin wat informatie. Een variabele met daaraan dat object toegewezen is een pijl die wijst naar dat doosje. Variabelen met hetzelfde object daaraan toegewezen wijzen allemaal naar hetzelfde doosje. Iets aanpassen aan een variabele is die pijl volgen en het aanpassen in het doosje naar waar het leidt.

    Uitzondering zijn de primitieve types zoals int en structures.
    Last edited by NeverwinterX; 26-11-2011 at 13:34.
    I am thee and thou art me and all of one is the other.
    TED talk: Richard Dawkins on militant atheism
    no votes  

  4. #4
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Je zou het ook gewoon kunnen testen door een object aan te maken, dat in 2 lijsten te steken, er eentje aan te passen en te kijken wat er met dat object in de andere lijst is gebeurd. Maar dat was wel érg ver gezocht uiteraard
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  5. #5
    Rage's Avatar
    Registered
    12/12/02
    Location
    Gemeente
    Posts
    6,034
    iTrader
    15 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/111
    Destizer zijn uitleg was voldoende, het is dus wat ik vermoedde.

    Het is duidelijk nu, bedankt!

    Cycloon: ge hebt gelijk, dat had ik kunnen doen.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in