Archief - vb.net: structs vs classes

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.

KiLLahFreak

Legacy Member
Wanneer opteren jullie voor structs en wanneer opteren jullie voor classes
aangezien ik nog nooit met structs heb gewerkt zet ik van gewoonte alles in classes, maar wanneer bezigen jullie die struct nu

thx
KiLLah

Cakeman

Legacy Member
Hier ben ik weer met mijn C# boek ;)

"The consensus view is that you ought to use structs only for types that are small, simple, and similar in their behaviour and characteristics to built-in types."

Wanneer je iets simpel wil maken dat qua gebruik sterk lijkt op een built-in type, dan gebruik je best een struct. In het boek gebruiken ze om classes uit te leggen (vooral de operator overloading dan) een zelf gemaakt type dat een breuk weergeeft. In plaats van een getal met een komma of een punt geeft dat type een return waarde in de aard van 'x/y'. Ze overloaden de operators waardoor je dit kan doen:
Code:
Fraction a = new Fraction(7,9);
Fraction b = new Fraction(2,4);
Fraction c = new Fraction();

c = a + b;

Zoiets is betrekkelijk simpel (hoewel je toch nog kan verschieten van het werk om breuken te laten optellen en te vereenvoudigen. 1/2 is immers en beter resultaat dan 55/110) en het lijkt qua gebruik sterk op een integer ofzo. Hiervoor zou je dus een struct kunnen gebruiken denk ik.

Voor iets meer ingewikkeldere zaken (zoals een manier om een Persoon of Klant voor te stellen) gebruik je dan weer best een klasse geloof ik.

servi

Legacy Member
ik gebruik alleen structs als dat object enkel en alleen variabelen bevat.
Als het object ook functies heeft, gebruik ik altijd class.

KiLLahFreak

Legacy Member
servi zei:
ik gebruik alleen structs als dat object enkel en alleen variabelen bevat.
Als het object ook functies heeft, gebruik ik altijd class.

oki, maar in mijn boek staat dat vanaf nu structs ook functies ondersteunen, dus feitelijk kan je die functies nu ook in structs zetten wat de boel nog wat verwarrender maakt

KiLLahFreak

Legacy Member
@ Cakeman
ja, das moeilijk eh wanneer kan je nu iets beschouwen als ingewikkeld, ik heb in mijn boek een voorbeeld staan van een klant die als struct wordt behandeld hij heeft nl twee variabelen naam, en klantId en dan functies om naam en klantId weer te geven

servi

Legacy Member
oki, maar in mijn boek staat dat vanaf nu structs ook functies ondersteunen, dus feitelijk kan je die functies nu ook in structs zetten wat de boel nog wat verwarrender maakt

da's waar,
daarmee dat zoiets maar een afspraak is, niemand verplicht om u het zus of zo te doen.
Het enige verschil tussen struct en class is het volgende (in c++ toch, in vb.net weet ik dat niet zeker) :
struct : standaard alles public
class : standaard alles private


edit : de enige reden dat er trouwens 2 woorden zijn voor bijna identieke zaken heeft te maken met het feit dat c enkel structs kent en dat c++ dit heeft overgenomen. In principe heb je een struct dus nooit nodig in c++.

KiLLahFreak

Legacy Member
[/i]da's waar,
daarmee dat zoiets maar een afspraak is, niemand verplicht om u het zus of zo te doen.
Het enige verschil tussen struct en class is het volgende (in c++ toch, in vb.net weet ik dat niet zeker) :
struct : standaard alles public
class : standaard alles private


edit : de enige reden dat er trouwens 2 woorden zijn voor bijna identieke zaken heeft te maken met het feit dat c enkel structs kent en dat c++ dit heeft overgenomen. In principe heb je een struct dus nooit nodig in c++.


oki dan ga ik gewoon classes bezigen en geen structs, dus programmeren zoals in Java -> dat gaat toch niet veel verschillen qua performantie he?

KiLLahFreak

Legacy Member
eigenlijk dacht ik dat je in een value type maar 1 waarde kon stoppen, nu met die structs is dat dan toch anders raar :(
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