Page 1 of 1
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 2:01 pm
by Phil Hepburn
Hi Team and all Forum guys,
I am adding a sub-section to the 'ClickStartXSharp' eNotes on Properties and the correct syntax to use to define them. I wish to include all variations.
- XSprops_01.jpg (51.03 KiB) Viewed 446 times
I see from the release notes that 'auto' adds a field to support the property. What is its name ?
If I use the one line 'get set' variation, does this do the same as 'auto' - do I get a backing field?
Enough for now, more later perhaps.
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 2:06 pm
by Phil Hepburn
whoops ! - sorry !!
seem to have chopped my last message before the end.
I have gotten the full Property definition OK I think :-
- XSprops_02.jpg (115.11 KiB) Viewed 446 times
Can anyone suggest other variations that I may have missed while making the two images in this post and my last one ?
Cheers,
Phil.
Wales, UK.
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 2:16 pm
by wriedmann
Hi Phil,
with the "auto" you get effectively a backingfield - that means the compiler creates itself the storage for the variable.
This X# code
Code: Select all
class Properties
protect _cValue as string
constructor()
_cValue := ""
return
property FullForm as string
get
return _cValue
end get
set
_cValue := value
end set
end property
property ShortForm as string get _cValue set _cValue := value
property AutoProperty as string auto
end class
generates this code:
- properties.png (9.21 KiB) Viewed 446 times
Wolfgang
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 2:31 pm
by wriedmann
Hi Phil,
basically I know about 3 different property formats:
the standard one:
Code: Select all
property Phil as string
get
return _cPhil
end get
set
_cPhil := value
end set
end property
where you can of course omit the get or the set block.
And then is the short form (which I like most)
Code: Select all
property Phil as string get _cPhil set _cPhil := value
and you can omit there also the set or the get block.
And as last there is the automatic property:
And all the modifiers like static, protect, private, public are admitted too.
Wolfgang
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 3:37 pm
by Phil Hepburn
Thanks a lot Wolfgang,
I will work with this in the eNotes.
What you have written adds a couple more things to what I already had found. So well done.
Regards,
Phil.
defining Properties - syntax of all variations
Posted: Mon Dec 18, 2017 3:44 pm
by wriedmann
Hi Phil,
only to add something: in my ViewModels that implement the INotifyPropertyChanged interface, I have this form of property:
Code: Select all
public property ConfigImage as string set self:_Set<string>( value ) get self:_Get<string>()
because these inherit from my ExpandoBase class with the relative get/set methods that send also the notification.
Wolfgang