Типы данных в C sharp ( си шарп ) бывают - значимые и ссылочные. Хочу отметить, что разница
в типах данных языков С/С++ и C sharp большая, поэтому знание типов обязательно. И так, давайте начнем
по порядку:
Значимые типы
Значимые типы делятся в свою очередь на:
- Встроенные типы
Эти типы, которые нам любезно предоставляет Visuai Studio - System.Double (double),
System.Byte (byte), System.Int32 (int), System.Char (char), System.Single (float).
В скобках указаны псевдонимы - сокращенное название типов данных в C sharp ( си шарп ). Удобнее все-таки в коде писать именно псевдонимы,
чем полные названия типов.
- Перечислимые
Это сборка необходимых нам символов. Лучше всего в понимании перечислимого поможет пример:
public enum typeTraine { skTrain, pasTrain, tTrain };
Т.е. в этом примере мы создаем перечислимое видов поездов.
(skTrain - скоростной, pasTrain - пассажирский, tTrain - транспортный)
Обращение к элементу перечислимого происходит так же, как мы обращаемся к элементу класса - т.е. через точку:
typeTraine ob = typeTraine.pasTrain;
Console.WriteLine("{0}", ob);
На экране будет слово - pasTrain
- Пользовательские типы
А вот понятие пользовательские типы вам уже знакомо с языков С/С++. Т.е. это тип который создает сам пользователь,
при чем пользовательский тип является структурой. И поэтому будет начинаться с ключевого слова -
struct. Вот пример:
struct fleshka {
int color;
int volume;
public int fleshka(int _color, int _volume)
{
color = _color;
volume =_volume;
}
}
В отличие от языка С++ поля структуры являются по умолчанию закрытыми.
Ссылочные типы
В отличие от значимых типов, ссылочные типы в стеке хранят не сами значения типов, а ссылки на них. Значения хранятся совершенно в другой области памяти,
которая называется кучей.
Ссылочные типы, так же как и значимые бывают:
- Встроенные типы
Просто приведу вам примеры встроенных ссылочных типов. Самым главным является тип System.Object.
Этот тип данных в C sharp ( си шарп ) является, чуть ли не самым важным, так как в него можно преобразовать любой тип, будь то значимый или
ссылочный.
System.String - этот тип так же является весьма распространенным - все строковые значения обычно хранятся именно в
этом типе данных. Ну и для хранения массивов, которые и являются сами по себе ссылочным типом, существует
класс system.Array. Так же для обработки различных исключительных ситуаций в Visual Studio предусмотрен класс
System.Exception.
- Пользовательские типы
Тут на самом деле говорить многого не надо. Знаете, чем отличается класс от структуры в C sharp ( си шарп )? Ответом на
этот вопрос и является тема "ссылочные | пользовательские | значимые типы данных в C sharp ( си шарп )".
Если мы пишем ключевое слово класс, то у нас
по умолчанию создается ссылочный тип. Т.е. в том примере, где мы создавали структуру fleshka, достаточно
поменять ключевое слово struct на class и вуаля - ссылочный пользовательский тип готов.
Иными словами, если пользователь создает значимый тип - то нужно создавать структуру. А при создании
ссылочного типа просто нужно создать класс.
Рекомендации к прочтению:
- Массивы. Одномерные и Многомерные
- Зубчатый массив и класс Array
- Различия ООП в среде .NET от ООП в языке С++
|