Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Госссыыы! одна колонка шпоры!.doc
Скачиваний:
45
Добавлен:
17.08.2019
Размер:
297.47 Кб
Скачать

19.Чем интерфейс отличается от класса в языке c#?

Интерфейс - это частный случай класса. Интерфейс представляет собой полностью абстрактный класс, все методы которого абстрактны. От абстрактного класса интерфейс отличается некоторыми деталями в синтаксисе и поведении. В отличие от класса интерфейс не может содержать полей. Интерфейс может содержать все остальные конструкции языка, которые могут содержаться в классе. Такие, как свойства, события и методы. Стоит отметить, что интерфейс не может содержать определений методов, свойств или событий. В терминах C++ интерфейс представляет собой абстрактный класс. Все методы интерфейса должны быть реализованы в классах, наследующих данный интерфейс.

20.Что означает ключевое слово try в языке c#?

Инструкция try-catch состоит из блока try, за которым следует одно или несколько предложений catch, в которых определяются обработчики для различных исключений. При возникновении исключения среда CLR ищет оператор catch, который обрабатывает это исключение. Если выполняющийся в данный момент метод не содержит такого блока catch, то среда CLR рассматривает метод, который вызвал текущий метод, и т. д. по стеку вызовов. Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы. Блок try содержит защищаемый код, в котором могут происходить исключения. Этот блок выполняется до момента возникновения исключения или до своего успешного завершения. Например, следующая попытка приведения объекта null вызовет исключение NullReferenceException.

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

Из производного класса можно получить доступ к открытым, защищенным, внутренним и защищенным внутренним членам базового класса. Хотя производный класс и наследует закрытые члены базового класса, он не может получить доступ к этим членам. Однако все эти закрытые члены все же присутствуют в производном классе и могут выполнять ту же работу, что и в самом базовом классе.

22.Какой тип объекта ошибки может передаваться оператору throw в языке C#?

Исключение.

//Любые типы исключения, наследуемые от класса System.Exception\

23.Что произойдёт, если не будет найден обработчик для сгенерированного программой исключения?

Произойдет подъем по стеку вызовов, и поиск обработчиков в методе, вызвавшем метод, который выкинул исключение. Если и в нём нет, тогда поиск будет подниматься всё выше и выше, пока не дойдёт до процедуры Main(). Если и там нет, то активируется стандартный обработчик, прерывающий работу программы с соответствующим сообщением.

24.Можно ли использовать указатели в программах на языке C#?

Да.

25.В каком случае через ссылку на объект класса С# доступен для вызова метод ToString?

В любом, так как ссылка на объект класса является переменной, которая привязывается к объекту.

Class s = new Class ();

String v = s.ToString();

Здесь в переменную s записывается ссылка на объект класса Class. А в строку v пишется результат вызова метода ToString для данной переменной (ссылки на объект).

26.Если формальный аргумент метода объявлен как экземпляр класса X, то какого типа в языке C# может быть фактический аргумент при вызове метода?

Фактический аргумент тоже должен быть типа X.

27.Можно ли передать доступ к некоторой структуре в вызываемый метод по ссылке?

Да.

28.Какие данные не относятся к пользовательским типам языка C# (то есть, к типам, определяемым программистами)?

Встроенные (базовые типы), не относящиеся к пользовательским:

Byte,sbyte,int,uint,short,ushort,long,ulong,float,double,char,bool,object

string,decimal

29.Если присваивание переменных x = y допустимо, то допустимо ли обратное присваивание в языке C#?

Зависит от типов операндов. Для типов-значений нужен общий тип, а для ссылочных нужно соблюдение наследования. мы можем с более высокого уровня присвоить ссылку типа более низкого уровня иерархии, если первый родитель второго, но наоборот – нет.

30.Для каких типов данных в языке C# базовым является тип object?

Для всех.

31.Какой тип не относится к ссылочным типам языка C#?

Встроенные ссылочные типы: Object,String

Объявляются ссылочные типы с помощью ключевых слов class, delegate, interface

32.При каком условии возможно без явных преобразований присваивание y = x в языке C#?

Если выражение в правой части того же типа, что и в левой.

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

Любым из доступных.

34.На каком уровне можно объявлять именованный метод в языке C#?

На уровне класса.(не точно)

35.Что задаёт ключевое слово ref в языке C#?

Ссылку на объект типа-значения.

36.Где могут использоваться статические поля классов в языке C#?

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

37.Какие права доступа задают модификаторы доступа internal и protected в языке C#?

Ограниченный доступ.

Protected - Доступ ограничен содержащим классом или типами, которые являются производными от содержащего класса.

Internal - Доступ ограничен текущей сборкой.

Protectedinternal - Доступ ограничен текущей сборкой или типами, которые являются производными от содержащего класса.

38.Что делает оператор % в языке C#?

Операция "%" определена над всеми арифметическими типами и возвращает остаток от деления нацело.

39.Укажите корректный способ объявления переменной массива в C# int[ ] array3;

array3 = new int[] { 1, 3, 5, 7, 9 }; // OK

//array3 = {1, 3, 5, 7, 9}; // Error

40.Какая операция в языке C# доступна только в блоках небезопасного кода?

Арифметические операции с указателями.

//Windows.ReadFile, например, требующая указатель в качестве параметра.

41.Что будет выведено при выполнении следующего кода C#?

int a = 511;

byte b = 7;

b = a + 5;

Console.WriteLine(b);

Ничего. Компилятор вылетит с ошибкой несоответствия типов и требованием привести а к типу byte.

42.Какое ограничение накладывается в языке C# на метод - обработчик события?

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

43.Какой код в C# корректно создаст экземпляр класса X и ссылающуюся на него переменную x?

X x = new X(…);

44.Могут ли в языке C# использоваться указатели?

Да.

45.Какое ключевое слово в языке C# не относится к модификаторам переменных? Abstract, event, partial, sealed, unsafe, virtual

46.Что задаёт ключевое слово out в языке C#?

Ключевое слово out используется для передачи аргументов по ссылке. Оно похоже на ключевое слово ref, за исключением того, что ref требует инициализации переменной перед ее передачей. Для работы с параметром out определение метода и вызывающий метод должны явно использовать ключевое слово out.

47.Какое ключевое слово в С# не относится к механизму обработки исключительных ситуаций?

Обработка исключительных ситуаций включает следующие ключевые слова:try,catch,finally,throw.

Оператор throw используется для сообщения о случаях аномальных ситуаций (исключений) в ходе выполнения программы. Для вызова сгенерированного исключения, впрочем, он тоже используется.

48.Каким образом можно вызвать статический public метод класса X в языке C#?

X.MyStaticPublicMethod();

49.Что задаёт ключевое слово default в языке C#?

Ключевое слово default может использоваться в инструкции switch или в универсальном коде:

•Инструкция switch: определяет метку по умолчанию.

•Универсальный код: определяет значение параметра типа по умолчанию. Это будет значение NULL для ссылочных типов и ноль для типов значения.

50.Какое ключевое слово в C# не относится к модификаторам прав доступа?

Модификаторы доступа: public,private,internal,protected

//protectedinternal

51.Как присвоить значение переменной b типа bool переменной n типа int?

В C# не существует преобразования между типом bool и другими типами.

//Но можно воспользоваться тем, что значение false эквивалентно нулю, а значение true — ненулевым значениям.

52.Где используется в языке C# ключевое слово value?

Неявный параметр value служит для настройки метода доступа и для добавления или удаления обработчиков событий.

//value - ключевое слово, которое обозначает значение

53.В каком контексте в C# используется ключевое слово continue?

Оператор continue передает управление на следующую итерацию итерационного оператора, в котором он находится. Это оператор перехода. Используется не в особом контексте, а во всех.

54.Экземпляры каких типов могут быть элементами стандартных массивов языка C#?

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

55.Что задаёт оператор catch в языке C#?

Обработчик исключения. Инструкция try-catch состоит из блока try, за которым следует одно или несколько предложений catch, в которых определяются обработчики для различных исключений. При возникновении исключения среда CLR ищет оператор catch, который обрабатывает это исключение. Если выполняющийся в данный момент метод не содержит такого блока catch, то среда CLR рассматривает метод, который вызвал текущий метод, и т. д. по стеку вызовов. Если блок catch не найден, то среда CLR отображает пользователю сообщение о необработанном исключении и останавливает выполнение программы.

Интранет