- Автор темы
- #1
Типы данных.
В этом разделе мы поговорим о типах данных языка C#. Не скроем, что вы найдете здесь массу сюрпризов. Начнем с того, что все встроенные типы данных являются синонимами для соответствующих структур (в некоторых случаях классов), определенных в пространстве имен System. Это означает, что каждая объявленная вами переменная является объектом соответствующей структуры или класса (подробнее о структурах и классах читайте в следующих уроках). Например, каждый числовой тип данных имеет поля MinValue и MaxValue, хранящие соответственно минимальное и максимальное возможные значения для данного типа (см. практические примеры в этом уроке).
Представляем вашему вниманию таблицу, содержащую встроенные типы данных языка C# и соответствующие им структуры или классы пространства имен System.
Из перечисленных имен System.Object и System.String являются классами, остальные структурами. Поэтому объекты типа string и object называются ссылочными типами, а остальные структурными. Ссылочные и структурные типы будут подробно рассмотрены в следующих уроках. В этом уроке мы всего лишь отметим основную разницу между ними.
Объект ссылочного типа создается в куче, а объект структурного типа создается в стеке. В том случае, если структурный тип присваивается объекту типа object, в куче создается временный объект, имитирующий поведение ссылочного. В этот временный объект копируются данные из структурного, а сам объект помечается специальной отметкой, чтобы система знала к какому типу он относится. Этот процесс называется упаковкой (boxing), обратный процесс называется распаковкой (unboxing).
Кстати, в языке C# отсутствует понятие указателя .
****** константы типа int можно присваивать переменным типов sbyte, byte, short, ushort, uint, или ulong, в случае, если они могут их "съесть". ******
Явно приводить нужно:
За более полной информацией можно, как всегда, обратиться в MSDN.
В этом разделе мы поговорим о типах данных языка C#. Не скроем, что вы найдете здесь массу сюрпризов. Начнем с того, что все встроенные типы данных являются синонимами для соответствующих структур (в некоторых случаях классов), определенных в пространстве имен System. Это означает, что каждая объявленная вами переменная является объектом соответствующей структуры или класса (подробнее о структурах и классах читайте в следующих уроках). Например, каждый числовой тип данных имеет поля MinValue и MaxValue, хранящие соответственно минимальное и максимальное возможные значения для данного типа (см. практические примеры в этом уроке).
Представляем вашему вниманию таблицу, содержащую встроенные типы данных языка C# и соответствующие им структуры или классы пространства имен System.
Из перечисленных имен System.Object и System.String являются классами, остальные структурами. Поэтому объекты типа string и object называются ссылочными типами, а остальные структурными. Ссылочные и структурные типы будут подробно рассмотрены в следующих уроках. В этом уроке мы всего лишь отметим основную разницу между ними.
Объект ссылочного типа создается в куче, а объект структурного типа создается в стеке. В том случае, если структурный тип присваивается объекту типа object, в куче создается временный объект, имитирующий поведение ссылочного. В этот временный объект копируются данные из структурного, а сам объект помечается специальной отметкой, чтобы система знала к какому типу он относится. Этот процесс называется упаковкой (boxing), обратный процесс называется распаковкой (unboxing).
Кстати, в языке C# отсутствует понятие указателя .
Приведение типов.
Неявно приводить можно:
****** константы типа int можно присваивать переменным типов sbyte, byte, short, ushort, uint, или ulong, в случае, если они могут их "съесть". ******
Явно приводить нужно:
За более полной информацией можно, как всегда, обратиться в MSDN.