Problém s delegátem – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s delegátem – .NET – Fórum – Programujte.comProblém s delegátem – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
12. 10. 2021   #1
-
0
-

Dobrý den, snažím se naučit pracovat s delegáty a nemůžu se domluvit s naprosto banální konstrukcí. V hlavním programu mám metodu, kterou chci předávat, a volám v něm metodu z třídy Radek. Ve třídě Radek mám delegáta. Místo složení řádku, který byl po slovech rozsekaný v poli slova, to vypíše System.String[]. Poradí někdo, co dělám zle?

//hl. program:
static string Spoj(Array a)
        {
            return String.Join(" ", a);
        }
//...
radek.SlozDokopy(Spoj);
//...

//třída Radek
public delegate string AOperace(Array a);

 public void SlozDokopy(AOperace operace)
        {
            string vystup = operace(slova);
//má z pole stringů slova složit jeden řetězec slov s mezerami
            Console.WriteLine(vystup);
// a nedělá to, výstupem je "System.String[]"
        }
Nahlásit jako SPAM
IP: 178.22.113.–
12. 10. 2021   #2
-
0
-

V dokumentaci je dobře vysvětleno, jak se delegáti používají. https://docs.microsoft.com/cs-cz/dotnet/csharp/programming-guide/delegates/using-delegates

Máš delegáta, ted potřebuješ metodu stejného prototypu, tedy s parametrem Array a návratovou hodnotou string. Takovou metodu jsi nám v ukázce kódu neukázal, možná neexistuje. Dále netvoříš proměnnou typu delegát pomocí které bys pak tuto metodu volal.

Snad jsem se do toho nezamotal a je to srozumitelné.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Řešení
gna
~ Anonymní uživatel
1891 příspěvků
12. 10. 2021   #3
-
0
-
Vyřešeno Nejlepší odpověď

V principu to máš dobře, jen ten Join si neporadí s Array. Třeba takhle to funguje:

return String.Join(" ", (object[])a);

Nebo nepoužívej Array.

Nahlásit jako SPAM
IP: 213.211.51.–
13. 10. 2021   #4
-
0
-

#3 gna
Moc děkuji!

Nahlásit jako SPAM
IP: 178.22.113.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 50 hostů

Podobná vlákna

Problém v C — založil Robin

Problem — založil Ghosta

Problém — založil pali6

Problem — založil roonill

Problem s LIKE — založil Lordest

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý