Forum » Programiranje » [c#] get, set
[c#] get, set
japol ::
Naj mi nekdo razloži po domače kaj je get, set,... in zakaj se uporablja. Kakšen primer preproste kode je tudi dobrodošel.
FuI2cY ::
z set nastaviš vrednost, z get vračaš vrednost.
primer:
tako nekako :)
primer:
motor moped1(110); // podaš hitrost cout<<moped1.getHitrost<<endl; // izpiše 110; moped1.setHitrost(50); // nova hitrost je sedaj 50; cout<<moped1.getHitrost()<<endl; // izpiše 50
tako nekako :)
detroit ::
upam da moj dokaj laični pristop ne bo napačen
Ti imaš nek objekt ki ima privatne spremenljivke
z get in set pa jih spreminjaš in dostopaš do njih iz drugih objektov (ki ne dedujejo od tega objekta)
recimo
public class Test
{
private string _ime
public string ime
{
get { return this._ime };
set {
this._ime = value};
}
}
i think its this, someone correct me
Ti imaš nek objekt ki ima privatne spremenljivke
z get in set pa jih spreminjaš in dostopaš do njih iz drugih objektov (ki ne dedujejo od tega objekta)
recimo
public class Test
{
private string _ime
public string ime
{
get { return this._ime };
set {
this._ime = value};
}
}
i think its this, someone correct me
Skero
Zgodovina sprememb…
- spremenil: detroit ()
Mitja Bonča ::
Ja get set metoda je tudi meni dolgo časa delala probleme - nisem in nisem mogel poštekati, kako bi jo rabil. No sedaj jo, ampak je kar trajalo nekaj časa.
Obrazlaga: imaš neko vrednost v spremenljivki (npr: int intStevilo = 5;) to stevilo z set metodo "shraniš", in ko nekje drugje vrednost spremenljivke intStevilo potrebuješ, jo dobiš iz get metodo. pa poglejmo primer:
To je en enostaven primer kako se uporablja get;set; metoda. Upam da sem bil razumljiv.
Lep pozdrav,
Mitja
Obrazlaga: imaš neko vrednost v spremenljivki (npr: int intStevilo = 5;) to stevilo z set metodo "shraniš", in ko nekje drugje vrednost spremenljivke intStevilo potrebuješ, jo dobiš iz get metodo. pa poglejmo primer:
private int intStevilo { get; set; } private void Shrantitev stevila() { int intA = Convert.ToInt32(textBox1.Text.Trim()); intStevilo = intA; //shranitev vrednosti } private void PrikazVrednosti() { int intB = intStevilo; //pridobitev prej shranjene vrednosti textBox2.Text = intB.ToStirng(); }
To je en enostaven primer kako se uporablja get;set; metoda. Upam da sem bil razumljiv.
Lep pozdrav,
Mitja
kogledom ::
Property se načeloma uporablja namesto public ali protected fieldov, saj ti tako omogoča nadzor inputa (znotraj setterja), hkrati pa ohrani sintakso fielda.
Več...
Več...
paco ::
Kot so že ostali nad mano povedali, pa da še jaz :).
seveda pa lahko v get in set blokih tudi operiraš z podatki, npr.:
using System; namespace Neki { class Program { static void Main() { //Objekt razreda Pravokotnik Pravokotnik p1 = new Pravokotnik(); //Do spremenljivk _Visina in _Sirina ne moras dostopati, ker sta zasebni, lahko pa nastaviš in pridobiš njuni vrednosti z lastnostima Visina in Sirina p1.Visina = 10; //spremenljivki _Visina z lastnostjo Visina nastaviš vrednost na 10 (tu se izvede set blok lastnosti) p1.Sirina = 20; //spremenljivki _Sirina z lastnostjo Sirina nastaviš vrednost na 20 (tu se izvede set blok lastnosti) int V1 = p1.Visina; //ustvariš novo spremenljivko V1 in ji nastaviš vrednost spremenljivke _Visina, prek lastnosti Visina (tu se izvede get blok lastnosti) int S1 = p1.Sirina; //ustvariš novo spremenljivko S1 in ji nastaviš vrednost spremenljivke _Sirina, prek lastnosti Sirina (tu se izvede get blok lastnosti) } } //nek razred class Pravokotnik { //Dve zasebni spremenljivki private int _Visina; private int _Sirina; //Lastnosti public int Visina { //get blok get { return this._Visina; } //set blok set { this._Visina = value; } } public int Sirina { //get blok get { return this._Sirina; } //set blok set { this._Sirina = value; } } } }
seveda pa lahko v get in set blokih tudi operiraš z podatki, npr.:
public int Sirina { //get blok get { int tmp = this._Sirina; int ost = tmp % 10; return (tmp + ost); } //set blok set { int tmp = value; int ost = tmp % 10; this._Sirina = (tmp - ost); } }
It iz aj.
Zgodovina sprememb…
- spremenilo: paco ()
fiction ::
Property namesto spremenljivke uporabljaš zato, da lahko kasneje bolj elegantno dodaš kakšno preverjanje ali kaj podobnega. Interno je vse skupaj realizirano kot metodi get_ime in set_ime.
Pri spremenljivki ob nastavljanju vrednosti oz. branju le te ne moreš kaj veliko narediti, pri "lastnosti" pa lahko izvedeš poljubne stvari. Da ti ni treba pisati propertya in še spremenljivke obstaja sintaksa public int Blah { get; set; }, kar v bistvu naredi neko svojo spremenljivko in Blah direktno piše oz. bere iz tam. Če ti kdaj kasneje ni več všeč, da se Blah
nastavi na vrednost večjo od 100 enostavno "set;" zamenjaš s set { } in tam npr. z if stavkom pogledaš kakšen je value ter če je prevelik vržeš exception ali kaj podobnega. V glavnem ni treba spreminjati kode tam, kjer se Blah uporablja.
Pri spremenljivki ob nastavljanju vrednosti oz. branju le te ne moreš kaj veliko narediti, pri "lastnosti" pa lahko izvedeš poljubne stvari. Da ti ni treba pisati propertya in še spremenljivke obstaja sintaksa public int Blah { get; set; }, kar v bistvu naredi neko svojo spremenljivko in Blah direktno piše oz. bere iz tam. Če ti kdaj kasneje ni več všeč, da se Blah
nastavi na vrednost večjo od 100 enostavno "set;" zamenjaš s set { } in tam npr. z if stavkom pogledaš kakšen je value ter če je prevelik vržeš exception ali kaj podobnega. V glavnem ni treba spreminjati kode tam, kjer se Blah uporablja.
japol ::
Super, hvala, ste v veliko pomoč.
Se pravi, da get/set uporabim tam, kjer bom nek element (število, string, objekt,...) rabil kadarkoli med delovanjem programa, kjer je pomembno da si zapomne element, ker ga bom rabil nekje drugje? Mi bo to kar prav prišlo, ker lahko iz drugega class-a, button clik-a,... enostavno dostopam do tega elementa.
K get/set spada pod properties? Ko googlam, kaj naj iščem?
Mitja Bonča: Zelo razumljiv, točno to sem iskal. Hvala
Se pravi, da get/set uporabim tam, kjer bom nek element (število, string, objekt,...) rabil kadarkoli med delovanjem programa, kjer je pomembno da si zapomne element, ker ga bom rabil nekje drugje? Mi bo to kar prav prišlo, ker lahko iz drugega class-a, button clik-a,... enostavno dostopam do tega elementa.
K get/set spada pod properties? Ko googlam, kaj naj iščem?
Mitja Bonča: Zelo razumljiv, točno to sem iskal. Hvala
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] Objekt poslan k metodi v kakšnem stanju?Oddelek: Programiranje | 1604 (1051) | shadeX |
» | SQL uporaba imena spremenljivke stringuOddelek: Programiranje | 1043 (937) | BlueKnight |
» | Java pomočOddelek: Programiranje | 1838 (1617) | Serial |
» | C# get/setOddelek: Programiranje | 1104 (1040) | japol |
» | [Java][Naloga] Seznam študentov, majčken problemOddelek: Programiranje | 2336 (2023) | VASkO |