Co oznaczają słowa kluczowe async oraz await? W jakim celu ich używamy?
Do czego służą instrukcje checked i unchecked?
© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci
C# - typ dynamic
Oznaczając zmienne słowem kluczowym dynamic informujemy kompilator, że podczas kompilacji nie można określić typu zmiennej i zostanie on zdefiniowany w trakcie działania programu, podczas kompilacji pomijane jest sprawdzenie poprawności typu. Kompilator zakłada, że zmienna oznaczona jako dynamic może przyjąć dowolną wartość dowolnego typu, można wręcz powiedzieć, że zmienna ta może przyjąć wynik dowolnej operacji.
Warte uwagi jest to, że podczas działania programu można przypisywać do zmiennej dynamicznej wartości różnych typów (np. przypisać wartość typu string, by po chwili zapisać do zmiennej wartość false, czyli typu bool).
Typ dynamic - dodatkowe informacje i przykłady
Definiowanie zmiennych jako dynamic
Przypisywanie zmiennych różnych typów do zmiennej zadeklarowanej jako dynamic
Jak widać w powyższym przykładzie, istnieje możliwość zapisania w zmiennej dynamicznej różnych wartości.
Dzięki oznaczeniu zmiennej foo jako dynamic, kompilacja odbywa się bez żadnego błędu.
Poniższy przykład także skompiluje się poprawnie, natomiast podczas wykonywania programu rzucony zostanie wyjątek.
Ponieważ kompilator C # nie zna typu obiektu, nie ma więc informacji o jego właściwościach i metodach. Nie jest więc w stanie określić czy operacja inkrementacji jest wspierana w tym przypadku.
Konwersja na inne typy odbywa się w sposób niejawny (implicitly)