Funkcje statyczne

0

Czy mógłby ktoś objaśnić o co chodzi z funkcjami statycznymi w c#? Od kilku dni nie mogę tego rozgryźć. Dlaczego ich w c# w bibliotekach jest tak dużo? W c++ nie ma ich prawie wcale.

0

c# to nie c++, kompletnie rozna filozofia. porownywanie tych dwoch na zasadzie 'x bez sensu, przeciez w y tego nie ma' do niczego cie nie zaprowadzi. w c# nie ma funkcji, z tego wlasnie powodu jest sporo metod statycznych.

0

dlaczego w c# jest tak dużo metod statycznych?

0

Ponieważ są wygodne do użycia, nie trzeba tworzyć ciągle instancji.

0

Ponieważ w znacznej części są code smell. Programiści lubią jak ich kod śmierdzi.

3

Bo w C# nie ma funkcji globalnych. A z drugiej strony, nie ma żadnego powodu, by takie Math.Round() nie było statyczne - po co komu tworzyć jakiś „obiekt klasy Math”, skoro funkcje tej klasy nie przechowują żadnego stanu, a wszystko co im potrzebne do działania otrzymują w parametrach?

Co miałby przechowywać hipotetyczny obiekt klasy Math? Do czego miałby służyć, oprócz bezsensownego dodatkowego klepania?

W .NET statyczne jest wszystko to, co może być statyczne. I to nie jest żadne "code smell". Śmierdzi to właśnie tworzenie bezsensownych instancji obiektów.

Wyobraź sobie, że metoda statyczna to taka funkcja globalna z C++, tylko ma cośtam-kropka na początku nazwy.

0

Cześć. właśnie zdenerwowałem się na statyczne ponieważ nie można w nich od razu pokazać wyniku w kontrolkach listBox czy label... i zrobiłem jak mi radziliście zajrzeć do podobnego zapytania w forum może coś jest na ten temat... i zmieniłem static na public ale nie jestem pewien czy Monte Carlo przykład długotrwałego procesu jaki dalej będzie wykorzystywany przez autora w książce o wątkach nie będzie w jakiś sposób szkodliwy może nawet skoro autor zrobił wszystkie przykłady w programach konsolowych a ja uwielbiam GUI... i przerabiam wszystkie przykłady w ten sposób...

0

zdenerwowałem się na statyczne ponieważ nie można w nich od razu pokazać wyniku w kontrolkach listBox

Jeśli potrzebujesz pokazać wynik na kontrolce, to znaczy że potrzebna ci jest zwykła metoda a nie statyczna.

Ale nie powinieneś mieszać części obliczeniowej z interfejsem. powinno być tak: jedna metoda coś liczy (i nie wyświetla), a inna to wyświetla (i nic nie liczy).

0

Azarien. Autor książki z tego powodu jak wyjaśnił używa aplikacji konsolowych a mnie denerwują Jego MsgBox pardon messageBox co On nagminnie używa...
podsumowując: On ma swoje nawyki a ja mam swoje... tyle, że to Jego książki ja próbuję teraz przerobić materiał i muszę mnóstwo sobie pozamieniać... Donek

1 użytkowników online, w tym zalogowanych: 0, gości: 1