Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2056.doc
Скачиваний:
3
Добавлен:
11.01.2020
Размер:
4.25 Mб
Скачать

Приведение и преобразование типов в с#

В C# можно выполнять следующие виды преобразований:

Неявные преобразования. Не требуют специального синтаксиса, поскольку преобразование безопасно для типов и данные не теряются.

Преобразования от меньшего к большему целому типу.

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

int i = 9;

double t = 1.0;

t = i;

Преобразование допустимо, так как переменная типа double (64-разрядное значение с плавающей запятой) может хранить любое значение, которое может хранить переменная типа int (32-разрядное целое число со знаком). Пример. Недопустимое преобразование:

int i = 9;

double t = 1.0;

i = t;

Явные преобразования (приведения). Для явных преобразований необходим оператор преобразования. Для выполнения приведения необходимо заключить тип, в который производится приведение, в скобки перед преобразуемым значением или переменной. Пример.

int i = 9;

double t = 1.1;

i = (int)t;

Возможна потеря данных и переполнение.

Преобразования с помощью вспомогательных классов.

Использование статических методов класса Convert пространства имен System. Пример

int xInt = 2;

double xDouble = 5.0;

xInt = Convert.ToInt32(xDouble);

Console.WriteLine("Double: {0}", xInt);

1.5. Логические операторы. Выражения

Логические данные имеют тип bool. Например,

bool L1, L2;

К логическим данным могут применяться логические операторы. Результатом выполнения логического оператора всегда является логическое значение true или false. Логические операторы и результат их применения приведены в Таблице. Константы и переменные логического типа могут входить в состав логического выражения. Кроме этого, в логическом выражении могут использоваться в качестве операндов отношения (например, x>0 имеет значение true при x положительном и значение false при x отрицательном или равном 0; sqr(a)+sqr(b) <= sqr (c) имеет значение true,если условие удовлетворяется для конкретных значений a, b, c, и false в противоположном случае). Отношение — это два арифметических выражения, соединенных знаком операции отношения <, <=, >, >=, = = (равно), != (не равно).

Таблица логических операторов

Название

Обозначение

A

T

T

F

F

B

T

F

T

F

Отрицание

!A

F

F

T

T

Логическое “и”

A && B

T

F

F

F

Логическое “или”

A ׀׀ B

T

T

T

F

(T – true, F – false).

Например, после выполнении оператора присваивания

L3=(x<=5.5) && (x>=–3.5);

L3 будет иметь значение true, если выполняются оба условия, т.е. x принадлежит отрезку [–3.5, 5.5].

Заключать отношения в скобки необязательно, т. к. они имеют более высокий приоритет (см. ниже), но в таком виде выражение имеет более ясный смысл.

После выполнения оператора

L2=(i>10) ׀׀ (a<0.0001);

L2 получит значение true, если выполняется хотя бы одно из условий, т.е. либо i>10, либо a<0.0001.

В логическом выражении могут присутствовать, как мы видим, операции трех типов: арифметические (в левой или правой частях отношения, выполняются в первую очередь), операции отношения и логические. Логические операции имеют самый низкий приоритет. Из них в первую очередь выполняется операция отрицания (!), далее операция «Логическое «и» (&&) и в последнюю очередь – «логическое «или» ( ׀׀). Например,

bool a = true;

bool b = 1 < 0 && a;

Console.WriteLine(b);

Console.ReadLine();

В результате программа распечатает на экране

false

Логические выражения обычно используются в условном операторе if (п. 1.7.1).