Ćwiczenie — wykonywanie dodawania za pomocą niejawnej konwersji danych
Często należy wykonywać operacje matematyczne na danych liczbowych. Zaczniesz od dodania w tej lekcji i rozszerzysz do innych operacji w następnej lekcji, ponieważ istnieje ważna lekcja, aby dowiedzieć się, jak kompilator języka C# analizuje i interpretuje kod.
Dodaj dwie wartości liczbowe
Aby dodać dwie liczby razem, użyjesz operatora dodawania, który jest symbolem +plus . Tak, ten sam symbol plus +, który służy do łączenia ciągów, jest również używany w dodawaniu. Używanie jednego symbolu do wielu celów jest czasami nazywane „przeciążeniem operatora” i jest często spotykane w języku C#.
W tym przypadku kompilator języka C# rozumie, co próbujesz zrobić. Kompilator analizuje kod i widzi, że operator + jest otoczony dwoma wartościami liczbowymi (operandami). Biorąc pod uwagę typy danych zmiennych (obydwie to int), wnioskuje, że chcesz dodać te dwie wartości.
Edytor kodu języka C# jest dostępny do użycia bezpośrednio w przeglądarce: Edytor kodu języka C#. Ten edytor zapewnia lekkie środowisko do pisania, uruchamiania i testowania kodu C# bez konieczności instalowania jakiegokolwiek oprogramowania na komputerze lokalnym.
Otwórz Edytor kodu języka C# w nowym oknie lub karcie przeglądarki.
Okna przeglądarki można umieścić obok siebie, aby można było zapoznać się z tymi instrukcjami podczas pracy w Edytorze kodu języka C#.
Wprowadź następujący kod w edytorze kodu języka C#:
int firstNumber = 12; int secondNumber = 7; Console.WriteLine(firstNumber + secondNumber);Uruchom kod i zobaczysz następujący wynik w konsoli danych wyjściowych:
19
Aby wymusić niejawne konwersje typów, pomieszaj typy danych
Co się stanie, jeśli spróbujesz użyć symbolu + z wartościami string i int ?
Usuń cały napisany wcześniej kod.
Wprowadź następujący kod w edytorze kodu języka C#:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + " widgets.");Uruchom kod i zobaczysz następujący wynik w konsoli danych wyjściowych:
Bob sold 7 widgets.
W tym przypadku kompilator języka C# rozumie, że chcesz używać symbolu + do łączenia dwóch operandów. Wywnioskowuje to, ponieważ symbol + jest otoczony operandami o typach danych string i int. Dlatego próbuje niejawnie przekonwertować zmienną int typu widgetsSold na tymczasową wartość string, aby można było połączyć ją z resztą ciągu. Kompilator języka C# próbuje Ci pomóc, kiedy tylko może, ale najlepiej jest jawnie sygnalizować swoje zamiary.
Wypróbuj bardziej zaawansowane dodawanie liczb i łączenie ciągów
Zmodyfikuj napisany kod, aby był zgodny z następującym kodem:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + widgetsSold + 7 + " widgets.");Uruchom kod i zobaczysz następujący wynik w konsoli danych wyjściowych:
Bob sold 77 widgets.
Zamiast dodawać zmienną int do literału widgetsSold, kompilator traktuje wszystko jako ciąg znaków i łączy to razem.
Dodawanie nawiasów w celu wyjaśnienia zamiaru kompilatora
Zmodyfikuj napisany kod, aby był zgodny z następującym kodem:
string firstName = "Bob"; int widgetsSold = 7; Console.WriteLine(firstName + " sold " + (widgetsSold + 7) + " widgets.");Uruchom kod i zobaczysz następujący wynik w konsoli danych wyjściowych:
Bob sold 14 widgets.
Symbol nawiasów () staje się kolejnym przeciążonym operatorem. W tym przypadku nawiasy otwierający i zamykający tworzą operator kolejności wykonywania działań, tak samo jak we wzorze matematycznym. Wskazujesz, że chcesz najpierw rozwiązać najbardziej wewnętrzne nawiasy, co prowadzi do dodania wartości int, wartości widgetsSold i wartości 7. Po obliczeniu tego nastąpi niejawna konwersja wyniku na ciąg, aby można było go połączyć z resztą komunikatu.
Uwaga
Należy raczej unikać wykonywania obliczeń i łączenia w jednym wierszu kodu. W tym miejscu celem jest zaprezentowanie, jak operatory i operandy są widziane przez kompilator.
Podsumowanie
Poniżej przedstawiono zdobytą wiedzę na temat operacji matematycznych w języku C#:
- Na liczbach można wykonywać działania matematyczne, takie jak dodawanie.
- Zarówno przy łączeniu ciągów, jak i dodawaniu jest używany symbol plusa
+. Jest to nazywane przeciążeniem operatora i kompilator wnioskuje o jego właściwym użyciu na podstawie typów danych, na których działa. - Gdy to możliwe, kompilator języka C# będzie niejawnie konwertować typ
intna typstring, jeśli będzie oczywiste, że deweloper próbuje połączyć ciąg reprezentujący liczbę do celów prezentacji. - Użyj nawiasów, aby zdefiniować kolejność operacji, aby jawnie poinformować kompilator, że chcesz wykonać określone operacje przed innymi operacjami.