czy metoda async await musi być statyczna

0

Cześć. mam w projekcie przykładowym pod statyczną Main() w programie konsolowym metodę async await jako statyczną bo w takiej sytuacji musi być ona statyczną jak to rozumiem...
Chciałem się jednakże dopytać Kolegów czy odnośnie metody async await jest obowiązkowe używanie static czy niekoniecznie i mogę sobie w programie GUI darować jej taką deklarację
ponieważ nie mam z góry narzuconego jak w programie konsolowym użycia trybu static,

ja rozumiem ponadto do czego służy termin static gdzie wystarczające jest pojedyncze wywołanie takiej metody i ona jest już w pamięci operacyjnej programu i narzut związany z jej każdorazowym wywoływaniem znika...

tak chciałem tylko jakiegoś może pomocnego od Kogoś życzliwego czy dobrze idę jako początkujący programista...

dzięki za podpowiedź - komentarz zwłaszcza życzliwy...

Miro

1

Nie, nie musi.

A ciężko to samemu sprawdzić?

Przecież nawet w apce konsolowej możesz to zrobić, bo w przeciwieństwie do tego co piszesz w apce konsolowej wcale nie masz narzuconego użycia static do każdej metody.
Main jest statyczny, więc nie możesz w nim używać niestatycznych metod tej samej klasy. I to by było tyle z tego narzucania używania static w konsoli.

0

dzięki za podpowiedź.
rzeczywiście w tym obcym mi projekcie konsolowym cały kod jest zawarty w pojedynczym pliku a więc w tej samej klasie program

zasadniczo ja rozumiem, iż oba terminy: static oraz async/await są niezależnymi względem siebie

przeniosłem sobie kod do nowego projektu GUI aby jedynie przetestować sobie fragment kodu związany z samym użyciem autoryzacji OAuth2 i oczywiście usunąłem słowo kluczowe static

mam inne już pytanie dotyczące rejestracji na tym Forum oraz problemach z rejestracją na codeproject.com za pomocą tego samego adresu e-mail i za chwilę utworzę nowe zapytanie - wątek.

dlatego dziękuje za podpowiedź, chciałem jedynie upewnić się ponieważ dotychczas nie używałem tego terminu

przy okazji zarejestrowałem się na tym Forum...
raz jeszcze dzięki tertonn

2
some_ONE napisał(a):

Main jest statyczny, więc nie możesz w nim używać niestatycznych metod tej samej klasy.

Wystarczy utworzyć instancję klasy i odwoływać się do niej.

	class Program
	{
		private void nonStaticMethod() { }


		static void Main(string[] args)
		{
			new Program().nonStaticMethod();
		}
	}

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