Назад Вперед Содержание

Типы данных

Типы данных в процедурных языках

В Паскале, при определении типа данных задавалось:

Классы и объекты в объектных языках

Класс содержит:

Объекты - экземпляры класса, являются обобщением понятия переменной.

На первых порах можно считать, что:

Понятия класс и тип синонимы, переменная и объект также синонимы.

Встроенные типы, такие как int или string, называют по-прежнему типами, а их экземпляры - переменными.

Для абстрактных данных, описывающих, например, класс млекопитающих вместо типа говорят класс, а вместо переменной - объект.

Такой взгляд на типы и классы довольно полезен, но он не является полным.

Различные классификации типов данных

Значимые и ссылочные типы данных

Для значимых типов используется прямая адресация, значение хранит собственно данные, и память для них отводится в стеке.

Стек это область памяти, поддерживаемая процессором. Доступ к стеку во много раз быстрее, чем к общей области памяти.

Для ссылочных типов значением служит ссылка на некоторый объект, расположенный в динамической памяти - "куче". Несколько ссылочных переменных могут указывать на один и тот же объект и использовать его значения.

В языке C# жестко определено, какие типы относятся к ссылочным, а какие - к значимым.

К значимым типам относятся: логический, арифметические, структуры, перечисление.

К ссылочным типам относятся: массивы, строки и классы.

Типы данных C# и их аналоги в Net Framework

Все встроенные типы C# однозначно отображаются, а фактически совпадают с системными типами каркаса Net Framework, размещенными в пространстве имен System. Поэтому всюду, где можно использовать имя типа, например, int, с тем же успехом можно использовать и имя Int32.
Название Имя типа C#Тип в Framework Диапазон значений Кол-во бит
Булевский bool Boolean true, false 8
Целые sbyte SByte –128 — 127 8
byte Byte 0 — 255 8
int Int32 –2*109 — 2*109 32
long Int64 –9*1018 — 9*1018 64
Действительные float Single 1.5*10-45 — 3.4*1038 32
double Double 5.0*10-324 — 1.7*10308 64
Символьные типы char Char U+0000 — U+ffff 16
string String строка из символов Unicode -

Описание переменных

  1. Все переменные должны быть описаны.
  2. Переменная описывается в любом месте программы, но перед ее использованием.
  3. При описании сначала указывают тип, а потом имя переменной.
  4. Язык C# чувствителен к регистру. My и my разные имена.

  5. При описании переменной ей сразу можно присвоить значение (константу или любое выражение).

Примеры:
  
int i;  int a = 42; 
string g = "Hello, World!"; // в двойных кавычках
char c=‘*’ // в одинарных кавычках
double b = 1.2, d=45.6;

Все переменные в программе обязательно должны быть инициализированы (должны иметь начальное значение)!!!

Область видимости переменных

Переменные существуют только в своей области видимости, при выходе из которой переменная "умирает".

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

Вот поясняющий пример:

int k=3; 
Console.WriteLine(k);

Тут значение переменной k доступно и выведется на экран.

{ int k=3; } 
Console.WriteLine(k); 

В этом же примере вывести k на экран не получится - она умерла на закрывающей фигурной скобке.

Описание констант

Вот несколько примеров описания именованных констант:

const int st = 55; 
const double pi = 3.14159265358979323846264338;

При вводе вещественных констант в программе можно использовать специальные суффиксы в конце:

const  double x = 37D;  
const  float x = 35F;

Назад Вперед Содержание