Třída, vlastnosti a jejich defaulní hodnoty   zodpovězená otázka

C#, Architektura

Dobrý den,

rád bych se zeptal jak se řeší definování defaultních hodnot pro vlastnosti třídy?

Děkuji předem

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím přesně na co se ptáte.

Vlastnost třídy většinou vrací (nastavuje) nějaký datový člen, takže máte na mysli jak nastavit defaultní hodnotu datovýho členu ? ..

Pokud ano tak se to nastavuje přímo při definování členu int promena = 5;

Možná máte na mysli statické datové členy. Ty mužete nastavit taky přímo nebo využít statickýho konstruktoru třídy.

No pochybuju, že jsem vám poradil. Skuste lépe popsat o co vám jde.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Každá vlastnost (pro čtení i zápis) jsou ve skutečnosti dvě metody, jedna pro čtení (Get...End Get) a jedna pro zápis (Set...End Set). Tyto metody pracují s Private proměnnou definovanou na úrovni třídy. Výchozí hodnotu vlastnosti tedy definujete nastavením hodnoty do této proměnné.

'Visual Basic .NET 9.0 (2008)
Class NewClass
  'Výchozí hodnota proměnné bude 123
  Private _value As Integer = 123
  Public Property Value As Integer
    Get
      Return _value
    End Get
    Set(ByVal value As Integer)
      _value = value
    End Set
  End Property
End Class

'Visual Basic .NET 10.0 (2010)
'(nově podporuje zjednodušený zápis vlastností)
Class NewClass
  'Výchozí hodnota proměnné bude 123
  Public Property Value As Integer = 123
End Class

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Na to je několik řešení. Pokud ale používáte zkrácený zápis v C#, doporučuji inicializaci v konstruktoru. Například:

class Trida
{
  public Trida()
  {
    this.Vlastnost = 3;
  }

  public int Vlastnost 
  {
    get; set;
  }

}

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nastavení výchozí hodnoty je mi jasné, ale mě jde o defaultní, přednastavené hodnoty ke kterým se mohu během iniciace třídy vracet.

Prakticky to tedy znamená, že v aplikaci se přiřadím nějaké konkrétní hodnoty vlastnostem třídy, které si také ukládám. Ale jako volba by měla být i možnost návratu k defaultním hodnotám.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Oprava: správně mělo být napsáno, že se mohu k defaultním hodnotám vracet po inicializaci třídy. Tedy k výchozí hodnotě (např. přiřazené v konstruktoru) se již nedostanu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak není nic jednoduššího než napsat metodu která výchozí hodnoty nastaví...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback