Archief - [PROG][C#] Klassen en properties

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

AeroDawn

Legacy Member
als ik in een klasse van een programma volgende eigenschap toewijs:

public int Health
{
get { return Health; }
set
{
if (value >= 0 && value <= 100)
{ Health = value; }
else
{ throw new OverflowException("Health being assigned non-valid value."); }
}
}

en ik dan later in het programma, bv in de Main() functie een instantie van deze klasse aanmaak, en ik volgende statement toe pas om deze property een waarde toe te kennen:

SpaceShip MyShip = new SpaceShip();
MyShip.Health = 100;

dan krijg ik een runtime error StackOverFlowException. Iemand enig idee wat er hier precies gebeurt?

Tyfius

Legacy Member
Uw naam is verkeerd.
bvb:
Code:
private int health; // kleine letter H

public int Health // grote letter H
{
  get { return this.health; }
  set { if (value >= 0 && value <= 100) { this.health = value; } else {...}}
}
Gij gaat value telkens toekennen aan Health en bijgevolg in een oneindige loop die setter aanroepen.

killgore

Legacy Member
Om eventjes door te zagen:
set-property lijkt me in dit geval zelfs niet zo super.

Kzou persoonlijk zorgen dat em bv. bij het begin health x krijgt (90, 100, je ziet wel) en dat je dan methoden heal & attack/damage toevoegt.

pure setters vermijden waar mogelijk ;).

anders zal je bv later iets proberen zoals: unit.Health -= damage;

en dan ineens krijg je dat hij nog 8 health heeft, maar 10 damage krijgt en een exception :s!

AeroDawn

Legacy Member
ow jah da's waar, ma tis maar een testje hoor.. twas ni de bedoeling nen gansen rpg te make ;) daar zou'k eerst een schema enzo van maken, nu wast gwn direct to-the-point practice programming ;)

killgore

Legacy Member
Ik merk het ook gewoon op, beter dat iemand het u nu zegt dan da ge het later daadwerkelijk zo progt en gans uw systeem moogt refactoren.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan