Odstranění sama sebe z List Of   otázka

VB.NET, Algoritmy

Dobrý den, je možné aby objekt odstranil sám sebe z kolekce?

Dejme tomu že mám v aplikaci třídy ClassZakaznici a ClassKontakty. Tyto třídy reprezentují data v databázi a každý zákazník může mít neomezený počet kontaktů (vazbu 1:N).

- Třída ClassZakaznici načte základní data o zákazníkovi a stará se o jejich správu (přidávání, mazání, update). Jedna instance třídy = jeden zákazník v databázi

- Třída ClassKontakty načítá kontakty a stará se o jejich správu. Jedna instance třídy = jeden kontakt

- Třída ClassZákazníci má mimo jiné property SeznamKontaktu As List(Of ClassKontakty). Tedy v této property jsou umístěné instance třídy reprezentující jednotlive kontakty

A mě by teď zajímalo následující: property SeznamKontaktu mám naplněnou. Uvnitř seznamu zavolám na některé z instancí funkci DeleteKontakt která vymaže kontakt z databáze. A bylo by pěkné aby třída odstranila i sama sebe z tohoto listu (když už ten kontakt neexistuje), aby se o to už nemusel starat nadřazená třída.

Je toto možné nějak zajistit, nebo musím zavolat funkci Remove přímo nad tím seznamem v nadřazené třídě?

Děkuji

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

Můžete předat delegáta mazací metody do konstruktoru té třídy a ta to potom může provést sama zevnitř.

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

Pravda, to mě nenapadlo :)

Předpokládám tedy že v .Net není nějaká obecná funkce, která by se zavolala na jakémkoli objektu a která by zjistila, zda objekt není členém nějaké kolekce a vrátila třeba referenci (v.Net tedy asi delegáta) na tu kolekci.

Každopádně díky za popostrčení

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

To je už z principu naprostá hovadina. Objekt bez nějakého explicitního zákroku absolutně nemá tušení o svém okolí, v tomto případě jestli se nachází v nějaké kolekci nebo jinde. Zdá se mi, že nevíte co je delegát, je to zástupce libovolné metody s odpovídající signaturou.

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

S tím souhlasím, ale někdy ten zákrok dělají některé frameworky automaticky a pak ten objekt má v sobě metodu, která vrátí odkaz na tu kolekci. Takže jsem myslel zda něco takového není možné i v .Net

To ano, ale delegát v sobě mimo jiné má odkaz (ukazatel) na danou metodu.

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

dělají některé frameworky automaticky a pak ten objekt má v sobě metodu, která vrátí odkaz na tu kolekci

Uveďte konkrétní příklad, nebo přestaňte plácat nesmysly.

delegát v sobě mimo jiné má

Co?

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

- Coca, Cocos2d (na všech platformách). To že něco neznáte z toho ještě nedělá nesmysl, ale myslete si co chcete, to je Váš problém.

- pointer, odkaz, ukazatel je celkem jedno jak to nazvete, pořád to je to samé

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

Řeč byla o nějaké kolekci, jejíž členové mají automaticky možnost odebrat se z ní. To že znáte něco, co já ne ještě neznamená, že je to k danému tématu.

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