【发布时间】:2012-02-12 23:28:22
【问题描述】:
假设我有以下代码:
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 规范,但找不到自己)
【问题讨论】:
-
我不知道规范,但它肯定是我所期望的。我希望成员变量、属性等的初始化在您的 catch 块中仍然可用。
-
当你需要他时,埃里克·利珀特在哪里...... :)
-
@jb。 MSDN 怎么了?
-
@gdoron 既然可以向老师本人学习,为什么还要阅读二手教科书?