A ’Property’ egy komponens névvel ellátott értéke. Például, egy gomb rendelkezhet a „text” property-vel, ami a megjelenítendő szövegre utal. A propertyhez hozzáférő metódusoknak két fajtája van a getter és a setter, ezek a property-k általában csak olvashatóak vagy csak írhatóak. Ha mindkét metódus implementálva van, akkor a property írható és olvasható. A property olvasó és módosító metódusok specifikációja erősen programnyelv függő. Pl. Visual Basic 6.0-ban a hozzáférő metódusokat a Set, Get és Let metódusok alkotják
A J# nyelvben setter és getter metódusok önálló metódusokként vannak specifikálva, ami azt jelenti, hogy osztályok vagy interfészek tagjai lehetnek. Használatuk során egy private hozzáférésű változó értékét változtathatják meg ,vagy adhatják vissza.
Egy property deklarálásának szabályai:A metódusok helyes deklarációjához meg kell adnunk a /** @property*/ tagot. A metódusok neveinek a set_ vagy get_ előtaggal kell kezdődniük, melyet a property neve kell, hogy kövessen.
A J# nyelv nem tesz semmilyen különösebb megkötést a metódusok hozzáférésével kapcsolatban. A J# a konvencionális metódus hívás szintaktikáját követi, ami teljesen megfelel a Java nyelvben használt szintaxisnak.
Egy indexelő (vagy indexelt property) a setter metódustól eltérően kéri a bemenő paramétereket. A különböző nyelvek speciális szintaxis definiálásával valósítják meg az indexelők használatát, ami eléggé hasonlít a tömbök indexeléséhez. A J# minden típushoz egy indexelt property-t ad. Ezek használatát a System.Reflection.DefaultMember attribútum megadásával érhetjük el. Nézzük meg a TextFile osztály implementációját, ami tartalmaz egy indexelt property-t.
segítségével karakterket olvashatunk és írhatunk. Amikor az index megjelenik a kifejezés bal oldalán, akkor a karakter a file megfelelő pozíciójára iródik.
Amikor az index a kifejezés jobb oldalán jelenik meg, akkor a file megfelelő pozícióján lévő érték kerül kiolvasásra.
Íme a TextFile osztály:
Ahogy azt már említettük a különböző programozási nyelvek speciális szintaxist biztosítnak a property-k támogatására. Íme egy C# példa, amely egy ’sample.tx’ file tartalmát a konsolera írja:
A szinatxis teljesen természetes: egy szöveg file absztrakt megfelelője karakterek egy tömbje. Az egyetlen művelet, amire szükségünk van, az indexelés.
Ahhoz , hogy az indexelést működés közben láthassuk, nézzünk egy programot (ismét C#), amely két TextFile objektumot feleltet meg két szöveges file-nak.
a ch a forrás file j-edik karakterének felel meg.
Azok a nyelvek, melyek nem adnak meg semmi különösebb szintaxist az indexelt proerty-khez való hozzáféréshez(mint pl. J#), a feladatot így is megvalósíthatják:
Az indexelés a kifejezés mindkét oldalán megjelenhet, hogy az egyik fileból kiolvasott adatot egy másik fileba írjuk:
Az fent említett kifejezés ekvivalens az alábbival: