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

3.Найти неправильное(ые) описание(я) одномерного массива

a) int[4] a; - не правильно

b) int[] a;

c) int[] a = new int[4];

d) int[] a = {1, 2, 3, 4};

e) int a[]; - не правильно

f) int[] a = {1, 2, 3, 4, 5};

g) int[] a = new int[4] {1, 2, 3, 4, 5}; - ожидается инициализация массива длиной 4

h) int[] a = new int[] {1, 2, 3, 4, 5};

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

1.Clr (CommonLanguageRuntime) – определение, примеры задач clr, состав ядра.

Microsoft.NET (.NET Framework) – программная платформа. Содержит следующие основные компоненты: the common language runtime (CLR) и the .NET Framework class library (.NET FCL).

CLR (Common Language Runtime) – Среда Времени Выполнения или Виртуальная Машина – управляемая операционная система высокого уровня, которая обеспечивает выполнение программного кода и предполагает решение следующих задач:

  1. управление кодом (загрузку и выполнение),

  2. управление памятью при размещении объектов,

  3. изоляцию памяти приложений,

  4. проверку безопасности кода,

  5. преобразование промежуточного языка в машинный код,

  6. доступ к метаданным (расширенная информация о типах),

  7. обработка исключений, включая межъязыковые исключения,

  8. взаимодействие между управляемым и неуправляемым кодом (в том числе и COM-объектами),

  9. поддержка сервисов для разработки (профилирование, отладка и т.д.).

CLR – это набор служб, необходимых для выполнения сборки. При этом программный код сборки может быть как управляемым (код, при выполнении которого CLR, в частности, активизирует систему управления памяти), так и неуправляемым.

CLR состоит из двух компонент:

  1. ядра (mscoree.dll);

  2. библиотеки базовых классов (mscorlib.dll).

2.Понятие инкапсуляции.

Инкапсуляцией называется способность объектов «прятать» детали своей внутренней организации от пользователей. Преимущество инкапсуляции – возможность скрыть внутренние данные (поля) объекта. Как правило, при описании класса поля помечаются зарезервиро­ванным словом private. В результате доступ к ним становится возможен толь­ко с помощью открытых методов класса.

3.Каков результат компиляции и выполнения приведенного ниже кода?

static void Main(string[] args)

{

Console.WriteLine(GetSomeResult(10000));

}

static long GetSomeResult(long someValue)

{

long value1 = 10 * 1000 * 10000 * someValue;

long value2 = 10 * 1000 * 10000 * 100000;

return value2 / value1;

}

Ответ: из-за строчки long value2 = 10 * 1000 * 10000 * 100000 возникает ошибка компиляции (переполнение int), поскольку вычисления производятся в int арифметике до присвоения значения переменной value2. Чтобы ошибки не возникало, нужно использовать один из параметров типа long, для этого можно явно указать литеру L у одного из чисел long value2 = 10 * 1000 * 10000 * 100000L;

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

1.Статические члены класса

Статический класс в основном такой же, что и нестатический класс, но имеется одно отличие: нельзя создавать экземпляры статического класса. Другими словами, нельзя использовать ключевое слово new для создания переменной типа класса. Поскольку нет переменной экземпляра, доступ к членам статического класса осуществляется с использованием самого имени класса. Например, если имеется статический класс, называемый UtilityClass, имеющий открытый метод, называемый MethodA, вызов метода выполняется, как показано в следующем примере.

UtilityClass.MethodA();

Нестатический класс может содержать статические методы, поля, свойства или события. Статический член вызывается для класса даже в том случае, если не создано экземпляра класса. Доступ к статическому члены всегда выполняется по имени класса, а не экземпляра. Существует только одна копия статического члена, независимо от того, сколько создано экземпляров класса. Статические методы и свойства не могут обращаться к нестатическим полям и событиям в их содержащем типе, и они не могут обращаться к переменной экземпляра объекта, если он не передается явно в параметре метода.

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

Статические методы могут быть перегружены, но не переопределены, поскольку они относятся к классу, а не к экземпляру класса.

Хотя поле, не может быть объявлено как static const, поле const по своему поведению является статическим. Оно относится к типу, а не к экземплярам типа. Поэтому к полям const можно обращаться с использованием той же нотации ClassName.MemberName, что и используемой для статических полей. Необходим экземпляр объекта.

C# не поддерживает статических локальных переменных (переменных, которые объявлены в области действия метода).

Для объявления статических методов класса используется ключевое слово static перед возвращаемым типом члена.

public class Automobile

{

public static int NumberOfWheels = 4;

public static int SizeOfGasTank {

get

{

return 15;

}

}

public static void Drive() { }

public static event EventType RunOutOfGas;

// Other non-static fields and properties...

}