假设我有以下代码:
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 规范,但找不到自己)