Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
Show();
Console.Write("C");
void Show()
{
using var light = new Light();
Console.Write("A");
}
class Light : IDisposable
{
public void Dispose() => Console.Write("B");
}ABC
- Ждать
BAC: объявлениеusing varвызываетDisposeв конце охватывающего блока, а не сразу после строки объявления. - Ждать, что
Disposeвыполнится только в конце программы или не выполнится вовсе:usingвызывает его, как только блок покинут.
- Что напечатает программа, если
ShowпослеAвыбросит исключение, а вызывающий код его перехватит? - Во что компилятор превращает объявление
using?