如果条件语句中的C#空传播运算符

时间:2018-08-18 10:41:21

标签: c# null-propagation-operator

比方说,我想写些类似的东西:

    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#编译器在看到常量值时都会表现为“智能”。

0 个答案:

没有答案