Archief - [PROG][C# .NET] Verschil tussen...

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
een "property" en een "field" in een bepaalde klasse?
ik kwam dit tegen op de msdn library: zie onderstaande link:

ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/CPref17/html/T_System_Windows_Forms_DateTimePicker_Members.htm

mvg, aerodawn

killgore

Legacy Member
die link werkt nie in mijne msdn help.

Ma een field is dus gewoon een variabele binnen je klasse, die je volgens de regels van OOP zoveel mogelijk zal afschermen (dus bijna altijd private/protected).

Een property is eigenlijk de geadvanceerde versie van get-set methoden. In java en c++ ga je bv iets doen:
Object.setGetal(4);

in c# ga je een field getal hebben, een property Getal en doe je:
Object.Getal = 4;

hierbij wordt dan de set-instructie van de property Getal aangeroepen, waar je meestal dan het bijhorende veld getal zal initialiseren na eventuele controles (bv. als getal positief zal zijn zal je er een abs laten op inwerken).

AeroDawn

Legacy Member
ahja ok.. dacht al da het ni ging werken die msdn.. maar kdenk da'k het versta.. bv alsk zeg int classname.number = 5; dan is .number de property en 5 het field.. ok.. thx gasten! keb net een heel overzicht gemaakt van de meest voorkomende controls die je kan gebruiken en de meest voorkomende functies.. pm ze als je ze wil ;) zie anders ook mn drawing survey :p

Tyfius

Legacy Member
Erm neen.
int testGetal -> field

property:
int TestGetal
{
get { return this.testGetal; }
set { this.testGetal = value; }
}

Implementatie:
new Class();
Class.TestGetal = 4;

Emerxill

Legacy Member
Tyfius zei:
Erm neen.
int testGetal -> field

property:
int TestGetal
{
get { return this.testGetal; }
set { this.testGetal = value; }
}

Implementatie:
new Class();
Class.TestGetal = 4;
Da's de C++ (de echte :)) property, niet? Of bolt da ook zo in C#, ik ken nieveel van C# daarmee.
In java noemen ze een variabele met getters en setters een "property" :)

killgore

Legacy Member
Emerxiil, das c#, die code werkt niet eens in c++ :p.

Een property in c# is hetzelfde als wat jij bedoelt in java hoor, enkel zit het hier echt in de taal ingebakken.

Hij doet hier dus Class.TestGetal = 4, maar eigenlijk roept hij een set-methode op ;).

Het is dus "logischere" code zonder dat je de problemen van encapsulation verliest ;).

Emerxill

Legacy Member
killgore zei:
Emerxiil, das c#, die code werkt niet eens in c++ :p.

Een property in c# is hetzelfde als wat jij bedoelt in java hoor, enkel zit het hier echt in de taal ingebakken.

Hij doet hier dus Class.TestGetal = 4, maar eigenlijk roept hij een set-methode op ;).

Het is dus "logischere" code zonder dat je de problemen van encapsulation verliest ;).
Wat properties doen weet ik wel, alleen had ik et nog niet op dees manier gezien. En omdat ik vooral in java prul en C# hard op java lijkt vermoedde ik dat het C++ code was.

Daarbij is nog een discussie ergens geweest da een property in java geen echte zou zijn

killgore

Legacy Member
Emerxill zei:
Wat properties doen weet ik wel, alleen had ik et nog niet op dees manier gezien. En omdat ik vooral in java prul en C# hard op java lijkt vermoedde ik dat het C++ code was.

Daarbij is nog een discussie ergens geweest da een property in java geen echte zou zijn
Omdat je in java dus wel degelijk rechtstreeks setters en getters aanroept en in c# dus via deze "omweg".

Ik twijfelde trouwens niet aan uw kennis van property hoor, wou gewoon het verschil duidelijk maken tussen hoe proeperties in java werken en in c# :p.

Emerxill

Legacy Member
killgore zei:
Omdat je in java dus wel degelijk rechtstreeks setters en getters aanroept en in c# dus via deze "omweg".

Ik twijfelde trouwens niet aan uw kennis van property hoor, wou gewoon het verschil duidelijk maken tussen hoe proeperties in java werken en in c# :p.
Bij deze een welgemeende merci :D
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