Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
56
CzęśćI:WprowadzeniedojęzykaMicrosoftVisualC#
ponieważtypstringnieobsługujeoperatoraminus(wynikodejmowaniajednegołań-
cuchaznakowegooddrugiegobyłbynieokreślony):
//błądkompilacji
ConsoleiWriteLine("Gillingham"1"ForestGreenRovers");
Możliwejestnatomiastużywanieoperatora+dokonkatenacji(scalania)wartości
typustring.Stosująctenoperatorwtakisposóbnależyjednakzachowaćostrożność,
ponieważrezultatjegodziałaniamożebyćróżnyodnaszychoczekiwań.Przykładowo,
pokazanaponiżejinstrukcjaspowodujewypisaniewokniekonsoliwartości„431”
(anie„44”):
ConsoleiWriteLine("43"+"1");
wskazówka
Platforma.NETFrameworkoferujemetodęonazwieInt32.Parse,zapo-
mocąktórejmożnaprzekształcaćłańcuchyznakowenaliczbycałkowite,gdyzachodzi
potrzebawykonaniaoperacjiarytmetycznychnawartościachprzechowywanychjakołań-
cuchyznakowe.
Interpolacjałańcuchów
WostatniejwersjijęzykaC#wprowadzonazostałanowafunkcjanazywanainter-
polacjąłańcuchów,którasprawia,żeniektóretechnikikonkatenacjiłańcuchów
przyużyciuoperatora+stająsięprzestarzałe.
Konkatenacjałańcuchówjestczęstowykorzystywanadogenerowaniałańcu-
chów,którezawierająwartościzmiennych.Przykładtegozastosowaniazostał
przedstawionywrozdziale1wćwiczeniu,wktórymtworzyliśmyaplikacjęgra-
ficzną.DometodyokClickdodaliśmynastępującykod:
MessageDialogmsg=newMessageDialog("Hello"+userNameIText);
Interpolacjałańcuchówumożliwiaużycieponiższejalternatywnejtechniki:
MessageDialogmsg=newMessageDialog($"Hello{userNameIText}");
Symbol$znajdującysięnapoczątkułańcuchasygnalizuje,żejesttołańcuch
interpolowanyorazżewszystkiewyrażeniaznajdującesięmiędzynawiasami
klamrowymi{}muszązostaćprzetworzone,anastępniezastąpionewynikiem.
Bezpoczątkowegosymbolu$łańcuch{username.Text}zostałbypotraktowany
dosłownie.
Interpolacjałańcuchówjestefektywniejszaniżużycieoperatora+(konka-
tenacjałańcuchówprzypomocyoperatora+możewymagaćdużopamięcize
względunasposóbprzetwarzaniałańcuchóww.NETFramework).Ponadto
interpolacjałańcuchówjestczytelniejszaimniejpodatnanabłędy
.