Скажем, у меня есть следующий код:
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
.
Гарантируется ли это спецификацией или зависит от реализации? (Я искал спецификацию С# 3, но не смог узнать сам)