Скачиваний:
2
Добавлен:
04.09.2023
Размер:
1.17 Mб
Скачать

12 Тема: Модификаторы доступа языка c#. Необходимые знания: Назначение и функции модификаторов private, public, protected, internal, protected internal, private protected.

Модификаторы доступа определяют область видимости как непосредственно самого класса, так и его составляющих (поля, свойства, методы). С помощью этих модификаторов можно задать следующие шесть уровней доступа:

  • public: неограниченный доступ;

  • protected: доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса;

  • internal: доступ ограничен текущей сборкой;

  • protected internal: доступ ограничен текущей сборкой или типами, которые являются производными от содержащего класса;

  • private: доступ ограничен содержащим типом;

  • private protected: доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса в текущей сборке.

Если для компонентов не определен модификатор доступа, то по умолчанию для них применяется модификатор private. Классы и структуры, которые объявлены без модификатора и которые расположены вне других типов, по умолчанию имеют доступ internal, а вложенные классы и структуры, как и остальные компоненты классов/структур имеют модификатор private.

Как правило, уровень доступности члена не может быть выше уровня доступности типа, в который он входит (принцип наследования).

13 Выбор вариантов.

Условный оператор (if, if else). Оператор множественного выбора (switch).

Оператор if выбирает оператор, который нужно выполнить, на основе значения логического выражения.

Оператор if с частью else выбирает для выполнения один из двух операторов на основе значения логического выражения, как показано в следующем примере:

If (Условие)

{

Оператор1(); // Выполняется если Условие = True

}

else

{

Оператор2(); // Выполняется если Условие = False

}

Оператор switch выбирает список операторов, который нужно выполнить, на основе соответствия переменной выражению.

switch (Переменная)

{

Переменная < 0.0:

Оператор1();

break;

Переменная > 10.0:

Оператор2();

break;

default:

ОператорПоУмолчанию();

break;

}

Ветвь default указывает операторы, которые нужно выполнить, если выражение не соответствует ни одному другому шаблону.

14 Циклы.

Цикл с предусловием (while). Цикл со счетчиком (for). Цикл с постусловием (do while). Цикл «для всех» (foreach).

Циклы являются управляющими конструкциями, позволяя в зависимости от определенных условий выполнять некоторое действие множество раз.

Цикл for

Цикл for имеет следующее формальное определение:

for ([действия_до_выполнения_цикла]; [условие]; [действия_после_выполнения])

{

// действия

}

Первая часть – некоторые действия, которые выполняются один раз до выполнения цикла. Обычно здесь определяются переменные, которые будут использоваться в цикле.

Вторая часть – условие, при котором будет выполняться цикл. Пока условие равно true, будет выполняться цикл.

Третья часть – некоторые действия, которые выполняются после завершения блока цикла. Эти действия выполняются каждый раз при завершении блока цикла.

Блок цикла сработает 3 раза, пока значение i не станет равным 4. И каждый раз это значение будет увеличиваться на 1. Однократное выполнение блока цикла называется итерацией. Результат работы программы: 1

2

3

for (int i = 1; i < 4; i++)

{

Console.WriteLine(i);

}

Цикл do..while

В цикле do сначала выполняется код цикла, а потом происходит проверка условия в инструкции while. И пока это условие истинно, цикл повторяется.

do

{

действия цикла

}

while (условие)

Здесь код цикла сработает 6 раз, пока i не станет равным нулю.

Важно, что цикл do гарантирует хотя бы однократное выполнение действий, даже если условие в инструкции while не будет истинно.

Например, для i = -1, цикл все равно один раз выполнится.

Например:

int i = 6;

do

{

    Console.WriteLine(i);

    i--;

}

while (i > 0);

Цикл while

Цикл while сразу проверяет истинность некоторого условия, и если условие истинно, то код цикла выполняется:

while (условие)

{

    действия цикла

}

Например:

int i = 6;

while (i > 0)

{

    Console.WriteLine(i);

    i--;

}

Цикл foreach

Цикл foreach предназначен для перебора набора или коллекции элементов.

foreach(тип_данных переменная in коллекция)

{

    // действия цикла

}

При выполнении цикл последовательно перебирает элементы коллекции и помещает их в переменную, и таким образом в блоке цикла мы можем выполнить с ними некоторые действия.

Цикл foreach пробегается по всем символам строки "Tom" и каждый символ помещает в символьную переменную c. В блоке цикла значение переменной c выводится на консоль. Поскольку в строке "Tom" три символа, то цикл выполнится три раза: Т

о

m

Например:

foreach(char c in "Tom")

{

    Console.WriteLine(c);

}

Если неочевидно, какой тип представляют элементы коллекции, переменная определяется с помощью оператора var: foreach(var c in "Tom")

Для всех циклов:

Если надо выйти из цикла, не дожидаясь его завершения – оператор break.

for (int i = 0; i < 9; i++)

{

    if (i == 5)

        break;

    Console.WriteLine(i);

}

Чтобы при проверке цикл не завершался, а просто пропускал текущую итерацию – оператор continue:

for (int i = 0; i < 4; i++)

{

    if (i == 2)

        continue;

    Console.WriteLine(i);

}

Результат:

0

1

3