Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Таблица. 3.1. Типы значений в C#
Тип
Значение
bool
Логический, предоставляет два значения: “истина” или “ложь”
byte
8-разрядный целочисленный без знака
char
Символьный
decimal
Десятичный (для финансовых расчетов)
double
С плавающей точкой двойной точности
float
С плавающей точкой одинарной точности
int
Целочисленный
long
Длинный целочисленный
sbyte
8-разрядный целочисленный со знаком
short
Короткий целочисленный
uint
Целочисленный без знака
ulong
Длинный целочисленный без знака
ushort
Короткий целочисленный без знака
В C# строго определены пределы и характер действия каждого типа значения. Исходя из требований к переносимости программ, C# не допускает в этом отношении никаких компромиссов. Например, тип int должен быть одинаковым во всех средах выполнения. Но в этом случае отпадает необходимость переписывать код для конкретной платформы. И хотя строгое определение размерности типов значений может стать причиной незначительного падения производительности в некоторых средах, эта мера необходима для достижения переносимости программ.
----------------------------------
ПРИМЕЧАНИЕ
Помимо простыхтипов, в C# определены еще три категории типов значений: перечисления, структуры и обнуляемые типы. Все они рассматриваются далее в этой книге.
----------------------------------
Целочисленные типы
В C# определены девять целочисленных типов: char, byte, sbyte, short, ushort, int, uint, long
и ulong
. Но тип char применяется, главным образом, для представления символов и поэтому рассматривается далее в этой главе. Остальные восемь целочисленных типов предназначены для числовых расчетов. Ниже представлены их диапазон представления чисел и разрядность в битах.
Тип
Разр.(бит)
Диапазон представления чисел
byte
8
0 - 255
sbyte
8
-128 - +127
short
16
-32768 - +32767
ushort
16
0 - 65535
int
32
-2147483648 - +2147483647
uint
32
0 - 4294967295
long
64
-9223372036854775808 - +9223372036854775807
ulong
64
0 - 18446744073709551615
Как следует из приведенной выше таблицы, в C# определены оба варианта различных целочисленных типов: со знаком и без знака. Целочисленные типы со знаком отличаются от аналогичных типов без знака способом интерпретации старшего разряда целого числа. Так, если в программе указано целочисленное значение со знаком, то компилятор C# сгенерирует код, в котором старший разряд целого числа используется в качестве флага знака. Число считается положительным, если флаг знака равен 0, и отрицательным, если он равен 1. Отрицательные числа практически всегда представляются методом дополнения до двух, в соответствии с которым все двоичные разряды отрицательного числа сначала инвертируются, а затем к этому числу добавляется 1.
Целочисленные типы со знаком имеют большое значение для очень многих алгоритмов, но по абсолютной величине они наполовину меньше своих аналогов без знака. Вот как, например, выглядит число 32 767типа short
в двоичном представлении.
0111111111111111
Если установить старший разряд этого числа равным 1, чтобы получить значение со знаком, то оно будет интерпретировано как -1, принимая во внимание формат дополнения до двух. Но если объявить его как значение типа ushort
, то после установки в 1 старшего разряда оно станет равным 65 535.
Вероятно, самым распространенным в программировании целочисленным типом является тип int
. Переменные типа int
нередко используются для управления циклами, индексирования массивов и математических расчетов общего назначения. Когда же требуется целочисленное значение с большим диапазоном представления чисел, чем у типа int
, то для этой цели имеется целый ряд других целочисленных типов. Так, если значение нужно сохранить без знака, то для него можно выбрать тип uint
, для больших значений со знаком — тип long
, а для больших значений без знака — тип ulong
. В качестве примера ниже приведена программа, вычисляющая расстояние от Земли до Солнца в дюймах. Для хранения столь большого значения в ней используется переменная типа long
.
// Вычислить расстояние от Земли до Солнца в дюймах.
using System;
class Inches {
static void Main() {
long inches;
long miles;
miles = 93000000; // 93 000 000 миль до Солнца
// 5 280 футов в миле, 12 дюймов в футе,
inches = miles * 5280 * 12;
Console.WriteLine("Расстояние до Солнца: " + inches + " дюймов.");
}
}
Вот как выглядит результат выполнения этой программы.
Расстояние до Солнца: 5892480000000 дюймов.
Очевидно, что этот результат нельзя было бы сохранить в переменной типа int
или uint
.
Самыми мелкими целочисленными типами являются byte
и sbyte
. Тип byte
представляет целые значения без знака в пределах от 0 до 255. Переменные типа byte
особенно удобны для обработки исходных двоичных данных, например байтового потока, поступающего от некоторого устройства. А для представления мелких целых значений со знаком служит тип sbyte
. Ниже приведен пример программы, в которой переменная типа byte
используется для управления циклом, где суммируются числа от 1 до 100.
// Использовать тип byte.
using System;
class Use_byte {
static void Main() {
byte x;
int sum;
sum = 0;
for(x = 1; x <= 100; x++) sum = sum + x;
Console.WriteLine("Сумма чисел от 1 до 100 равна " + sum);
}
}
Результат выполнения этой программы выглядит следующим образом.
Сумма чисел от 1 до 100 равна 5050
В приведенном выше примере программы цикл выполняется только от 1 до 100, что не превышает диапазон представления чисел для типа byte
, и поэтому для управления этим циклом не требуется переменная более крупного типа.
Интервал:
Закладка: