c type casting explicit implicit data conversion with example
Rzutowanie typu danych w języku C # z przykładami: ten samouczek wyjaśnia jawną i niejawną konwersję, konwertuj na ciąg i konwersję typu danych za pomocą klas pomocniczych:
Typy danych i zmienne w języku C # zostały szczegółowo wyjaśnione w naszym poprzednim samouczku.
Dowiedzieliśmy się, jak jeden typ danych można przekonwertować na inny typ danych przy użyciu rzutowania typów. Rzutowanie podzielone jest na dwie części, tj. Konwersja niejawna i jawna.
Zagłębmy się w rzutowanie typów języka C # w tym samouczku.
=> Poszukaj łatwego przewodnika szkoleniowego języka C # tutaj
Jest to konwersja niejawna, gdy mniejszy typ danych jest konwertowany na większy typ danych lub klasę pochodną na klasę bazową.
Z drugiej strony konwersja w przeciwnym kierunku jest nazywana konwersją jawną. Potrzebuje operatora rzutowania, aby przekonwertować wyższy typ danych na mniejszy typ danych. Ten typ konwersji nie jest bezpieczny dla typów i może spowodować utratę danych.
Czego się nauczysz:
Rzutowanie typu danych w języku C #
W tym samouczku omówimy szczegółowo, jak jeden typ danych można przekształcić w inny typ danych. C # jest typem statycznym podczas kompilacji, co oznacza, że po deklaracji zmiennej nie można jej używać do przechowywania wartości żadnego innego typu danych.
Można to jednak obejść, konwertując ten typ na typ zmienny.
Python if w jednej linii
Spróbujmy zamienić wartość ciągu na liczbę całkowitą.
int a; a = 'some random string';
Jeśli to skompilujemy, zgłosi błąd informujący, że „Nie można niejawnie przekonwertować typu„ string ”na„ int ””.
Typy danych można dalej podzielić na podstawie typów danych.
- Prymitywny
- Nieprymitywne
Prymitywne typy danych są wstępnie zdefiniowane, podczas gdy inne niż pierwotne typy danych są zdefiniowane przez użytkownika. Typy danych, takie jak bajt, int, short, float, long, char, bool itp. Nazywane są pierwotnymi typami danych. Nieprymitywne typy danych obejmują klasę, wyliczenie, tablicę, delegata itp.
W tym samouczku przyjrzymy się różnym metodom oferowanym przez C # do rzutowania typów.
Niejawna konwersja
Niejawna konwersja jest najprostszym typem konwersji. Ten typ konwersji jest bezpieczny dla typów i nie dochodzi do utraty danych podczas konwersji. Te konwersje dotyczą konwertowania klasy pochodnej na klasę bazową.
Na przykład, możemy bezpośrednio użyć niejawnej konwersji, jeśli wartość, która ma być przechowywana w innej zmiennej, może pasować bezpośrednio bez utraty danych. Powiedzmy, że mamy wartość „całkowitą” i chcemy przekazać tę wartość do „długości”.
int i = 75; long j = i;
Jawna konwersja
W niejawnej konwersji widzieliśmy, że możemy bezpośrednio przekonwertować klasę pochodną na klasę bazową bez utraty danych, ale w przypadku, gdy istnieje szansa na utratę danych, kompilator będzie wymagał wykonania jawnej konwersji.
Jawna konwersja lub rzutowanie to proces przekazywania kompilatorowi informacji, że program próbuje wykonać konwersję, wiedząc o możliwej utracie danych.
Na przykład, jeśli zamieniamy wyższą wartość liczbową na niższą.
różnica między strategią testów a planem testów
double d = 75.25; int i; i = (int)d;
Teraz, jeśli wydrukujesz „i”, zobaczysz, że wypisze „75”. Wszystkie dane po przecinku zostaną utracone podczas konwersji.
Konwersja przy użyciu różnych klas pomocniczych
Aby dokonać konwersji między różnymi niekompatybilnymi typami, takimi jak konwersja ciągu znaków na liczbę lub tablicę bajtów na liczbę całkowitą lub nawet ciągi szesnastkowe na inne typy liczbowe, potrzebujemy innej klasy pomocnika, ponieważ bezpośrednia konwersja nie jest możliwa.
Typ danych można przekonwertować na inny typ danych przy użyciu metod obecnych w klasie konwersji lub przy użyciu metody TryParse, która jest dostępna dla różnych typów liczb. TryParse jest bardziej przydatne, jeśli konwertujemy ciąg znaków na liczbę. To całkiem proste i wydajne.
int number = Int32.Parse(“123”);
Tutaj przekonwertowaliśmy ciąg na liczbę całkowitą za pomocą parsowania.
Przyjrzyjmy się innej metodzie konwersji, którą jest metoda Convert.
Metody statyczne obecne w Konwertuj klasę są całkiem przydatne do konwersji na podstawowy typ danych lub odwrotnie. Niektóre z obsługiwanych typów danych to Char, Boolean, Int32, int64, Double, Decimal, String, Int16 itd. Klasa Convert obsługuje również metody innych konwersji.
Konwertuj na ciąg
Convert.ToString konwertuje typ danych na ciąg. w przykład poniżej konwertujemy dane typu integer do typu string.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
Czasami jest możliwe, że kompilator może nie zrozumieć, czy operacja przeprowadzona w celu konwersji jednego typu na inny jest poprawna, czy nie. Powoduje to awarię kompilatora w czasie wykonywania. Gdy konwersja typu nie powiedzie się, zgłosi nieprawidłowy wyjątek.
InvalidCastException jest generowany, gdy jawna lub implementacja konwersji typu nie jest obsługiwana przez oba typy danych używane do konwersji.
Wniosek
W tym samouczku nauczyliśmy się typów konwersji i sposobu wykonywania konwersji między różnymi typami danych. Niejawna konwersja to konwersja, w której klasa pochodna jest konwertowana na klasę bazową, taką jak int, na typ zmiennoprzecinkowy.
Jawna konwersja to konwersja, która może spowodować utratę danych. Jawna konwersja konwertuje klasę bazową na klasę pochodną. Może być konieczne wykonanie konwersji na innych typach danych, w tym celu korzystamy z klasy pomocniczej. Klasy pomocnicze, takie jak „Parse” i „ConvertTo”, oferują różne sposoby konwersji jednego typu danych na inny.
Dowiedzieliśmy się również o wyjątku, który kompilator zgłosi, gdy nie rozumie konwersji między dwoma typami.
=> Poszukaj łatwego przewodnika szkoleniowego języka C # tutaj
rekomendowane lektury
- Typy danych i zmienne w języku C # z przykładami
- Typy danych C ++
- Konwersje typów w C ++
- Eksploracja danych: proces, techniki i główne problemy w analizie danych
- Data Mart Tutorial - Rodzaje, przykłady i implementacja Data Mart
- Typy testów migracji: ze scenariuszami testów dla każdego typu
- Ponad 10 najlepszych narzędzi do gromadzenia danych ze strategiami gromadzenia danych
- Funkcja puli danych w produkcie IBM Rational Quality Manager do zarządzania danymi testowymi