. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
типы и ссылки<br />
Типы для хран<strong>е</strong>ния оч<strong>е</strong>нь больших и оч<strong>е</strong>нь мал<strong>е</strong>ньких Ч И С б Л<br />
Иногда с<strong>е</strong>ми значащих цифр оказыва<strong>е</strong>тся н<strong>е</strong>достаточно. Быва<strong>е</strong>т так, что 10*® —н<strong>е</strong>достаточно<br />
большо<strong>е</strong> число, а 10"“*^ —н<strong>е</strong>достаточно мало<strong>е</strong>. С такими пробл<strong>е</strong>мами сталкиваются программы финансового<br />
уч<strong>е</strong>та и научных иссл<strong>е</strong>дований, и для них в С# пр<strong>е</strong>дназнач<strong>е</strong>ны дополнит<strong>е</strong>льны<strong>е</strong> типы:<br />
★<br />
f l o a t хранит любо<strong>е</strong> число в диапазон<strong>е</strong> от ±1.5- 10'^'’до±3.4 ■10*® с 7 значащими цифрами;<br />
~^^с'таЫасто* d ecim al хранит любо<strong>е</strong> число в диапазон<strong>е</strong> от ±1.0 • 10'^® до ±7.9 • 10^® с 28-29 значащими<br />
встр<strong>е</strong>ча<strong>е</strong>тся цифрами.<br />
Свойство Value<br />
6 программах у п<br />
« К о н с т й н т й » — это ^ ^ с л о к о -<br />
эл<strong>е</strong>м<strong>е</strong>нта управл<strong>е</strong>ния<br />
numericUpPown<br />
финансового<br />
торо<strong>е</strong> 6t>! вводит<strong>е</strong> в код. В Ьы<br />
уч<strong>е</strong>та.<br />
ЛX----' раж<strong>е</strong>ним «int і - 5;» s — это<br />
^принадл<strong>е</strong>жит<br />
константа.<br />
t/ПМЛІЛЛйН<br />
данных<br />
Константы тож<strong>е</strong> им <strong>е</strong>ю т тип<br />
decimal.<br />
Числа, использу<strong>е</strong>мы<strong>е</strong> в программ<strong>е</strong> на С#, называются константами... и вс<strong>е</strong> они<br />
принадл<strong>е</strong>жат какому-то типу. Попробуйт<strong>е</strong> написать код, присваивающий знач<strong>е</strong>ни<strong>е</strong><br />
1 4 .7 п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной типа in t:<br />
Description<br />
i n t m y in t = 1 4 .7 ;<br />
При компиляции вы увидит<strong>е</strong>:<br />
^ 1<br />
Carmot imptkrtty convert type 'double' to ‘inf. An<br />
explicit conversion Bcists (are you missing # cast?)<br />
ИСР сообща<strong>е</strong>т, что константа 1 4 . 7 принадл<strong>е</strong>жит типу d o iib le . Вставив в кон<strong>е</strong>ц<br />
букву F (1 4 . 7F ), вы пом<strong>е</strong>ня<strong>е</strong>т<strong>е</strong> тип константы на f l o a t . А в форм<strong>е</strong> 1 4 . 7М оно<br />
буд<strong>е</strong>т принадл<strong>е</strong>жать уж<strong>е</strong> типу d e c im al.<br />
«М» означа<strong>е</strong>т «m oney»<br />
(д<strong>е</strong>ньги). Я н<strong>е</strong> шучу!<br />
Ещ <strong>е</strong> н<strong>е</strong>сколько встро<strong>е</strong>нны х типов<br />
Для хран<strong>е</strong>ния <strong>е</strong>диничных символов, наприм<strong>е</strong>р, Q, 7 или $ использу<strong>е</strong>тся<br />
тип c h a r. Константы этого типа вс<strong>е</strong>гда заключаются в одиночны<strong>е</strong> кавычки<br />
(' X', ' 3 '). В кавычки можно заключить и <strong>е</strong>вс-посл<strong>е</strong>доват<strong>е</strong>льность (' \ п ' —<br />
это п<strong>е</strong>р<strong>е</strong>нос строки, ' \ t ' —знак табуляции). Хотя в код<strong>е</strong> эти посл<strong>е</strong>доват<strong>е</strong>льности<br />
фигурируют в вид<strong>е</strong> пары символов, программа хранит их в памяти<br />
в вид<strong>е</strong> одного.<br />
И након<strong>е</strong>ц тип таких данных как o b je c t. Вы уж<strong>е</strong> получали объ<strong>е</strong>кты, создавая<br />
экз<strong>е</strong>мпляры классов. Любой из них мог быть п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной типа оЬj e c t.<br />
О том, как работают объ<strong>е</strong>кты и п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нны<strong>е</strong>, которы<strong>е</strong> на них ссылаются, мы<br />
<strong>е</strong>щ<strong>е</strong> поговорим в этой глав<strong>е</strong>.<br />
W T V P M<br />
Попытавшись присвоить<br />
константу<br />
типа float п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной<br />
типа double<br />
или decimal, вы<br />
увидит<strong>е</strong> окно с подсказкой.<br />
К<br />
"О связи м<strong>е</strong>жду<br />
типами char<br />
и byte вы узна<strong>е</strong>т<strong>е</strong><br />
о глав<strong>е</strong> ■?.<br />
в Windows 7 у Калькулятора сущ<strong>е</strong>ству<strong>е</strong>т и р<strong>е</strong>жим «Программист<br />
», позволяющий использовать бинарны<strong>е</strong> и д<strong>е</strong>сятичны<strong>е</strong><br />
числа одновр<strong>е</strong>м<strong>е</strong>нно!<br />
Встро<strong>е</strong>нный калькулятор Windows можно использовать для п<strong>е</strong>р<strong>е</strong>вода д<strong>е</strong>сятичных чис<strong>е</strong>л в двоичны<strong>е</strong>:<br />
п<strong>е</strong>р<strong>е</strong>йдит<strong>е</strong> в Инж<strong>е</strong>н<strong>е</strong>рный р<strong>е</strong>жим, вв<strong>е</strong>дит<strong>е</strong> число, и установит<strong>е</strong> п<strong>е</strong>р<strong>е</strong>ключат<strong>е</strong>ль в полож<strong>е</strong>ни<strong>е</strong> Bin. Для<br />
обратного пр<strong>е</strong>образования достаточно в<strong>е</strong>рнуть п<strong>е</strong>р<strong>е</strong>ключат<strong>е</strong>ль в полож<strong>е</strong>ни<strong>е</strong> Dec. Прод<strong>е</strong>лайт<strong>е</strong> эту оп<strong>е</strong>рацию<br />
с пограничны м и знач<strong>е</strong>ниям и ц<strong>е</strong>лы х ти пов (скаж<strong>е</strong>м, с -32 768 и 255). Вы мож<strong>е</strong>т<strong>е</strong> объяснить,<br />
поч<strong>е</strong>му в <strong>C#</strong> используются им<strong>е</strong>нно таки<strong>е</strong> знач<strong>е</strong>ния?<br />
дальш<strong>е</strong> у 155