Изучение типов значений и ссылочных типов
- 8 мин
При наличии множества типов данных, доступных в C#, выбор подходящего типа означает, что необходимо понимать, когда можно выбрать один тип данных для другого.
Прежде чем обсуждать , почему можно выбрать один тип данных для другого, необходимо понять больше о типах данных. Кроме того, необходимо знать, как работают данные и типы данных в C# и .NET.
Что такое данные?
Ответ на вопрос "что такое данные" зависит от того, кого вы спрашиваете, и в каком контексте задается этот вопрос.
В разработке программного обеспечения данные по сути являются значением, хранящимся в памяти компьютера в виде ряда битов.
Битом является простой двоичный коммутатор, представленный как 0 или1, скорее, "off" и "on". Один бит не кажется полезным, однако при сочетании 8 битов в последовательности они образуют байт. При использовании в байтах каждый бит принимает значение в последовательности. На самом деле, можно представить 256 различных сочетаний с всего 8 битами, если вы используете двоичную (base-2) числовую систему.
Например, в двоичной числовой системе можно представить число 195 как 11000011. В следующей таблице показано, как это работает. Первая строка содержит восемь столбцов, которые соответствуют позиции в байте. Каждая позиция представляет собой другое числовое значение. Вторая строка может хранить значение отдельного бита, либо 0, либо 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
При добавлении числа из каждого столбца в первой строке, соответствующего 1 во второй строке, вы получите десятичный эквивалент представлению в двоичной системе счисления. В этом случае это будет 128 + 64 + 2 + 1 = 195.
Для работы с большими значениями за пределами 255компьютер сохраняет больше байтов (обычно 32-разрядная или 64-разрядная версия). Если вы работаете с миллионами больших чисел в научной среде, вам может потребоваться более тщательно рассмотреть, какие типы данных вы используете. Для выполнения кода может потребоваться больше памяти.
Что касается текстовых данных?
Если компьютер понимает 0только s и 1s, то как он позволяет работать с текстом? Используя систему, например ASCII (американский стандартный код для обмена информацией), можно использовать один байт для представления верхних и строчных букв, чисел, табуляции, внутреннего пространства, newline и многих математических символов.
Например, если вы хотите сохранить букву a нижнего регистра в качестве значения в моем приложении, компьютер будет понимать только двоичную форму этого значения. Чтобы лучше понять, как строчная буква a обрабатывается компьютером, мне нужно найти таблицу ASCII, которая предоставляет значения ASCII и их десятичные эквиваленты. Чтобы найти такой ресурс в Интернете, можно искать термины "ASCII lookup decimal".
В этом случае буква a нижнего регистра эквивалентна десятичному значению 97. Затем вы будете использовать ту же двоичную числовую систему в обратном порядке, чтобы найти, как буква a ASCII хранится компьютером.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|
| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
Поскольку 64 + 32 + 1 = 97, 8-битный двоичный ASCII-код для a — это 01100001.
Скорее всего, вам никогда не придется выполнять эти типы преобразований самостоятельно, но понимание точки зрения компьютера — это базовая концепция, особенно при рассмотрении типов данных.
Что такое тип данных?
Тип данных — это способ программирования, определяющий объем памяти для сохранения значения. Существует множество типов данных на языке C# для различных приложений и размеров данных.
Для большинства приложений, которые вы создаете в своей карьере, вы остановитесь на небольшом подмножестве доступных типов данных. Тем не менее, всё ещё жизненно важно знать, что другие существуют и почему.
Типы значений и ссылочные типы
В этом модуле основное внимание уделяется двум типам типов в C#: ссылочным типам и типам значений.
Переменные ссылочных типов хранят ссылки на их данные (объекты), то есть они указывают на значения данных, хранящиеся в другом месте. В сравнении переменные типов значений непосредственно содержат их данные. По мере получения дополнительных сведений о C#новые сведения возникают, связанные с фундаментальным различием между значениями и ссылочными типами.
Простые типы значений
Простые типы значений — это набор предопределенных типов, предоставляемых C# в качестве ключевых слов. Эти ключевые слова являются псевдонимами (псевдонимом) для предопределенных типов, определенных в библиотеке классов .NET. Например, ключевое слово int C# — это псевдоним типа значения, определенного в библиотеке классов .NET как System.Int32.
Простые типы значений включают многие типы данных, которые вы уже использовали, char и bool. Существует также множество целочисленных и с плавающей запятой типов значений, представляющих широкий диапазон целых и дробных чисел.
Обзор
- Значения хранятся в виде битов, которые являются простыми переключателями или выключениями. Объединение достаточного количества этих коммутаторов позволяет хранить только любое возможное значение.
- Существует две основные категории типов данных: значения и ссылочные типы. Разница заключается в том, как и где значения хранятся компьютером при выполнении программы.
- Простые типы значений используют псевдоним ключевого слова для представления формальных имен типов в библиотеке .NET.
Проверьте свои знания
Обратная связь
Были ли сведения на этой странице полезными?
Нет
Нужна помощь с этой темой?
Хотите попробовать использовать Ask Learn для уточнения или руководства по этой теме?