Out parameters and exceptions

Допустим, у меня есть следующий код:

    static void Fjuk(out string str)
    {
        str = "fjuk!";
        throw new Exception();
    }

    static void Main(string[] args)
    {
        string s = null;
        try
        {
            Fjuk(out s);
        }
        catch (Exception)
        {
            Console.WriteLine(s ?? "");
        }
    }

Когда я тестирую его, s инициализируется в "fjuk!", когда он используется в блоке catch.
Гарантируется ли это спецификацией или это зависит от реализации? (Я искал в спецификации C# 3, но не смог найти)

32
задан Niklas 18 January 2012 в 07:51
поделиться