Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Типы данных.

В этом разделе мы поговорим о типах данных языка C#. Не скроем, что вы найдете здесь массу сюрпризов. Начнем с того, что все встроенные типы данных являются синонимами для соответствующих структур (в некоторых случаях классов), определенных в пространстве имен System. Это означает, что каждая объявленная вами переменная является объектом соответствующей структуры или класса (подробнее о структурах и классах читайте в следующих уроках). Например, каждый числовой тип данных имеет поля MinValue и MaxValue, хранящие соответственно минимальное и максимальное возможные значения для данного типа (см. практические примеры в этом уроке).

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

C# тип .NET Framework тип Количество бит Суффикс, используемый в литералах Описание
bool System.Boolean 8 - Логический тип, может принимать только два значения: true и false
byte System.Byte 8 - Беззнаковый байт
sbyte System.SByte 8 - Знаковый байт
char System.Char 16 - Символ Unicode
decimal System.Decimal 128 m, M Десятичное число с фиксированной точностью
double System.Double 64 d, D Число с плавающей запятой
float System.Single 32 f, F Число с плавающей запятой
int System.Int32 32 - Целое знаковое число
uint System.UInt32 32 u, U Целое беззнаковое число
long System.Int64 64 l, L Целое знаковое число
ulong System.UInt64 64 ul, uL, UL, Ul, lu, lU, LU, Lu Целое беззнаковое число
object System.Object - - Базовый тип данных, все остальные типы являются производными от него
short System.Int16 16 - Целое знаковое число
ushort System.UInt16 16 - Целое беззнаковое число
string System.String - - Строка символов Unicode

Из перечисленных имен System.Object и System.String являются классами, остальные структурами. Поэтому объекты типа string и object называются ссылочными типами, а остальные структурными. Ссылочные и структурные типы будут подробно рассмотрены в следующих уроках. В этом уроке мы всего лишь отметим основную разницу между ними.

Объект ссылочного типа создается в куче, а объект структурного типа создается в стеке. В том случае, если структурный тип присваивается объекту типа object, в куче создается временный объект, имитирующий поведение ссылочного. В этот временный объект копируются данные из структурного, а сам объект помечается специальной отметкой, чтобы система знала к какому типу он относится. Этот процесс называется упаковкой (boxing), обратный процесс называется распаковкой (unboxing).

Кстати, в языке C# отсутствует понятие указателя .


Приведение типов.

Неявно приводить можно:

Тип данных неявно приводится к
sbyte short, int, long, float, double, decimal
byte short, ushort, int, uint, long, ulong, float, double, decimal
short int, long, float, double, decimal
ushort int, uint, long, ulong, float, double, decimal
int long, float, double, decimal
uint long, ulong, float, double, decimal
long float, double, decimal
ulong float, double, decimal
char ushort, int, uint, long, ulong, float, double, decimal
float double
****** константы типа int можно присваивать переменным типов sbyte, byte, short, ushort, uint, или ulong, в случае, если они могут их "съесть". ******

Явно приводить нужно:

Тип данных явно приводится к
sbyte byte, ushort, uint, ulong, char
byte sbyte, char
short sbyte, byte, ushort, uint, ulong, char
ushort sbyte, byte, short, char
int sbyte, byte, short, ushort, uint, ulong, char
uint sbyte, byte, short, ushort, int, char
long sbyte, byte, short, ushort, int, uint, ulong, char
ulong sbyte, byte, short, ushort, int, uint, long, or char
char sbyte, byte, short
float sbyte, byte, short, ushort, int, uint, long, ulong, char, decimal
double sbyte, byte, short, ushort, int, uint, long, ulong, char, float, decimal
decimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float, or double
За более полной информацией можно, как всегда, обратиться в MSDN.


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru