C# C#  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Средний  · 

Типы, значения и nullable

Разбирает, как C# хранит и передаёт значения: копирование структур, общие ссылки на объекты, nullable-значения, упаковку и числовые преобразования. Здесь мало помнить синтаксис — нужно проследить состояние переменных и заметить место, где меняется тип или семантика.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 20 вопросов отведено 55 минут. В заданиях с кодом учитывайте указанную конструкцию и не додумывайте отсутствующие условия. После завершения откроются общий результат, тематические шкалы и разбор каждого ответа.
Вопрос 1 из 20
Какой результат напечатает программа?
C#
struct Counter { public int Value; }
var a = new Counter { Value = 10 };
var b = a;
b.Value = 25;
Console.WriteLine($"{a.Value} {b.Value}");
Вопрос 2 из 20
Почему после упаковки изменение исходной переменной не меняет значение внутри object?
C#
int n = 7;
object boxed = n;
n = 9;
Console.WriteLine(boxed);
Вопрос 3 из 20
В каком варианте decimal предпочтительнее double?
Вопрос 4 из 20
Что произойдёт при увеличении int.MaxValue внутри блока checked?
C#
int x = int.MaxValue;
checked
{
    x++;
}
Console.WriteLine(x);
Вопрос 5 из 20
Какое утверждение о default(DateTime) верно?
Вопрос 6 из 20
Какое имя выведется после изменения объекта через вторую ссылку?
C#
class Person { public string Name { get; set; } = ""; }
var a = new Person { Name = "Анна" };
var b = a;
b.Name = "Ирина";
Console.WriteLine(a.Name);
Вопрос 7 из 20
Какой дефект скрыт в создании массива?
C#
#nullable enable
string[] names = new string[2];
Console.WriteLine(names[0].Length);
Вопрос 8 из 20
Как создать независимую поверхностную копию списка строк?
Вопрос 9 из 20
Что покажут Equals и ReferenceEquals для двух равных, но отдельно созданных строк?
C#
object x = new string('a', 2);
object y = new string('a', 2);
Console.WriteLine($"{Equals(x, y)} {ReferenceEquals(x, y)}");
Вопрос 10 из 20
Какой контракт лучше всего выражает параметр string? name при включённом nullable-анализе?
Вопрос 11 из 20
Что получится при сложении int? со значениями 5 и null?
C#
int? a = 5;
int? b = null;
int? c = a + b;
Console.WriteLine(c is null ? "null" : c);
Вопрос 12 из 20
Как получить 0, когда int? value равен null, и само значение в остальных случаях?
Вопрос 13 из 20
Какой результат даст выражение?
C#
bool? left = true;
bool? right = null;
Console.WriteLine((left & right)?.ToString() ?? "null");
Вопрос 14 из 20
Когда обращение value.Value безопасно?
Вопрос 15 из 20
Что произойдёт при сопоставлении int? с шаблоном int n?
C#
int? value = 12;
if (value is int n)
    Console.WriteLine(n * 2);
Вопрос 16 из 20
Почему строка с присваиванием не компилируется?
C#
double price = 3.9;
int whole = price;
Вопрос 17 из 20
Что выведет код в обычном unchecked-контексте?
C#
int value = 300;
byte b = (byte)value;
Console.WriteLine(b);
Вопрос 18 из 20
Какой способ лучше для пользовательского ввода, где неверная строка ожидаема?
Вопрос 19 из 20
Почему распаковка завершается InvalidCastException?
C#
object box = 10;
short s = (short)box;
Console.WriteLine(s);
Вопрос 20 из 20
Когда уместен пользовательский implicit operator?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу