Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен в гаи redacted.doc
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
676.35 Кб
Скачать

2. Пространство имён – определение, примеры

Пространство имён – это способ организации системы типов в единую группу. Существует общая общеязыковая библиотека базовых классов. И концепция пространства имён обеспечивает эффективную организацию и навигацию в этой библиотеке. Вне зависимости от языка программирования доступ к определённым классам обеспечивается за счёт их группировки в рамках общих пространств имён.

Наиболее часто используемое пространство имён – System. Расположение соответствующей сборки известно. Если не использовать оператора usung System, корректное обращение к функции WriteLine() члену класса Console выглядело бы следующим образом:

System.Console.Writeline(“Hello!”); //Полное квалифицированное

При компиляции модуля, транслятор по полному имени функции (если используется оператор using – то по восстановленному) находит её код, который и используется при выполнении сборки.

3. Что будет выведено на экран в каждом из случаев, приведенных ниже:

А)

try {

Console.WriteLine("Hello ");

return;

}

finally { Console.WriteLine("Goodbye "); }

Console.WriteLine("world!");

Ответ: Hello Goodbye. Finally выполняется даже если выполнение прервано по return.

Б)

try {

Console.WriteLine("Hello ");

Thread.CurrentThread.Abort();

}

finally { Console.WriteLine("Goodbye "); }

Console.WriteLine("world!");

Ответ: Hello Goodbye. Abort выбрасывает исключение ThreadAbortException, которое обрабатывается finally, затем выполнение прерывается.

Экзаменационный билет №4

1. Структура программы на c#. Константы. Переменные: описание, область действия, время жизни. Операции, приоритеты операций.Структура программы на c#.

При создании консольного приложения в Visual C#, в первой линии в редакторе кода содержится директива using с перечислением нескольких пространств имен .NET Framework. Пространство имен позволяет, в некотором смысле, сгруппировать вместе классы и структуры, что ограничивает их область действия и позволяет избежать конфликта имен с другими классами и структурами. При создании программы в Visual C# пространство имен создается автоматически. Для использования в программе классов из других пространств имен необходимо указать их с директивой using. При создании нового приложения наиболее часто используемые пространства имен .NET Framework включены в список по умолчанию. При использовании классов из других пространств имен в библиотеке классов необходимо добавить директиву using для пространства имен к исходному файлу. Следующая после оператора using строка содержит комментарий. Комментарии являются полезными для включения в них примечаний для себя или других программистов.

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

using System;

// Сomment

namespace Example

{

class MainClass

{

public static void Main (string[]args)

{

Console.WriteLine ("Hello World!");

}

}

}

Константы. Представляют собой неизменные значения, известные во время компиляции и неизменяемые на протяжении времени существования программы. Константы объявляются с модификатором const. Только встроенные типы C# (за исключением System.Object) могут быть объявлены как const. Определяемые пользователем типы, включая классы, структуры и массивы, не могут быть const. Для создания класса, структуры или массива, которые инициализируются один раз во время выполнения (например, в конструкторе) и после этого не могут быть изменены, используется модификатор readonly.

Константы должны инициализировать сразу после объявления.

class Calendar1

{

public const int months = 12;

}

Объявление переменной. Выполняется следующим образом:

<тип> <имя>;

Эквивалентные формы определения переменных элементарных размерных типов:

int a;

System.Int32 a;

Эквивалентные формы записи операторов определения и инициализации переменных элементарных размерных типов:

int a = 0;

int a = new int();

System.Int32 a = 0;

System.Int32 a = new System.Int32();

CLR не допускает использования в выражениях неинициализированных локальных переменных. В C# к таковым относятся переменные, объявленные в теле метода. Так что при разработке алгоритма следует обращать на это особое внимание.

Область видимости переменных. Это та часть кода, в пределах которого доступна данная переменная. Область определяется такими правилами:

  • Поле (field), известное также как переменная-член класса, находится в области видимости до тех пор, пока в этой области находится содержащий поле класс;

  • Локальная переменная (local variable) - находится в области видимости до конца блока операторов или метода в котором она обьявлена;

  • Локальная переменная, которая обьявлена в операторах for, while или подобных им, видна в пределах тела цикла.

Операции, приоритеты операций. Для каждого определённого в C# типа существует собственный набор операций, определённых на множестве значений этого типа.

Общие характеристики используемых в C# операций представлены ниже:

Категории операций

Операции

Арифметические

+ - * / %

Логические (boolean и побитовые)

& | ^ ! ~ && ||

Строковые (конкатенаторы)

+

Increment, decrement

++ --

Сдвига

>> <<

Сравнения

== != < > <= >=

Присвоения

= += -= *= /= %= &= |= ^= <<= >>=

Member access

.

Индексации

[]

Cast (приведение типа)

()

Conditional (трёхоперандная)

?:

Delegate concatenation and removal

+ -

Создания и удаление объекта

new/delete

Type information

is sizeof typeof

Overflow exception control (управление исключениями)

checked unchecked

Indirection and Address (неуправляемый код)

* -> [] &

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

Приоритет операций:

Приоритет

Операции

1

() [] . (постфикс)++ (постфикс)-- new sizeof typeof unchecked

2

! ~ (имя типа) +(унарный) -(унарный) ++(префикс) --(префикс)

3

* / %

4

+ -

5

<< >>

6

< > <= => is

7

== !=

8

&

9

^

10

|

11

&&

12

||

13

?:

14

= += -= *= /= %= &= |= ^= <<= >>=