Aplikacje konsoli w C#
Wyświetlanie informacji dla użytkownika
Aplikacje konsoli najczęściej wykonują dwie podstawowe czynności: odczytywanie i zapisywanie danych. Wcześniej już skorzystaliśmy z metody WriteLine, żeby wypisać tekst w konsoli. Jeżeli nie chcesz, żeby wypisany został również znak końca wiersza, to możesz użyć metody Write. W wersji 6 języka C# pojawiła się wygodna funkcja zwana interpolacją ciągów znaków. Umożliwia ona umieszczenie w tekście wartości zmiennych z zastosowaniem odpowiedniego
formatowania. W ciągu znaków poprzedzonym znakiem dolara można umieszczać nazwy zmiennych zamknięte w nawiasach klamrowych, co powoduje wpisanie do tego ciągu aktualnej wartości danej zmiennej.
W projekcie Zmienne na samym końcu metody Main wprowadź poniższe instrukcje:
Console.Write($"Polska ma {populacja:N0} mieszkańców. ");
Console.WriteLine($"{waga}kg {owoce} kosztuje {cena:C}.");
Po uruchomieniu aplikacji konsoli zobaczysz taki tekst:
Polska ma 38_000_000 mieszkańców. 1,88kg jabłka kosztuje 4,99zł.
Każda zmienna może zostać sformatowana za pomocą specjalnych kodów. Na przykład N0 oznacza liczbę z separatorami tysięcy i bez części ułamkowej, natomiast C oznacza walutę. Format dla danej waluty wyznaczany jest przez ustawienia aktualnego wątku. Jeżeli swój kod uruchomisz na komputerze w Polsce, to wypisana zostanie wartość w złotówkach. Jeżeli ten sam program uruchomiony zostanie w Niemczech, to na ekranie pojawi się wartość w euro.
Pobieranie danych od użytkownika
Za pomocą metody ReadLine można pobrać od użytkownika pewne informacje. Metoda czeka, aż użytkownik wpisze w konsoli jakiś tekst. Gdy tylko naciśnie klawisz Enter, tekst, który został wcześniej wpisany, zwracany jest jako wartość typu string.
Spróbujmy poprosić użytkownika o podanie imienia i wieku. Później przekształcimy podany wiek na liczbę, ale na razie musimy zapisać tę informację w zmiennej typu string.
string imie = Console.ReadLine();
Console.Write("Podaj swój wiek i naciśnij ENTER: ");
string wiek = Console.ReadLine();
Console.WriteLine($"Cześć, {imie}, dobrze wyglądasz jak na {wiek} lat.");
Uruchom aplikację konsoli i przyjrzyj się wypisanemu tekstowi.
Po wpisaniu swojego imienia i wieku na ekranie zobaczysz taki tekst:
Podaj swój wiek i naciśnij ENTER: 35
Cześć, Adam, dobrze wyglądasz jak na 35 lat.
Importowanie przestrzeni nazw
Jeżeli uważnie śledzisz wpisywany kod, to mogłeś zauważyć, że tym razem, inaczej niż w pierwszej aplikacji, przed nazwą klasy Console nie wpisywałem słowa System. System to przestrzeń nazw, a te są swego rodzaju adresami dla typów. Odwołując się do osoby, możesz napisać Warszawa.Marszałkowska.JanNowak, co by oznaczało, że osoba o nazwisku Jan Nowak mieszka przy ulicy Marszałkowskiej w mieście Warszawa. Zapis System.Console.WriteLine informuje kompilator, że metoda o nazwie WriteLine znajduje się w typie Console, a ten z kolei w przestrzeni nazw System.
Visual Studio 2017 oraz polecenie dotnet new console w Visual Studio Code dają możliwość uproszczenia tworzonego kodu. Na początku pliku z kodem źródłowym dopisują one specjalną instrukcję nakazującą kompilatorowi przeszukać przestrzeń nazw System dla wszystkich klas, dla których nie podano jawnie przestrzeni nazw. Instrukcja ta wygląda następująco:
using System;
Taka operacja nazywa się importowaniem przestrzeni nazw. Po jej wykonaniu wszystkie typy zdefiniowane w tej przestrzeni nazw będą dostępne dla naszego programu i będą się pojawiały w podpowiedziach wyświetlanych przez IntelliSense.
Uproszczone korzystanie z konsoli
Od wersji 6.0 języka C# polecenie using można wykorzystać do dalszego upraszczania tworzonego kodu.
Na początku pliku z kodem źródłowym dopisz poniższy wiersz:
Teraz nie musimy w swoim kodzie wpisywać nawet nazwy klasy Console. Możesz zatem użyć funkcji Znajdź i zamień, żeby usunąć ją z kodu. Zaznacz w tekście pierwsze wystąpienie słowa Console., upewniając się, że w zaznaczeniu znajdzie się również kropka. W Visual Studio 2017 naciśnij klawisze Ctrl+H, żeby wykonać szybką zamianę (upewnij się, że pole Zastąp… jest puste), tak jak na poniższym rysunku:
W Visual Studio Code wybierz z menu pozycję Edit/Replace.
Zarówno w Visual Studio 2017, jak i w Visual Studio Code kliknięcie przycisku Zamień wszystkie (albo Replace all) lub naciśnięcie klawiszy Alt+A albo Alt+Cmd+Enter uruchomi zamianę wszystkich znalezionych wystąpień. W otwartym okienku kliknij OK, a potem zamknij okienko zamiany, klikając przycisk z krzyżykiem w prawym górnym rogu.