login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Waarde oproepen vanuit andere klasse (Opgelost)

Offline kenzo - 16/10/2009 16:12 (laatste wijziging 16/10/2009 16:34)
Avatar van kenzoPHP beginner Hallo,

Ik wil graag dat ik gegevens kan oproepen van een klasse uit een andere klasse.

Weet iemand hoe dat moet?


Bedankt

10 antwoorden

Gesponsorde links
Offline Abbas - 16/10/2009 16:37
Avatar van Abbas Gouden medaille

Crew .NET
Misschien kan je iets meer informatie geven over je probleem. Wat voor gegevens moeten er opgehaald worden: database, externe file, class-gegevens, ... ? Geef eens wat meer informatie zodat we je kunnen helpen!
Offline kenzo - 16/10/2009 16:38
Avatar van kenzo PHP beginner nee. sorry.

Ik heb een klein spel gemaakt, en iedere keer als het level af is moet een volgend level geselecteerd worden.

het level moet in meerdere klasse opgeroepen worden.

Weet niet hoe ik dat het beste kan doen. Level + 1, en dit moet uit verschillende klasse kunnen opgeroepen worden
Offline Abbas - 16/10/2009 17:03
Avatar van Abbas Gouden medaille

Crew .NET
Wat nee?! En als je wil geholpen worden zal je toch wat code moeten geven want nu heb ik er enkel het raden naar...
Offline kenzo - 16/10/2009 17:35
Avatar van kenzo PHP beginner ik zei niet nee, maar nee sorry  


Ik heb daar nog geen code van.


Ik wil bijvoorbeeld een klasse Level maken.


Als ik een level vooruit ga, en moet ik in de klasse Level een waarde updaten.



Vanuit alle klasse wil ik de geupdate waarde kunnen oproepen.


Sorry als ik het verkeerd uitleg, en ik weet niet of, en welke code ik zou moeten geven?
Offline Abbas - 16/10/2009 17:43
Avatar van Abbas Gouden medaille

Crew .NET
Iets als dit dan:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace NsLvlClass
  7. {
  8. public class Level
  9. {
  10. //private field
  11. private int _level;
  12.  
  13. //Default Constructor
  14. public Level()
  15. {
  16. _level = 0;
  17. }
  18.  
  19. //Huidige level opvragen
  20. public int GetCurrentLevel
  21. {
  22. get { return _level; }
  23. }
  24.  
  25. //Een level omhoog gaan
  26. public void LevelUp()
  27. {
  28. this._level++;
  29. }
  30. }
  31.  
  32. public class Test
  33. {
  34. Level l = new Level();
  35.  
  36. public void doeIets()
  37. {
  38. int x = l.GetCurrentLevel; //x is nu 0
  39. l.LevelUp();
  40. x = l.GetCurrentLevel; //x is nu 1
  41. }
  42. }
  43. }
Offline kenzo - 16/10/2009 17:47
Avatar van kenzo PHP beginner ik denk dat ik classe anders aanmaak?

in visual studio heb ik klasse1.cs, klasse2.cs


in klasse1.cs word het level verhoogt
in klasse1.cs en klasse2.cs wil ik het level opvragen.


Dit is de bedoeling.

Vriendelijk bedankt
Offline Abbas - 16/10/2009 17:52 (laatste wijziging 16/10/2009 17:53)
Avatar van Abbas Gouden medaille

Crew .NET
Dan plaats je gewoon de code van de tweede classe (uit mijn code) in een andere class-file. Zorg dat je binnen dezelfde namespace werkt, zoiets:

Class 1:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace NsLvlClass
  7. {
  8. public class Level
  9. {
  10. //private field
  11. private int _level;
  12.  
  13. //Default Constructor
  14. public Level()
  15. {
  16. _level = 0;
  17. }
  18.  
  19. //Huidige level opvragen
  20. public int GetCurrentLevel
  21. {
  22. get { return _level; }
  23. }
  24.  
  25. //Een level omhoog gaan
  26. public void LevelUp()
  27. {
  28. this._level++;
  29. }
  30. }
  31. }

Class 2:
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace NsLvlClass
  7. {
  8. public class Test
  9. {
  10. Level l = new Level();
  11.  
  12. public void doeIets()
  13. {
  14. int x = l.GetCurrentLevel; //x is nu 0
  15. l.LevelUp();
  16. x = l.GetCurrentLevel; //x is nu 1
  17. }
  18. }
  19. }

Opvragen doe je gewoon met de GetCurrentLevel-property, in eender welke class.
Offline kenzo - 16/10/2009 18:39 (laatste wijziging 16/10/2009 21:33)
Avatar van kenzo PHP beginner Heb het,


had het verkeerd geplakt, werkt dus super...


Bedankt!
Offline Abbas - 16/10/2009 21:56
Avatar van Abbas Gouden medaille

Crew .NET
Als die Level alleen maar dient om een getal bij op te tellen moet je niet per se een klasse ervan maken. Je maakt gewoon een Property "Level" van het type int in je klasse Speelbalk. Bij die level kan je dan via een methode eentje bijtellen. Zorg dan dat je in de klasse Game een instantie van de klasse speelbalk hebt en dan kan je zo aan die Level aan ook.

Voorbeeld "Speelbalk":
  1. public class Speelbalk
  2. {
  3. private string _naam;
  4. private int _level;
  5.  
  6. public string Naam
  7. {
  8. get { return _naam; }
  9. set { _naam = value; }
  10. }
  11.  
  12. public int Level
  13. {
  14. get { return _level; }
  15. }
  16.  
  17. public void LevelUp()
  18. {
  19. _level++;
  20. }
  21. }

Voorbeeld "Game":
  1. public class Game
  2. {
  3. private Speelbalk _s;
  4.  
  5. public Game(Speelbalk s)
  6. {
  7. _s = s;
  8. }
  9.  
  10. public int Level
  11. {
  12. get { return _s.Level; }
  13. }
  14. }

En dan aanroepen doe je zo:

  1. Speelbalk s = new Speelbalk();
  2. Game g = new Game(s);
  3. MessageBox.Show(g.Level.ToString());
  4. s.LevelUp();
  5. MessageBox.Show(g.Level.ToString());
Offline kenzo - 16/10/2009 22:24
Avatar van kenzo PHP beginner bedankt, ik hou het op het vorige, want dat werkt goed 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.205s