Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лекция 3.1

Основные понятия языка С#. Типы данных

 

Создателем языка является сотрудник Microsoft Андреас Хейлсберг. Он стал известным в мире программистов задолго до того, как пришел в Microsoft. Хейлсберг входил в число ведущих разработчиков одной из самых популярных сред разработки - Delphi. В Microsoft он участвовал в создании версии Java - J++, так что опыта в написании языков и сред программирования ему не занимать. Как отмечал сам Андреас Хейлсберг, C# создавался как язык компонентного программирования, и в этом одно из главных достоинств языка, направленное на возможность повторного использования созданных компонентов. Из других объективных факторов отметим следующие:

C# создавался параллельно с каркасом Framework.Net и в полной мере учитывает все его возможности - как FCL, так и CLR;

C# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами;

C# является мощным объектным языком с возможностями наследования и универсализации;

C# является наследником языков C/C++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от С++ к C#;

сохранив основные черты своего великого родителя, язык стал проще и надежнее. Простота и надежность, главным образом, связаны с тем, что на C# хотя и допускаются, но не поощряются такие опасные свойства С++ как указатели, адресация, разыменование, адресная арифметика;

благодаря каркасу Framework.Net, ставшему надстройкой над операционной системой, программисты C# получают те же преимущества работы с виртуальной машиной, что и программисты Java. Эффективность кода даже повышается, поскольку исполнительная среда CLR представляет собой компилятор промежуточного языка, в то время как виртуальная Java-машина является интерпретатором байт-кода;

мощная библиотека каркаса поддерживает удобство построения различных типов приложений на C#, позволяя легко строить Web-службы, другие виды компонентов, достаточно просто сохранять и получать информацию из базы данных и других хранилищ данных;

реализация, сочетающая построение надежного и эффективного кода, является немаловажным фактором, способствующим успеху C#.

С# является жестко типизированным языком. При его использовании вы должны объявлять тип каждого объекта, который создаете (напри­мер, целые числа, числа с плавающей точкой, строки, окна, кнопки, и т. д.), и компилятор поможет вам избежать ошибок, связанных с присво­ением переменным значений.

Подобно языку C++, C# подразделяет типы на два вида: встро­енные типы, которые определены в языке, и определяемые пользовате­лем типы, которые создает программист.

Все типы данных разделяются на две основные разновидности: размерные (структурные) типы (value-based) и ссылочные типы (reference-based). К структурным типам относятся все числовые типы данных (int, float и др.), а также перечисления и структуры. К ссылочным типам относятся массивы, строки и классы.

Встроенные типы:

Для каждого втсроенного типа существует соответствующий тип в CRL (Common Language Runtime). Это означает, что каждый тип имеет два названия - полный (из CLR, который можно использовать в любом языке.NET) и сокращенный, используемый в C#. Можно использовать любое:

 

Таблица 1.1 – Имена встроенных типов

Логический тип
Имя типа Системный тип Значения Размер
bool System.Boolean true, false 8 бит
Арифметические целочисленные типы
Имя типа Системный тип Диапазон Размер
sbyte System.SByte -128 — 128 Знаковое, 8 Бит
byte System.Byte 0 — 255 Беззнаковое, 8 Бит
short System.Short -32768 —32767 Знаковое, 16 Бит
ushort System.UShort 0 — 65535 Беззнаковое, 16 Бит
int System.Int32 ≈(-2*109 —2*109) Знаковое, 32 Бит
uint System.UInt32 ≈(0 — 4*109) Беззнаковое, 32 Бит
long System.Int64 ≈(-9*1018 — 9*1018) Знаковое, 64 Бит
ulong System.UInt64 ≈(0— 18*1018) Беззнаковое, 64 Бит
         

 

Арифметический тип с плавающей точкой
Имя типа Системный тип Диапазон Точность
float System.Single +1.5*10-45 - +3.4*1038 7 цифр
double System.Double +5.0*10-324 - +1.7*10308 15-16 цифр
Арифметический тип с фиксированной точкой
Имя типа Системный тип Диапазон Точность
decimal System.Decimal +1.0*10-28 - +7.9*1028 28-29 значащих цифр
Символьные типы
Имя типа Системный тип Диапазон Точность
char System.Char U+0000 - U+ffff Unicode символ
  string System.String Строка из символов Unicode  
Объектный тип
Имя типа Системный тип Примечание
Object System.Object Прародитель всех встроенных и пользовательских типов
               

 

В языке C# сглажено различие между типом и классом. Все типы - встроенные и пользовательские - одновременно являются классами, связанными отношением наследования. Родительским, базовым классом является класс Object. Все остальные типы или, точнее, классы являются его потомками, наследуя методы этого класса. У класса Object есть четыре наследуемых метода:

- bool Equals (object obj) - проверяет эквивалентность текущего объекта и объекта, переданного в качестве аргумента;

- System.Type GetType () - возвращает системный тип текущего объекта;

- string ToString () - возвращает строку, связанную с объектом. Для арифметических типов возвращается значение, преобразованное в строку;

- int GetHashCode() - служит как хэш-функция в соответствующих алгоритмах поиска по ключу при хранении данных в хэш-таблицах.

Естественно, что все встроенные типы нужным образом переопределяют методы родителя и добавляют собственные методы и свойства.

int x=11; //определение целой переменной встроенного типа

int v = new Int32(); //определение целой переменной встроенного типа

v = 007;

string s1 = "Agent"; //определение строковой переменной

 

<== предыдущая лекция | следующая лекция ==>
 | Переменные и константы
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 1030; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.