Файл: Типы данных, пространство имен, классификация типов среды .NET.pdf
Добавлен: 23.04.2023
Просмотров: 111
Скачиваний: 3
СОДЕРЖАНИЕ
eStatus, boxVolume, arraySize, intI.[2]
Типы данных, пространство имен, классификация типов среды .NET
Объявление переменных, синтаксис элементарных типов, безопасность типов
Арифметические операции. Приоритеты операций. Логические операции
Размерные и ссылочные типы, особенности использования стека и кучи
Например,
byte ib=21; int i=2147483640;
int j=ib+i; /*результат 2147483861 не может разместиться в памяти, отведенной типу int, результат не достоверен*/[45]
В процессе обработки программы транслятор выполняет явные и неявные преобразования типов данных. [46]
По желанию программиста можно использовать явное (принудительное) приведение типов нужных операндов. Например:
int i=16; byte ib=(byte)i; /*переменная типа int приведена к типу byte, результат присвоен ib типа byte*/
double d=1.0e+100; float f=(float)d; /*переменная типа double приведена к типу float, результат присвоен f типа float, потеря информации*/
Естественно, потеря информации при этом контролируется только самим программистом. В C# разрешено принудительное приведение любых базовых типов, кроме типа bool. Тип и значения «приводимых» переменных после[47] операции приведения не изменяются и далее в программе они используются в прежнем качестве.
Этот эффект объясняется тем, что в процессе приведения образуется временная переменная нового типа, которая и используется для присваивания значения другой переменной или в арифметической операции, после чего временная переменная уничтожается.
В первом абзаце демонстрируется операция вычитания двух переменных @byte и @byte1 типа byte. Оба операнда автоматически приводятся к типу int, после чего выполняется вычитание и результат присваивается переменной @int типа int.
Далее отрицательная переменная (@int=-44) последовательно явным образом приводится к типам byte, uint и long. Только последняя операция приведения дает достоверный результат.
В третьем абзаце показаны манипуляции с символами и их кодами. Задаются два символа & и 1. Явное преобразование в тип char выявляет коды 38 и 49 соответственно. Перед сложением двух символьных переменных происходит автоматическое приведение слагаемых, результат присваивается переменной типа int. Полученная сумма явно приводится к типу char, и выясняется, что это код символа W. Если компьютер «не знает» символа с таким кодом, будет выведен вопросительный знак. [48]
Как говорилось выше, очень часто приходится производить преобразование значения одного типа в значение другого типа и очень важно сделать это без потери информации ввиду того, что каждому типу переменных изначально в языке программирования выделяется строго определенный лимит.
Таблица 1.8. Автоматическое приведение базовых типов при бинарных операциях
first |
||||||||||||
second |
byte |
sbyte |
short |
ushort |
int |
uint |
long |
ulong |
char |
float |
double |
decimal |
byte |
int |
int |
int |
int |
int |
uint |
long |
ulong |
int |
float |
double |
decimal |
sbyte |
int |
int |
int |
int |
int |
long |
long |
!!! |
int |
float |
double |
decimal |
short |
int |
int |
int |
int |
int |
long |
long |
!!! |
int |
float |
double |
decimal |
ushort |
int |
int |
int |
int |
int |
uint |
long |
ulong |
int |
float |
double |
decimal |
int |
int |
int |
int |
int |
long |
long |
!!! |
int |
float |
double |
decimal |
|
uint |
ulong |
long |
long |
ulong |
long |
ulong |
long |
ulong |
uint |
float |
double |
decimal |
long |
long |
long |
long |
long |
long |
long |
!!! |
long |
float |
double |
decimal |
|
ulong |
ulong |
!!! |
!!! |
ulong |
!!! |
ulong |
!!! |
ulong |
float |
double |
decimal |
|
char |
int |
int |
int |
int |
int |
uint |
long |
ulong |
int |
float |
double |
decimal |
float |
float |
float |
float |
float |
float |
float |
float |
float |
float |
double |
!!! |
|
double |
double |
double |
double |
double |
double |
double |
double |
double |
double |
double |
!!! |
|
decimal |
decimal |
decimal |
decimal |
decimal |
decimal |
decimal |
decimal |
decimal |
decimal |
!!! |
!!! |
|
dynamic |
!!! ошибочный результат;[49]
приведение обоих операндов;
без приведения. [50]
Заключение
Любое прочтение теоретического материала лучше всего сразу же закреплять практическими навыками. Поэтому изначально было принято решение об установке среды разработки приложений Microsoft Visual Studio и отработке в ней всех листингов, встречаемых по пути ознакомления с материалом из книг и учебников.
В курсовой работе мы уяснили для себя понятие самой переменной, узнали минимальные и максимальные возможные значения переменных в зависимости от их типов.
Была освещена тема инициализации переменных, области действия на практических примерах, наглядно показаны арифметические и логические операции. Освещено понятие стека, кучи, сборщика мусора и разъяснен смысл приведения типов.
В целом были раскрыты все поставленные задачи.
Библиография
1. Фленов М.Е. - Библия С# / М.Е. Фленов. - 3-изд., СПб.: Питер, 2016. – 546 c.
2. Ишкова Э.А. - C#. Начала программирования / Э.А.Ишкова. - 2 изд., СПб.: НиТ, 2013. – 494 с.
3. Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming / Svetlin, Nakov, Veselin, Kolev & Co., URL: https://introprogramming.info/english-intro-csharp-book/ (Дата обращения: 11.03.2019 ), 2013. – 1122 с.
4. Дубовцев А.В. Microsoft .NET. Наиболее полное руководство. / А.В. Дубовцев.– СПб.: БХВ-Петербург, 2004. – 701 с.
5. Петцольд Ч. - Программирование для Microsoft Windows на С#. / Ч. Петцольд. - Том 1, М.: Издательско – торговый дом «Русская Редакция», 2002. -576 с.
6. Лабор В.В. - C# Создание приложений для Windows. / В.В. Лабор – Мн.: Харвест, 2003. – 384 с.
7. Троэлсен Э. - C# и платформа NET Библиотека программиста. / Э.Троэлсен. - СПб.: Питер, 2004. – 796 с.
8. Рихтер Д. – CLR via C# Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. / Д.Рихтер – СПб.: Питер, 2008. – 656 с.
9. Робинсон С. - C# для профессионалов. / С.Робинсон - Tом 1, М.: Лори, 2003. –516 с.
10. Рейли Д. Создание приложений ASP.NET. / Д. Рейли, - М.: Издательско – торговый дом «Русская Редакция», 2002. -480 с.
11. Microsoft Corporation - Разработка Windows приложений на Microsoft Visual Basic NET и Microsoft Visual C# NET Учебный курс MCAD MCSD / Microsoft Corporation. - М.: Издательско – торговый дом «Русская Редакция», 2003. -512 с.
12. Фролов А.В., Фролов Г.В. Язык C#. Самоучитель. / А.В.Фролов, Г.В.Фролов – М.: ДИАЛОГ – МИФИ, 2003. – 560 с.
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.50-51. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.33. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.111. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.111. ↑
-
Дубовцев А.В. Microsoft .NET. Наиболее полное руководство. – 2004. - С.34. ↑
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.51. ↑
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.51. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.111. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.33. ↑
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.53. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.112. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.112. ↑
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.52. ↑
-
Фленов М.Е. - Библия С#, 3-изд. – 2016. - С.52. ↑
-
Петцольд Ч. - Программирование для Microsoft Windows на С#. Том 1. -2002. -C.10-11. ↑
-
Петцольд Ч. - Программирование для Microsoft Windows на С#. Том 1. -2002. -C.10-11. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.52. ↑
-
Троэлсен Э. - C# и платформа NET Библиотека программиста – 2004. - C.98. ↑
-
Троэлсен Э. - C# и платформа NET Библиотека программиста – 2004. - C.98. ↑
-
Рихтер Д. – CLR via C# Программирование на платформе Microsoft .NET Framework 2.0 на языке C# – C.111. ↑
-
Рихтер Д. – CLR via C# Программирование на платформе Microsoft .NET Framework 2.0 на языке C# – C.111. ↑
-
Робинсон С. - C# для профессионалов Tом 1. – 2004. –C.45. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.72-73. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.73. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.73-74. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.37. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.37-38, 46. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.46-47. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.47. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.47. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.52. ↑
-
Рейли Д. Создание приложений ASP.NET. – 2002. – С.47-49. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.52. ↑
-
Svetlin, Nakov, Veselin, Kolev & Co. – Fundamentals of computer programming. - 2013. – C.80. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.52. ↑
-
Microsoft Corporation - Разработка Windows приложений на Microsoft Visual Basic NET и Microsoft Visual C# NET Учебный курс MCAD MCSD - 2003. – С.7-8. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.52-53. ↑
-
Лабор В.В. - C# Создание приложений для Windows. – 2003. - С.53. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.38-39. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.39. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.39-40. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.40-41. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.40-41. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.41. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.42-43. ↑
-
Фролов А.В., Фролов Г.В. Язык C#. Самоучитель.– 2003. - С.70. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.43. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.43-44. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.44. ↑
-
Ишкова Э.А. - C#. Начала программирования, 2 изд. – 2013. - С.44. ↑