Net framework 5, а также среды Visual Studio 2012 и C#


таблица 5.1 .( продолжение ) 145



Download 6,27 Mb.
Pdf ko'rish
bet103/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   99   100   101   102   103   104   105   106   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

таблица 5.1
.(
продолжение
)


145
Примитивные.типы.в.языках.программирования
кто-то возьмется читать код, написанный на новом для себя языке, то назначение 
кода может быть неверно им истолковано. Многим языкам незнакомо ключевое 
слово 
long
, и их компиляторы не пропустят код, где оно встречается.
‰
У многих FCL-типов есть методы, в имена которых включены имена типов. На-
пример, у типа 
BinaryReader
есть методы 
ReadBoolean

ReadInt32

ReadSingle
и т. д., а у типа 
System.Convert
— методы 
ToBoolean

ToInt32

ToSingle
и т. д. 
Вот вполне приемлемый код, в котором строка, содержащая 
float
, выглядит 
неестественно; даже возникает впечатление, что код ошибочен:
BinaryReader br = new BinaryReader(...); 
float val = br.ReadSingle(); // Код правильный, но выглядит странно
Single val = br.ReadSingle(); // Код правильный и выглядит нормально
‰
Многие программисты, пишущие исключительно на С#, часто забывают, что 
в CLR могут применяться и другие языки программирования. Например, среда 
FCL практически полностью написана на С#, а разработчики из команды FCL 
ввели в библиотеку такие методы, как метод 
GetLongLength
класса 
Array
, воз-
вращающий значение 
Int64
, которое имеет тип 
long
в С#, но не в других языках 
программирования (например, C++/CLI). Другой пример — метод 
LongCount
класса 
System.Linq.Enumerable
.
По этим причинам я буду использовать в этой книге только имена FCL-типов.
Во многих языках программирования следующий код благополучно скомпи-
лируется и выполнится:
Int32 i = 5; // 32-разрядное число
Int64 l = i; // Неявное приведение типа к 64-разрядному значению
Однако если вспомнить, что говорилось о приведении типов в главе 4, можно 
решить, что он компилироваться не будет. Все-таки 
System.Int32
и 
System.Int64

не являются производными друг от друга. Могу вас обнадежить: код успешно ком-
пилируется и делает все, что ему положено. Дело в том, что компилятор C# неплохо 
разбирается в примитивных типах и применяет свои правила при компиляции кода. 
Иначе говоря, он распознает наиболее распространенные шаблоны программиро-
вания и генерирует такие IL-команды, благодаря которым исходный код работает 
так, как требуется. В первую очередь, это относится к приведению типов, литералам 
и операторам, примеры которых мы рассмотрим позже.
Начнем с того, что компилятор выполняет явное и неявное приведение между 
примитивными типами, например:
Int32 i = 5; // Неявное приведение Int32 к Int32
Int64 l = i; // Неявное приведение Int32 к Int64
Single s = i; // Неявное приведение Int32 к Single
Byte b = (Byte) i; // Явное приведение Int32 к Byte
Int16 v = (Int16) s; // Явное приведение Single к Int16
C# разрешает неявное приведение типа, если это преобразование «безопасно», 
то есть не сопряжено с потерей данных; пример — преобразование из 
Int32
в 
Int64



146
Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   99   100   101   102   103   104   105   106   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish