Defaultní hodnota proměné   zodpovězená otázka

VB.NET, Algoritmy, .NET

Dobrý,

předem se omlouvám za takový to začátečnický dotaz.

Mám několik proměných:

a = načtená hodnota z dat (typ vlastní třída)

b = a

c = a

Potřebuji, aby hodnota c, zůstala tak jak byla v době přiřazení. Tedy, aby změnou "a" nedošlo ke změně "c". Jedná se mi v podstatě o jakousi defaultní hodnotu, která je vytvořena např. v době naběhnutí programu.

Předem děkuji za nakopnutí

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

Však ono přiřazením jiné reference do a zůstane reference v c zachována (bude stále ukazovat na původní objekt). Pouze pokud změníte vlastnost v objektu na který ukazuje a, projeví se to i v c protože obě proměnné ukazují na stejný objekt.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Práve jde o to, že v průběhu činnosti měním vlastnosti původního objektu co na něj ukazuje a a tím pádem se mi mění objekt všude.

Objekt a se vlastně naplní načtenými daty ze souboru v počítači. S těmi se pracuje, různě jsou měněny jeho vlastnosti a já bych potřeboval před ukončením porovnat původně načtený objekt s tím editovaným. Pokud se neshodují, znamená to pro mě, že byl objekt změněn a je to pro mě signál pro výzvu k uložení.

Samozřejmě, že bych data mohl načíst hned napočátku dvakrát za sebou do různých objektů, ale zajímalo mne jestli to nelze řešit i jinak.

Chci tedy načíst data, vytvořit jednu instanci pro uchovávání změn v paměti a druhou jako výchozí stav souboru.

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

K tomu je určeno rozhraní ICloneable. Toto rozhraní implementujete ve své třídě a pomocí metody Clone vrátíte novou instanci se stejnými hodnotami. Nebo vytvořit novou instanci a hodnoty jí nastavit ručně, ale to není tak efektivní jako ICloneable.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

opravdu mnohokrát děkuji za Vaši radu a čas. ICloneable je přesně to co potřebuji.

Přeji hezký večer

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