Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тюмгу / Лекции КБ ИБАС 1 курс 2 семестр / лекция5 Безопасность 2018.pptx
Скачиваний:
13
Добавлен:
08.12.2019
Размер:
170.98 Кб
Скачать

Единственная разница между обычной и быстрой версиями операторов:

обычные операторы всегда оценивают и первый, и второй операнды,

а быстрые операторы оценивают второй операнд только при необходимости.

Примечание. В ЯП C#, в отличие от многих других языков, нельзя

вместо false использовать 0,

а вместо true - любое ненулевое число. Так, следующий фрагмент содержит ошибку:

int k; ... if(k) //Ошибка! ...

12

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

() [ ] ++ постфикс - - постфикс

! + - унарные

++ префикс - - префикс

* / %

a+++b

+ - бинарные

< > <= >=

?

== !=

(a++)+b a+(++b)

&

 

^

 

|

 

&&

 

||

 

=

 

13

Символьный тип

 

В C# используется стандартный набор символов Unicode,

 

Для типа char выделяется 16 битов,

 

Это позволяет работать со значениями кодов

 

от 0 до 65535.

 

ASCII-символы действительны,

 

стандартный 8-битовый набор символов ASCII - составная часть

 

Unicode, коды от 0 до 127.

Синтаксис объявления переменной ch типа char и оператор присваивания имеют вид:

char ch;

ch = 'X';

Для вывода символьного значения используется метод WriteLine().

Вывод значения переменной ch: Console.WriteLine("Значение переменной ch - " + ch);

14

Тип char определен в C# как целочисленный тип данных.

НО его нельзя совмещать с целочисленными типами, предназначенными для представления чисел (например, int),

Причина: C# не обеспечивает автоматическое преобразование из других целочисленных типов в char.

Пример :

char ch; // присвоить символ Х

ch = 88; // Ошибка!

ch = 'X'; //

ch = '\x0058'; // Hexadecimal

ch = (char)88; // преобразование из целого

ch = '\u0058'; // Unicode

15

Тип char определен в C# как структура данных System.Char с

набором методов:

http://msdn.microsoft.com/ru-ru/library/424s1h3z.aspx

Для вызова метода указывается:

Var_name.Met_name(…)

или

Char.Met_name(…)

Пример метода:

public static bool IsLetter(char c)

public static bool IsLetter( string s, int index )

public class IsLetterSample

{

public static void Main()

{

char ch = '8';

Console.WriteLine(Char.IsLetter(ch));

Console.WriteLine(Char.IsLetter("sample string", 7));

}

}

16

Литералы

В C# литералами (или константами) называют фиксированные значения, (например, число 10 - литерал).

В C# литералы могут быть значениями любого типа, от которого зависит способ представления каждого литерала.

Символьные литералы заключаются в одинарные кавычки.

Например, 'a' и '1' - символьные литералы.

17

Целочисленные литералы представлены как числа без дробной части.

Например, 10 и -100 - целочисленные

литералы.

Литералы с плавающей точкой

Например, 11.123, 1.1E-10 - константы с плавающей точкой.

C# - язык со строгим контролем типов ==> литералы также определяются как принадлежащие к конкретному типу.

Определение типа каждого числового литерала в C# основано на специальных правилах.

18

1. По умолчанию типом целочисленных литералов является наименьший целочисленный тип, начиная с int, который способен хранить данное число.

в зависимости от величины числа типом целочисленных литералов

может быть int, uint, long или ulong.

2. По умолчанию литералы с плавающей точкой имеют тип double.

3. Явное задание типа числового литерала выполняется с помощью суффикса.

Для спецификации типа добавляется после записи числа:

литерал long - буква l или L

(например, число 20 имеет тип int, а 20L - тип long);

19

беззнаковый целочисленный литерал

-буква u или U

(например, число 100 имеет тип int,

а 100U - тип uint);

длинный беззнаковый целочисленный литерал - суффикс ul или UL (например, литерал 984375UL

имеет тип ulong);

литерал float - буква f или F (например, литерал 10.19F имеет тип float);

литерал decimal - буква m или M (9.95М является литералом, имеющим тип decimal).

20

4. Хотя целочисленные литералы, имеющие тип int, uint, long или ulong, могут быть присвоены переменным типа byte, sbyte, short или ushort,

но только в том случае, если присваиваемое значение может представляться этим типом

byte i = 10; // 10 имеет тип int

Шестнадцатеричные литералы

C# позволяет использование целочисленных констант в шестнадцатеричном формате.

Шестнадцатеричные литералы должны начинаться с символов 0x (ноль и x).

Примеры:

count = 0xFF; // 255 в десятичной системе

incr = 0x20; // 32 в десятичной системе

21