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.
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.
dlaczego w c# jest tak dużo metod statycznych?
Ponieważ są wygodne do użycia, nie trzeba tworzyć ciągle instancji.
Ponieważ w znacznej części są code smell. Programiści lubią jak ich kod śmierdzi.
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.
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...
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).
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