Результаты прохождения теста C# основы пользователем Akread

Результат прохождения теста "C# основы" - Не пройден

+30

  • Кто проходил: Akread
  • Дата прохождения: 18.10.2017
Укажите отличия интерфейса от абстрактного класса
Ваши ответы
в интерфейсе нельзя реализовывать методы
Что верно по отношению к данному фрагменту кода:
for (;;) 
{ 
  Console.WriteLine("test"); 
} 
Ваши ответы
Код скомпилируется и будет бесконечно печатать слово "test"
Два последовательных вызова GetHashCode у одного и того же объекта должны возвращать одно и то же значение.
Ваши ответы
Да
Среди перечисленных конструкций C# укажите объявление метода
Ваши ответы
string GetName () { return “Name”;}
Выберите верные утверждения на счет наследования в C#
Ваши ответы
Класс может наследовать сколько угодно интерфейсов
Cколько раз выполнится тело следующего цикла:
int i = 0; 
while (++i < 3)  
{ 
   Console.Write(i); 
} 
Ваши ответы
2
Как могут инициализироваться readonly поля экземпляра класса?
Ваши ответы
в статических методах
Что произойдет в результате выполнения следующего кода:
class Test  
{ 
   static void Main(string[] args)  
   { 
       char[] vowels = {'a','e','i','o','u'}; 
       for (int i = 1; i <= vowels.Length; i++) 
       Console.Write(vowels[i] + " "); 
   } 
} 
Ваши ответы
e i o u
Объяснение:

Нумерация элементов массива начинается с 0. Для обхода всех символов массива необходимо организовать цикл таким образом:

Что напечатает следующий код:
class MyClass 
{ 
   static void Main() 
   { 
       int a = 1, b = 2; 
       Swap(a, b); 
       Console.WriteLine("a=" + a + ", b=" + b); 
       Console.ReadLine(); 
   } 
 
   private static void Swap(int a, int b) 
   { 
       int c = a; 
       a = b; 
       b = c; 
   } 
} 
Ваши ответы
a=2, b=1
Скомпилируется ли следующий код (как часть некоторого метода):
string[] str = new string[5]; 
try 
{ 
   str[4] = "anything"; 
} 
catch (Exception e) 
{ 
   Console.WriteLine(e.Message); 
} 
catch (IndexOutOfRangeException e) 
{ 
   Console.WriteLine(e.Message); 
} 
Ваши ответы
Да
Объяснение:

Код не компилируется. Обработка исключений должна идти в восходящем порядке по иерархии исключений (от классов-детей к суперклассам).

Данный код скомпилируется успешно (как часть некоторого метода):
try 
{ 
   Console.WriteLine("TRY"); 
   throw new Exception("EXCEPTION"); 
} 
catch (Exception) 
{ 
    Console.WriteLine("CATCH"); 
} 
Ваши ответы
Нет
Объяснение:

В блоке catch не обязательно указывать идентификатор исключения

Скомпилируется ли следующий код?
public class CustomConvertor 
{ 
   public static string ToDate(out this DateTime dt)      
   { 
       return dt.ToShortDateString();  
   } 
} 
Ваши ответы
Да
Объяснение:

Не будет работать. 1. Класс содержащий расширяющие методы должен быть статическим. 2. Модификатор "out" в объявлении расширяющего метода - не нужен.

Что напечатает следующий код:
static bool Method1() 
{ 
   Console.WriteLine("in Method1"); 
   return false; 
} 
static bool Method2() 
{ 
   Console.WriteLine("in Method2"); 
   return true; 
} 
static void Main(string[] args) 
{ 
   if (Method1() & Method2()) 
   { 
      Console.WriteLine("inside if"); 
   } 
} 
Ваши ответы
in Method1
Объяснение:

Оператор & всегда вычисляет значение обоих операндов

В каких строках содержатся ошибки компиляции
public class Foo  
   { 
       public Action A; 
       public Action B { get; private set; } 
       public event Action C; 
   } 
 
   public static class Program 
   { 
       public static void Main() 
       { 
           Foo foo = new Foo(); 
 
           foo.A += () => { }; // 1 
           foo.A();            // 2 
           foo.B += () => { }; // 3 
           foo.B();            // 4 
           foo.C += () => { }; // 5 
           foo.C();            // 6 
       } 
   } 
Ваши ответы
5
Объяснение:

A - делегат, к нему можно добавлять методы и его можно вызывать; B - делегат, доступный через свойство с закрытым методом записи. Из другого класса делегат B можно только вызвать, изменить - нельзя; C - событие. К нему можно добавлять методы. Вызвать событие можно только из класса в котором оно объявлено. http://msdn.microsoft.com/ru-ru/library/8627sbea(VS.90).aspx

Из за чего код не скомпилируется?:
using Systеm; 
nаmеsрасе Q 
{ 
   сlаss Sample 
   { 
/*1*/    #rеgiоn Cоnstruсtоr 
       рubliс Sample(string sample) 
       { 
       } 
/*2*/    #еndrеgiоn 
 
/*3*/    #rеgiоn Рrореrtiеs 
       рubliс string Nаmе 
       { 
           sеt; 
           gеt; 
       } 
/*4*/    #еndrеgiоn 
 
/*5*/    #rеgiоn Меthоds 
       stаtiс vоid Маin(string[] аrgs) 
       { 
/*6*/            Sample n = nеw Sample("Hеlо Wrоld");     
       } 
/*7*/    #еndrеgiоn 
   } 
} 
Ваши ответы
Строка /*6*/ : ошибки в фразе "Helo Wrold"
Объяснение:

#region, #endregion - элементы оформления кода, при этом # должна быть первым непробельным символом на строке. /**/ - Вполне себе комментарии Hello World является строковым выражением, его синтаксис не проверяется=)