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

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

+107

  • Кто проходил: Denis Orlov
  • Дата прохождения: 13.08.2019
Укажите, какие свойства определены неверно?
public class Foo { 
       private int a; 
       private int c; 
 
       public int A {    
           get { return a; }  
           set { a = value; } 
       } 
 
       public int B { 
           get { return 0; } 
       } 
 
       public int C { 
           set { c = value; } 
       } 
 
       protected int D { get; set; } 
 
       protected int E { get; private set; } 
 
       protected int F { public get; set; } 
   } 
Ваши ответы
F
Объяснение:

А - свойство с явно определенными методами доступа.
В и C - свойства с методами доступа только для чтения и только для записи, соответственно.
D - автоматически реализуемое свойство
E - то же, но с асимметричными методами доступа
F - свойство определено неверно, так как видимость метода доступа(public) не может быть больше видимости свойства (protected)
Подробности:
http://msdn.microsoft.com/ru-ru/library/x9fsa0sw(VS.90).aspx

Что выведет на экран данный код?
class Program 
{ 
   static void Main(string[] args) 
   { 
       Console.WriteLine(Foo("Original string")); 
   } 
 
   public static string Foo(string str) 
   { 
       try 
       { 
           return str; 
       } 
       finally 
       { 
           Console.WriteLine("In finally"); 
           str = "Somewhere in finally"; 
       } 
   } 
} 
Ваши ответы
In finally
Original string
Что напечатает следующий код:
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=1, b=2
Скомпилируется ли данный код:
static void Main() 
{ 
   int a = 10; 
   int b = 20; 
   byte c = a + b; 
   Console.WriteLine(c);  
} 
Ваши ответы
Нет
Что выведет данный код?
static void Main(string[] args) 
{ 
   string s; 
   { 
       int s = 10; 
       Console.WriteLine(s); 
   } 
} 
Ваши ответы
Код не скомпилируется
Среди перечисленных конструкций укажите объявление индексатора
Ваши ответы
string this [int i] {get {return “Name”;}}
Выберите верные утверждения на счет наследования в C#
Ваши ответы
Класс может наследовать только одну реализацию
Класс может наследовать сколько угодно интерфейсов
Какие действия необходимо и достаточно выполнить для того, чтобы программа компилировалась?
namespace Test 
{ 
   class TypeA 
   { 
       class TypeB:TypeA 
       { 
           public override void MethodA() { Console.WriteLine("TypeB"); } 
       } 
 
       public virtual void MethodA() { Console.WriteLine("TypeA"); } 
   } 
 
   class Prоgrаm  
   { 
       static void Main(string[] args) 
       { 
           TypeA a = new TypeA(); 
           TypeB b = new TypeB(); 
           a.MethodA(); 
           b.MethodA(); 
           Console.ReadLine(); 
       } 
   } 
} 
Ваши ответы
Изменить модификатор доступа класса TypeB на public
Изменить строчку "TypeB b = new TypeB();" на "TypeA.TypeB b = new TypeA.TypeB();"
Данный код скомпилируется успешно (как часть некоторого метода):
try 
{ 
   Console.WriteLine("TRY"); 
   throw new Exception("EXCEPTION"); 
} 
catch (Exception) 
{ 
    Console.WriteLine("CATCH"); 
} 
Ваши ответы
Да
Объяснение:

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

Cколько раз выполнится тело следующего цикла:
int i = 0; 
while (++i < 3)  
{ 
   Console.Write(i); 
} 
Ваши ответы
2
Каков будет результат при выполнении следующего кода:
public abstract class A { 
   public string PublicPrint() { 
       return Print(); 
   } 
 
   protected virtual string Print() { 
       return "A"; 
   } 
} 
public class B : A { } 
public class C : B { 
   protected override string Print() { 
       return "C"; 
   } 
} 
A ac = new C(); 
Console.WriteLine(ac.PublicPrint()); 
Ваши ответы
С
Объяснение:

Основное правило полиморфизма. Вызывается перегруженный метод определенный в объекте, экземпляр которого был создан. При этом в базовом классе метод должен быть помечен как virtual, а в классе наследнике он должен содержать override

Задано классы:
class A { int x;  } 
 
class B : A { int y; }Какие фрагменты кода выполнятся успешно?
Ваши ответы
A a = new B();
a = null;
Object a = new B();
B b = a as B;
Скомпилируется ли следующий код:
class Program 
  { 
      private static int i; 
      static Program(int a) 
      { 
          this.i = a; 
          Console.WriteLine("In static constructor"); 
      } 
      static void Main(string[] args) { } 
  } 
Ваши ответы
Нет
Объяснение:

В коде две ошибки:
1) Статический конструктор класса (конструктор типа) не должен содержать параметров.
2)Ключевое слово 'this' нельзя использовать в статическом свойстве, методе или инициализаторе статического поля.

Сколько объектов типа string будет создано во время выполнения следующего кода?
string s = "sdfsg";   if(s.ToLower().Substring(1, 2).EndsWith("exe"));     
Ваши ответы
4
Объяснение:

1. "sdfs"
2. Получим в результате s.ToLower()
3. Получим в результате .Substring()
4. "exe"

Что напечатает следующий код:
static void Main(string[] args) { 
  int a = 0; 
  decimal b = 0; 
  double c = 0.0; 
 
  Console.WriteLine(a == b); 
  Console.WriteLine(a.Equals(b)); 
  Console.WriteLine(a == c); 
  Console.WriteLine(a.Equals(c)); 
  Console.ReadLine(); 
} 
Ваши ответы
True
False
True
False