Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Punkt3:Preferowanieniezmiennościtypówwartościowych|
17
ZipCode:zipCode;
}
}
Terazmamytypniezmiennybazującynapublicznyminterfejsie.Abytypten
byłużyteczny,musimydodaćwszystkiekonstruktorypotrzebnedopełnego
zainicjowaniastruktury
Address
.Strukturatapotrzebujetylkojednegododat-
kowegokonstruktora,specyfikującegokażdepole.Konstruktorkopiującynie
jestpotrzebny,gdyżoperatorprzypisaniajestrówniewydajny.Przypomnijmy,
żekonstruktordomyślnynadaljestdostępny.Jesttoadresdomyślny,wktó-
rymwszystkiełańcuchypuste,akodpocztowyjestrówny0.
publicAddress(stringline1,
stringline2,
stringcity,
stringstate,
intzipCode):
this()
{
Line1:line1;
Line2:line2;
City:city;
ValidateState(state);
State:state;
ValidateZip(zipCode);
ZipCode:zipCode;
}
Używanietypuniezmiennegowymaganiecoinnejsekwencjiwywoływania,
abyzmodyfikowaćjegostan.Mówiącściślej,będziemytworzyćnowyobiekt,
zamiastmodyfikowaćistniejącąinstancję:
//Tworzenienowegoadresu:
Addressa1.Line2:newAddress("111S.Main",
ΠΠ,"Anytown","IL",61111);
//Abygozmienić,musimygoponowniezainicjować:
a1.Line2:newAddress(a1.Line1,
a1.Line,"AnnArbor","MI",48103);