Типы данных в Си Шарп
C# для начинающих
C# - это достаточно простой, но в то же время мощный язык программирования. Несмотря на то, что он относительно молодой (по сравнению, например, с такими “аксакалами”, как Паскаль или С/С++), он прочно занял своё место под солнцем, и программисты C# пользуются высоким спросом. Подробнее... |
C# - это типизированный язык. То есть при объявлении переменных необходимо указывать для них тип данных.
Типы данных в Си Шарп, как и в других языках, можно разделить на несколько групп. Но сначала попробую сгруппировать типы без привязки к какому-либо языку:
- Порядковые (их также можно назвать простыми). Это самые простые типы, такие как целые числа и отдельные символы.
- Вещественные. Это вещественные (действительные) числа, то есть числа с дробной частью.
- Сложные (ну это я их так называю). Сюда можно включить, например, массивы, строки, файлы и т.п.
- Пользовательские. Ну а сюда я включаю всё остальное - классы, объекты, структуры…
Начинать будем с порядковых (но не сегодня - сегодня только вводная часть), суть которых я объяснил здесь, поэтому повторяться не буду (правда, там речь идёт не о C#, а о Паскале, но в данном случае это значения не имеет).
А теперь чуть подробнее состав типов данных в моём видении. Итак…
Простые типы данных
Сюда можно отнести такие типы данных, как числовые (целые числа), логические, а также символьные (но не строковые, хотя строковые типы обычно тоже относят к простым, но они не могут быть порядковыми).
Вроде как для целых чисел достаточно одного типа данных. Однако в компьютерном мире всё не так просто. Например, если бы в языке был только один тип данных, то нам пришлось бы делать его с большим запасом, чтобы в него поместились любые числа, в том числе и очень большие. И нам пришлось бы для каждого числа выделять 4 или даже 8 байтов, даже если мы уверены, что значение нашей переменной всегда поместится в один байт.
К тому же числа могут быть как отрицательными, так и положительными. И не всегда в программе какая-то переменная может принимать и отрицательное, и положительное значение. Много случаев, когда мы точно знаем, что значение переменной не будет отрицательным на протяжении всей программы.
Поэтому в языках программирования для целых чисел всегда имеется несколько типов данных. И C# не исключение.
Вещественные типы данных
Далеко не всегда, особенно в различных вычислениях, можно обойтись целыми числами. Поэтому, конечно, в любом языке программирования имеются вещественные типы данных, которые могут работать с действительными числами (числами с дробной частью).
Таких типов в языке обычно намного меньше, чем целочисленных. А на практике обычно используются лишь 2-3 типа.
Сложные типы данных
Сложными я их называю потому, что новичкам они обычно даются труднее для понимания. Например, к сложным типам я отношу указатели, но не потому, что этот тип сложный, а потому, что новичкам часто трудно понять, как с указателями работать.
К сложным я отношу и строки (хотя это самое простое из сложных типов), массивы, множества, файлы - такие типы есть почти во всех языках программирования.
Далее идут типы, которые могут быть похожими, но названия их могут отличаться в зависимости от языка. Также у некоторых языков есть свои уникальные типы данных (хотя такие обычно используются редко).
Это могут быть коллекции (в C#), словари, списки, какие-то особые типы для особых случаев (например, для работы с комплексными числами или с матрицами) и т.п.
Пользовательские типы данных
Пользовательские типы данных - это типы, которые создаёт сам пользователь (точнее, программист - пользователь языка). Например, это могут быть перечисления, или структуры (записи в Паскале). Также классы и объекты могут быть созданы пользователем (хотя существует и немало данных этих типов, встроенных в язык).
Типы данных в C#
Ну а если говорить не о языках программирования вообще, а именно о Си Шарп, то в литературе, как это не удивительно, очень редко встречается классификация типов. Но я нашёл вот такую, от которой, пожалуй, можно оттолкнуться…
В C# существует две разновидности типов переменных, каждая из которых содержит несколько “подразновидностей”:
- Типы-значения:
- простые
- перечисляемые
- структурные
- обнуляемые
- Ссылочные типы:
- классы
- интерфейсы
- массивы
- делегаты
Переменные типа-значения содержат значения, а в переменных ссылочного типа (объектах) хранятся ссылки на данные.
Си Шарп имеет единую систему типов, так что значение любого типа может использоваться как объект.
Любой тип в C# прямо или косвенно наследуется от типа object
, и object
является
исходным базовым классом всех типов. Значения ссылочных типов рассматриваются как объекты просто
путем их представления как величин типа object
. Значения типов-значений преобразуются в объекты с помощью выполнения операций упаковки и распаковки.
Но это уже другая история. А вводную часть на этом закончим. Подписывайтесь на новости, чтобы ничего не пропустить (ссылки внизу).
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Факультет разработки на C# - профессиональное обучение
Обучение с нуля с опытными преподавателями. Полноценный длительный курс по разработке на C#. Диплом по итогам обучения и 9 работ в портфолио. Помощь в трудоустройстве. Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |