Введение в теорию программирования. Объектно-ориентированный подход


Основные понятия языка программирования C# - часть 2


Таблица 15.3. Сопоставление отображений типов языков SML и C# в систему типов .NET.

C# CTS (.NET) SML Диапазон
sbyte System.SByte --- -128..127
byte System.Byte byte 0..255
short System.Int16 int -32768..32767
ushort System.UInt16 word 0..65535
long System.Int64 --- -263..263-1
float System.Single real +1.5E-45..+3.4E+38 (32 Bit)
double System.Double --- +5E-324..+1.7E+308 (64 Bit)
decimal System.Decimal --- +1E-28..+7.9E+28 (128 Bit)
bool System.Boolean bool true, false
char System.Char char Символ (в коде unicode)

Даже из предварительного анализа таблицы видно, что система типизации языка программирования С# значительно богаче по сравнению с языком программирования SML. Можно заметить, что всякому типу языка программирования SML соответствует некоторый тип языка программирования С#, и их названия зачастую совпадают или бывают схожими.

Наконец, отметим, что все без исключения типы обоих языков программирования однозначно отображаются в систему типизации Microsoft .NET, верхним иерархическим элементом которой является пространство имен System.

Кроме понятия переменной, которое уже рассматривалось ранее в связи с типами-значениями и ссылочными типами, интересно провести исследование объектов-констант в языке программирования C#.

Напомним, что константные объекты в комбинаторной логике можно моделировать посредством комбинатора-канцелятора К с характеристикой Kxy = x.

Рассмотрим ряд примеров описания констант посредством оператора перечисления (заметим, что применяемый в C# способ описания констант изначально ориентирован на написание безопасного кода, поскольку содержит обязательную инициализацию).

Оператор перечисления enum языка C# представляет собой список поименованных констант. Описание производится непосредственно в пространстве имен с областью видимости, которую необходимо обеспечить для константы:

enum Color {red, blue, green} enum Access {personal=1, group=2, all=4} enum Access1 : byte {personal=1, group=2, all=4}

Пример использования константы после ее описания имеет следующий вид:




Начало  Назад  Вперед



Книжный магазин