![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
(http://msdn.microsoft.com/ru-ru/library/ms173104.aspx)
(http://msdn.microsoft.com/ru-ru/library/3ewxz6et.aspx)
Значащие и ссылочные типы
Пример 2.2. Демонстрация изменений переменных значащих и ссылочных типов.
Using System;
// Определяем структуру с двумя целочисленными полями
Struct Foo
{ public int x, у;
}
Class ValRefClass
{ static void Main()
{ // Создаем две переменные класса Foo
Foo f1 = new Foo();
Foo f2 = new Foo();
f1.x = 100;
f1.y = 200;
f2 = f1; // Присваивание переменной f1 значение переменной f2
// Вывод значений переменных
Console.WriteLine("fl.x = {0}", f1.x);
Console.WriteLine("fl.y = {0}", f1.y);
Console.WriteLine("f2.x = {0}", f2.x);
Console.WriteLine("f2.у = {0}", f2.y);
f1.x = 300; // Изменение f1
// Вывод полей x обеих переменных
Console.WriteLine("После изменения f1.x:");
Console.WriteLine("f1.x = {0}", f1.x);
Console.WriteLine("f2.x = {0}", f2.x);
Console.ReadLine();
}
}
/* Вывод (изменение переменных значащего типа):
fl.x = 100
fl.y = 200
f2.x = 100
f2.y = 200
После изменения f1.x:
fl.x = 300
f2.x = 100
*/
Вместо значащего типа struct можно использовать ссылочный тип class:
Class Foo
{ public int x, у;
}
/* Вывод (изменение переменных ссылочного типа):
fl.x = 100
fl.y = 200
f2.x = 100
f2.y = 200
После изменения f1.x:
fl.x = 300
f2.x = 300
*/
Таблица типов данных
Таблица 2.1. Типы данных
Тип С# / тип CTS | Описание (размер в байтах) | Диапазон значений |
Целые типы | ||
sbyte System.SByte | Короткое целое число (1 байт) | от -128 до +127 |
byte System.Byte | Короткое целое число без знака (1 байт) | от 0 до 255 |
short System.Int16 | Целое число (2 байта) | от -32 768 до +32 767 |
ushort System.UIntl6 | Целое число без знака (2 байта) | от 0 до 65 535 |
int System.Int32 | Целое число (4 байта) | от -2 147 483 648 до +2 147 483 647 |
uint System.UInt32 | Целое число без знака (4 байта) | от 0 до 4 294 967 295 |
long System.Int64 | Длинное целое число (8 байтов) | от -9 223 372 036 854 775 808 до +9 223 372 036 854 775 807 |
ulong System.UInt64 | Длинное целое число без знака (8 байтов) | от 0 до 18 446 744 073 709 551 615 |
Вещественные типы | ||
float System.Single | Число с плавающей запятой (4 байта) | от 1,5 · 10-45 до 3,4 · 1038 от -3,402 823 47 · 1038 до -1,401 298 · 10-45 для отрицательных величин и от +1,401 298 · 10-45 до +3,402 823 47 · 1038 для положительных величин |
double System.Double | Число с плавающей запятой двойной точности (8 байтов) | от 5.0 · 10-324 до 1,7 · 10308 от -1,797 693 134 862 315 7 · 10308 до -4,940 656 458 412 47 · 10-324 для отрицательных величин и от 4,940 656 458 412 47 · 10-324 до 1,797 693 134 862 315 7 · 10308 для положительных величин |
decimal System.Decimal | Десятичное число с фиксированной запятой (16 байтов) | от -7,9 · 1028 до +7,9 · 1028 ±79 228 162 514 264 337 593 543 950 335 – как целое число; ±7,9 228 162 514 264 337 593 543 950 335 – как десятичное число (28 разрядов после запятой); Наименьшее ненулевое значение: ±10-28 |
Логический тип | ||
bool System.Boolean | Логическое значение (1 байт, зависит от платформы) | true или false. Эти значения не отождествляются с целочисленными значениями |
Другие типы | ||
char System.Char | 16-битовый код символа в кодировке Unicode (2 байта) | один символ (код – U+0000... U+ffff). Область U+0000... U+007f отведена для ASCII-кодов, U+0400... U+052f – для кириллицы |
Ссылочные типы | (значения хранятся в куче) | |
string System.String | Строка (последовательность из нуля или более символов в кодировке Unicode) | представляет собой неизменяемый объект в куче и рассматривается как массив символов. Любое изменение строки создает новый объект типа string, при этом старый объект не уничтожается |
object System.Object | Ссылка на объект (4 байта – для 32-bit и 8 байт – для 64-bit платформ) | любая ссылка на объект |
Структурный тип | ||
System.DateTime | Дата и время (8 байтов) | от 00:00:00 1 января 0001 года до 23:59:59 31 декабря 9999 года |
Пример 2.3. Вывод некоторых сведений о типе decimal.
Дата публикования: 2015-10-09; Прочитано: 134 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!