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

Wywołanie funkcji niestatycznej ze statycznej.

Object Storage Arubacloud
0 głosów
640 wizyt
pytanie zadane 3 lutego 2020 w C# przez kubekszklany Gaduła (3,190 p.)

Witam. Chciałbym się dowiedzieć jak wywołać funkcję nie statyczną ze statycznej jakimś najprostszym sposobem, najmniej zasobożernym. Mam przykładowo taki kod:

static void A()
{
    B();
}

void B()
{
    // code
}

I co mam zrobić aby usunąć błąd, że nie statyczna metoda nie może zostać wywołana ze statycznej? Zakładamy oczywiście że funkcja A musi być statyczna, a funkcja B nie może być statyczna. W temacie podałem że język c#, ale jak ktoś zna rozwiązanie w innym języku to też może podać.

1
komentarz 3 lutego 2020 przez MsMaciek123 Pasjonat (24,760 p.)
Jeżeli funkcje mają być w klasie, musisz dla metod niestatycznych (metoda - funkcja w klasie) wskazać instancję.

Mając dwa obiekty:

obiekt1.niestatyczna()

obiekt2.niestatyczna()

I wtedy program wie w której instancji ma wykona się metoda.

 

Jeżeli używasz funkcji niestatycznej w funkcji statycznej, to program nie wie dla której instancji wykonać funkcje i wyrzuca błąd. Jeśli chcesz wykonać dla wszystkich instancji klasy, możesz zrobić metodę B jako statyczną.

No a tak po za tym, do czego tego potrzebujesz?

1 odpowiedź

0 głosów
odpowiedź 3 lutego 2020 przez Siemił Mądrala (7,380 p.)
wybrane 3 lutego 2020 przez kubekszklany
 
Najlepsza

Funkcja A i B sa w jakiejs niestatycznej klasie. Wystarczy ze stworzysz obiekt tej klasy, nastepnie wywolasz funkcje B:

class C
{
    static void A()
    {
        C obiekt = new C();
        obiekt.B();
    }

    void B(){}
}

 

komentarz 3 lutego 2020 przez Aisekai Nałogowiec (42,190 p.)
Nie prościej jako argument funkcji podesłać obiekt na którym ma być wywołana metoda, zamiast robić taki workaround?
komentarz 4 lutego 2020 przez Siemił Mądrala (7,380 p.)
Pewnie że prościej, jeśli przyjmiemy że funkcja A może mieć sygnaturę inną niż podana..

Podobne pytania

0 głosów
2 odpowiedzi 232 wizyt
pytanie zadane 18 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)
0 głosów
1 odpowiedź 195 wizyt
pytanie zadane 4 kwietnia 2017 w C i C++ przez Ehlert Ekspert (212,670 p.)
0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 18 sierpnia 2019 w C i C++ przez Mavimix Dyskutant (8,390 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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!

...