说我有下面的代码:“fjuk”输出参数和异常
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
已经被初始化到当它在catch
区块中使用时。
这是由规范保证还是依赖于实现? (我已经搜查了C#3.0规范,但无法找到自己)
我不知道规范,但它肯定是我期望的。我期望成员变量,属性等的初始化也将在你的catch块中可用。 – 2012-01-18 07:57:30
Eric Lippert在什么时候需要他...... :) – 2012-01-18 08:00:52
@jb。 [MSDN]有什么问题(http://msdn.microsoft.com/en-us/library/t3c3bfhx(v = vs.80).aspx)? – gdoron 2012-01-18 08:08:59