C# lastnost podrazreda

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

C# lastnost podrazreda

OdgovorNapisal/-a zanka » 07 Jun 2019, 18:52

Imam razred in izpeljan razred (ta podeduje razred). Vsak podrazred ima številsko lastnost A, ki je za vsak razred drugačna.

Vsak podrazred bi rad obravnaval kot razred in mu bral to lastnost A, da bi vedel, kateri podrazred je, hkrati pa bi imel to lastnost tudi dostopno kot konstanto.
Koda: Izberi vse
class razred
{
  public byte A;
}
class podrazred1: razred
{
  public const byte A1 = 1;
  podrazred1() {
    this.A = A1;
   }
}

Je mogoče to kodo zmanjšati? Torej da imam tudi v izpeljanem razredu samo A = 1 brez ali z drugačno navlako this.A
Uporabniški avatar
zanka
 
Prispevkov: 2256
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 101 krat
Prejel zahvalo: 199 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 38

Re: C# lastnost podrazreda

OdgovorNapisal/-a zanka » 07 Jun 2019, 19:16

Kar želim je imeti
- podrazred1.A
- (new podrazred1).A
enake vrednosti
Uporabniški avatar
zanka
 
Prispevkov: 2256
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 101 krat
Prejel zahvalo: 199 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 38

Re: C# lastnost podrazreda

OdgovorNapisal/-a gumby » 07 Jun 2019, 19:31

Koda: Izberi vse
class razred
{
  public byte A;

  public razred(byte x) {
    A = x;
  }
}
class podrazred1: razred
{
  public const byte A1 = 1;
  podrazred1() : base(A1) {
   }
}

tak nekak... na pamet sem tole pisal
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2375
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 100 krat
Prejel zahvalo: 542 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 59

Re: C# lastnost podrazreda

OdgovorNapisal/-a zanka » 07 Jun 2019, 19:44

Ja to gre, vendar nočem imeti v podrazredu statično vrednost poimenovano A1 in dinamično preko nadrazreda A.
Uporabniški avatar
zanka
 
Prispevkov: 2256
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 101 krat
Prejel zahvalo: 199 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 38

Re: C# lastnost podrazreda

OdgovorNapisal/-a gumby » 07 Jun 2019, 19:46

Saj A1 ne rabiš... pač kličeš z :base(nekaj)
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2375
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 100 krat
Prejel zahvalo: 542 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 59

Re: C# lastnost podrazreda

OdgovorNapisal/-a Carko » 07 Jun 2019, 21:59

Koda: Izberi vse
class podrazred1 : razred
{
   podrazred1() : base(1)   { }
}
Carko
 
Prispevkov: 1971
Pridružen: 10 Jan 2015, 01:46
Zahvalil se je: 132 krat
Prejel zahvalo: 470 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 120

Re: C# lastnost podrazreda

OdgovorNapisal/-a zanka » 07 Jun 2019, 22:30

Želim, da ima podrazred tudi neobjektno št. vrednost A, torej namespace.podrazred.A
Ko pa ta podrazred ustvarim, mora imeti pa nadrazred, iz katerega je izpeljan podrazred, št. vrednost A enako namespace.podrazred.A
Ne vem, če je to izrazno v C#. Je pa zaželjeno
Uporabniški avatar
zanka
 
Prispevkov: 2256
Pridružen: 17 Mar 2016, 01:16
Kraj: Krško
Zahvalil se je: 101 krat
Prejel zahvalo: 199 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 38

Re: C# lastnost podrazreda

OdgovorNapisal/-a Carko » 08 Jun 2019, 00:18

Če narediš polje A v "nadrazredu", je ta isti viden in dostopen tudi v "podrazredu". Lahko razložiš, zakaj želiš imeti še enega - enakega - v podrazredu?

Da se, ampak v tvojem primeru (vsaj z informacijami, ki si jih podal) tega ne bi tako naredil.
Carko
 
Prispevkov: 1971
Pridružen: 10 Jan 2015, 01:46
Zahvalil se je: 132 krat
Prejel zahvalo: 470 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 120


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost