比方说,我想写些类似的东西:
static string Foo(dynamic d, string key)
{
var dict = d as IDictionary<string, string>;
if (dict?.TryGetValue(key, out string result) ?? false)
{
return result;
}
return null;
}
它给出了编译错误:Local variable 'result' migth not be initialized before accessing
我想知道为什么在这种情况下c#编译器不确定控制流。
我们都知道,大多数时候c#编译器在看到常量值时都会表现为“智能”。