• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z operatorem += C#

Object Storage Arubacloud
0 głosów
614 wizyt
pytanie zadane 6 listopada 2020 w C# przez Chodok Nowicjusz (200 p.)
zamknięte 7 listopada 2020 przez Chodok

Witam,

postanowiłem napisać bota do Discorda, z tego poradnika, niestety mimo identycznego kodu mam błąd (podświetlona linijka), którego nie ma w filmie (skopiowałem nawet cały kod z tego przykładu z GitHub i ten błąd też wystąpił). Używam biblioteki DSharpPlus.

Kod:

using DSharpPlus;
using DSharpPlus.EventArgs;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace MyBot
{
    class Bot
    {

       public DiscordClient Client { get; private set; }
       public async Task RunAsync()
       {
            var config = new DiscordConfiguration
            {

            };
            Client = new DiscordClient(config);

            Client.Ready += OnClientReady;

       }
        private Task OnClientReady(ReadyEventArgs e)
        {
            return null;
        }
    }
}

Treść błędu:

Błąd    CS0123    Żadne z przeciążeń dla elementu „OnClientReady” nie pasuje do delegata „AsyncEventHandler<DiscordClient, ReadyEventArgs>”. 

IDE: Visual Studio Community 2019

PS. Mógłbym też prosić o wytłumaczenie działania operatora += w kontekście zdarzeń?

Z góry dzięki za pomoc

komentarz zamknięcia: Otrzymałem odpowiedż.
komentarz 6 listopada 2020 przez adrian17 Ekspert (344,860 p.)
Co jeśli zmienisz `OnClientReady` na async?
komentarz 6 listopada 2020 przez Chodok Nowicjusz (200 p.)
Wywaliło kilka innych, błędów ale po ich eliminacji i tak CS 0123 pozostał.
1
komentarz 6 listopada 2020 przez Siemił Mądrala (7,380 p.)

@Szczepan Wikar, += dodajesz funkcje ktora obsluzy zdarzenie. W tym wypadku gdy nastapi event Ready zostanie wykonana funkcja OnClientReady. Ale zeby funkcja mogla obsluzyc dane zdarzenie musi miec odpowiednia wartosc zwracana, oraz prawidlowe typu parametry. Jakie to sa prawiflowe typy okresla delegat. Twoja funkcja posiada tylko jeden parametr typu ReadyEventArgs. Musisz dodac drugi typu DiscordClient.

komentarz 7 listopada 2020 przez Chodok Nowicjusz (200 p.)
Dzięki o to chodziło.

1 odpowiedź

0 głosów
odpowiedź 7 listopada 2020 przez Chodok Nowicjusz (200 p.)
Siemił miał rację miał rację, należało dodać drugi argument typu DiscordClient. Dodam, że błędu nie ma tylko wtedy jak argumenty w funkcji są w kolejności DiscordClient, ReadyEventArgs.

Dzięki wszystkim za pomoc, zamykam.

Podobne pytania

0 głosów
0 odpowiedzi 114 wizyt
pytanie zadane 7 marca w C# przez Szymon Piątkowski Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 344 wizyt
pytanie zadane 3 listopada 2021 w JavaScript przez Maxxxii Obywatel (1,260 p.)
–1 głos
1 odpowiedź 352 wizyt
pytanie zadane 21 kwietnia 2020 w JavaScript przez MacixxPL Nowicjusz (120 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...