Кодирует в огне оператора Finally, если я возвращу значение в блоке Попытки?

Для строки формата вы можете использовать «% c» вместо «% c». Заготовка вызывает scanf (), чтобы пропустить пробел (включая символы новой строки) перед чтением символа.

226
задан Mehrdad Afshari 16 April 2009 в 14:16
поделиться

5 ответов

Простой ответ: Да.

254
ответ дан Andrew Rollings 4 November 2019 в 13:26
поделиться

Обычно, да. Наконец раздел, как гарантируют, выполнится что бы ни случилось включая исключения или оператор возврата. Исключением к этому правилу является асинхронное исключение, происходящее на потоке (OutOfMemoryException, StackOverflowException).

Для получения дополнительной информации об асинхронных исключениях и надежном коде, в который ситуации считайте [приблизительно 112] принужденные регионы выполнения .

198
ответ дан batintherain 4 November 2019 в 13:26
поделиться

Вот немного теста:

class Class1
{
    [STAThread]
    static void Main(string[] args)
    {
        Console.WriteLine("before");
        Console.WriteLine(test());
        Console.WriteLine("after");
    }

    static string test()
    {
        try
        {
            return "return";
        }
        finally
        {
            Console.WriteLine("finally");
        }
    }
}

результат:

before
finally
return
after
151
ответ дан senshin 4 November 2019 в 13:26
поделиться

Заключение в кавычки от MSDN

наконец используется, чтобы гарантировать, что блок операторов кода выполняется независимо от того, как предшествование попытка блок , вышел .

36
ответ дан Perpetualcoder 4 November 2019 в 13:26
поделиться

Да. Это на самом деле что основной момент наконец оператор. Если что-то, catestrophic происходит (из памяти, отключенный компьютер, и т.д.) наконец оператор, не должно всегда выполняться.

3
ответ дан Jeffrey L Whitledge 4 November 2019 в 13:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: