Oferty pracy dla inżynierów
  • StrefaInzyniera.pl (current)
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektronika
    • Automatyka
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Zaloguj się
  • STREFA INŻYNIERA
  • Oferty pracy
  • Automatyka
    • Uprawnienia elektryczne SEP
    • Elektrotechnika
    • Elektroniki
    • Automatyki
    • Robotyka
  • Przemysł
    • Przemysł
    • Obróbka metali
    • CAD
    • CATIA
    • Autodesk Inventor
  • IT
    • JAVA
    • C++
    • Sieci
  • Firmy
  • Dla firm
    • Rejestracja - profil firmy
    • Dodaj ofertę pracy - bezpłatnie
    • Publikacja artykułów
    • Kontakt
  • Logowanie
  • Zaloguj się
Categories

Typy object i dynamic w C#

Typ object

Istnieje specjalny typ o nazwie object, który może przechowywać dowolny typ danych. Ta elastyczność okupiona jest jednak mniej czytelnym kodem i zmniejszoną wydajnością programów, wynikającą z konieczności wykonania operacji zapakowania (ang. boxing) i rozpakowania (ang. unboxing) podczas zapisywania i odczytywania wartości. Z tego powodu należy unikać jej stosowania, jeżeli to tylko możliwe.

Utwórz nowy projekt aplikacji konsoli, nazwij go Zmienne, a następnie wpisz do metody Main poniższy kod:

object wysokosc = 1.88; // zapisanie wartości typu double w zmiennej typu object
object imie = "Piotr"; // zapisanie wartości typu string w zmiennej typu object
int dlugosc1 = imie.Length; // powoduje błąd kompilacji!
int dlugosc2 = ((string)imie).Length; // rzutowanie daje dostęp do elementów obiektu

Typ object był dostępny już od pierwszych wersji języka C#, ale dopiero C# 2 i nowsze wersje wprowadziły znacznie lepszą alternatywę w postaci typów generycznych, o których będziemy mówić później. Typy te dają nam dużą elastyczność w pracy z danymi bez dodatkowych narzutów zmniejszających wydajność programu.

 

Typ dynamic

Istnieje jeszcze jeden specjalny typ danych o nazwie dynamic, który również pozwala na zapisanie dowolnego typu danych. Podobnie jak w przypadku typu object, ta elastyczność okupiona jest zmniejszeniem wydajności programu. Jednak w przeciwieństwie do typu object, tutaj mamy bezpośredni dostęp do elementów wartości zapisanej w zmiennej, bez konieczności wykonywania jawnego rzutowania, tak jak w poniższym kodzie:

// przechowywanie wartości typu string w zmiennej typu dynamic
dynamic inneImie = "Paweł";
// tę instrukcję można skompilować, ale może ona powodować błędy w czasie pracy programu!
int dlugosc = inneImie.Length;

Ograniczeniem typu dynamic jest to, że Visual Studio nie jest w stanie pokazać podpowiedzi IntelliSense wspomagających pisanie kodu, ponieważ kompilator nie sprawdza zmiennych tego typu podczas kompilacji. Takimi kontrolami zajmuje się środowisko CLR w czasie wykonywania programu. Słowo kluczowe dynamic zostało wprowadzone w języku C# 4.

 

Opracowano na podstawie: C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych, Autor: Mark J. Price, Wydawnictwo: Helion

 

Zaloguj się aby dodać komentarz

Podobne artykuły

« Zmienne lokalne w C#

Podziel się ze znajomymi tym artykułem - udostępnij na FB lub wyślij e-maila korzystając z poniższych opcji:

Oferty pracy dla inżynierów
Oferty pracy dla inżynierów

Inżynier automatyk

ABM-Industry Sp. z o.o.
Gliwice, śląskie
4500-12500

Inżynier automatyk

ABM-Industry Sp. z o.o.
Gliwice, śląskie
4500-12500

Elektromonter w Dziale Produkcji

Workhouse4you Sp. z o.o.
Wieliczka, małopolskie
30 zł/h

Elektromonter w Dziale Produkcji

Workhouse4you Sp. z o.o.
Wieliczka, małopolskie
30 zł/h

Automatyk w Dziale Technicznym

MPS International
Koszalin, zachodniopomorskie

Monter Sieci Telekomunikacyjnych

Flint Group
Niemcy, Berlin, dowolny Region
250-300 Euro na dzień

wszystkie oferty
PracaTechniczna.pl

Strefainzyniera.pl - rynek, praca, rozwój - wszystko co ważne dla inżynierów

  • Dla pracodawcy
  • Artykuły
  • Praca
  • Publikacje
  • Popularne stanowiska
  • Offer in English
  • Regulamin
  • Regulamin dla klientów
  • Polityka prywatności
  • Polityka cookies
  • Kontakt

© 2011 - 2021 NetPortal

Mapa strony Letnisko blisko