
- •Массивы
- •Массивы в .NET — наследуются от класса Array из библиотеки классов.
- •Все следующие варианты неверны:
- •Можно проинициализировать элементы массива сразу при объявлении (заменяет new).
- •Синтаксис обобщенного объявления N-мерного массива :
- •Пример: присвоить одно и то же значение сразу нескольким переменным:
- •В результате:
- •Преобразование типа в операциях присваивания
- •При присваивании одного типа данных переменной другого типа автоматическое преобразование типа происходит, если
- •Пример - выполняемое преобразование допустимо, т.к. преобразование данных типа long в double является
- •Следовательно, такая последовательность операторов приводит к недопустимому преобразованию:
- •Выполнение операции приведения типа между несовместимыми типами данных
- •Пример использования операции приведения типа.
- •Результат выполнения программы : Целая часть выражения x/y равна: 3 Значение переменной b
- •Преобразование типов в выражениях
- •Действует алгоритм:
- •uint, а второй операнд - тип sbyte, short или int, то оба операнда
- •Смысл последнего правила –
- •Автоматическое преобразование типов применяется к значениям (операндам) только тогда, когда выражение вычисляется:
- •byte b;
- •Аналогично с данными типа char: необходимо выполнить приведение типа результата вычисления выражения обратно
- •Приведение типов применяется не только для преобразования типов при присваивании.
- •Имеет место также преобразование типов в выражениях с унарными операторами (например, унарный минус).
- •Синтаксис спецификаторов формата обычно выглядит так:
- •Позиция спецификатора формата в форматирующей строке указывает место, где на экране будут выведены
- •Можно задать минимальную ширину поля:

Массивы
Основные концепции массивов C# схожи с другими ЯП, но имеются и ряд отличий.
Пример объявления массивов:
Byte[ ] bytes = new Byte[10];
// Одномерный массив из 10 байт
String[ ] strings = new String[10];
//Массив ссылок на строки (String)
Первый массив — одномерный, содержит элементы типа Byte.
Второй массив — это одномерный массив ссылок на строки.
После объявления каждый элемент хранит нулевую ссылку.
1

Массивы в .NET — наследуются от класса Array из библиотеки классов.
Array содержит множество полезных методов.
Массивы - ссылочные типы, их элементы могут быть как ссылочными типами, так и типами со значениями.
Массивы в C# отличаются от C-подобных языков.
Примеры:
int[ ] k; //k - массив
k=new int [3]; //Определяем массив из 3-х целых
k[0]=-5; k[1]=4; k[2]=55; //Задаем элементы массива
//Выводим третий элемент массива
Console.WriteLine(k[2].ToString());
Одномерный массив определяется так:
type [ ] var;
В нашем случае:
int [ ] k;
2

Все следующие варианты неверны:
int k[ ];
int k[3];
int[3] k;
Массив - ссылочный тип,
След. для создания массива необходим вызов оператора new для
выделения необходимой памяти и
возвращении указателя на нее:
Синтаксис вызова оператора new :
var = new type [size];
В нашем случае:
k=new int [3];
Можно использовать обобщенную конструкцию :
type [ ] var = new type [size];
В нашем случае:
int[ ] k = new int [3];
3

Можно проинициализировать элементы массива сразу при объявлении (заменяет new).
Пример:
int [ ] k = {-5, 4, 55};
В C#, как и в C/C++, нумерация элементов массива идет с нуля.
Объявление многомерных массивов.\
Синтаксис обобщенного объявления двумерного массива :
type [,] var = new type [size1, size2];
Пример - объявление двумерного массива:
int[,] k = new int [3,3];
В массиве 3*3 = 9 элементов (k[0,0] - первый, k[2,2] - последний).
4

Синтаксис обобщенного объявления N-мерного массива :
type [,,,...,] var = new type [size1, size2,..., sizeN];
Пример - объявление трехмерного массива:
int[,,] k = new int [3,3,3];
Инициализация многомерного массива может иметь, например, следующий вид:
int[,] k = {{2,-2},{3,-22},{0,4}};
Массивы в C# могут быть
многомерными прямоугольными (multidimensional)
ступенчатыми, или невыровненными (jagged – буквально зубчатый).
5

Пример работы со ступенчатым массивом: int[ ][ ] k = new int [2][ ];
//Объявлен 2-мерный ступенчатый массив k[0]=new int[3];
//Объявлен 0-й элемент ступенчатого массива //Это массив из 3-х элементов
k[1]=new int[4];
//Объявлен 1-й элемент ступенчатого массива //Это массив из 4-х элементов
k[1][3]=123;
// последний элемент массива
При объявлении и работе с элементами ступенчатых массивов задается несколько пар квадратных скобок (количество равно размерности массива).
6

Операторы C#
Оператор присваивания
Сигнатура операции присваивания в C# та же, что и в С:
оператор не только присваивает,
но и возвращает присвоенное значение.
Синтаксис оператора присваивания:
var = expression;
тип переменной var должен быть совместим с типом выражения expression.
Оператор присваивания позволяет создавать
цепочку присваиваний:
var1 = var2 = var3 = ... = expression;
Такая последовательность допустима, поскольку оператор «=» присваивает переменной значение выражения, находящегося справа.
7

Пример: присвоить одно и то же значение сразу нескольким переменным:
int x, y, z;
x = y = z = -25;
//Переменным x, y, z присваивается значение -25
выражение z = -25 будет иметь значение -25,
которое присваивается переменной y,
а затем - переменной x.
Составные операторы присваивания
В ЯП C#, как и в языках C/C++, имеются
комбинированные (или составные) операторы присваивания
В них арифметические операторы совмещены с операторами присваивания.
Для всех логических операторов, требующих два операнда, также существуют комбинированные операторы присваивания.
Синтаксис операторов :
var operation = expression;
8

В результате:
+= l+r приваивается l
-= l-r приваивается l
*= l*r приваивается l
/= l/r приваивается l
%= l%r приваивается l
&= l&r приваивается l
|= l|r приваивается l
^= l^r приваивается l
Например, выражение
x = x + 10;
может быть записано как:
x += 10;
Преимущества комбинированных операторов присваивания
более компактны;
их использование позволяет ускорить компилирование кода, операнд оценивается только один раз.
9

Преобразование типа в операциях присваивания
Часто применяется присваивание значения одного типа переменной другого типа.
Например, присвоить значение типа int переменной типа float:
|
int i; |
|
float f; |
|
i = 1; |
|
f = i; |
|
Если в операции присваивании используются |
|
совместимые типы данных, то тип присваемого |
|
значения автоматически преобразуется в тип |
|
переменной, находящейся слева. |
|
Следовательно, |
|
тип переменной i преобразуется в тип float, |
|
затем значение переменной i присваивается переменной f. |
|
C# является языком со строгим контролем типов, |
|
след. не все его типы данных являются |
|
совместимыми. |
|
Например, несовместимы типы данных bool и int. |
|
10 |