8

この構成を使用すると、次のようになります。

var dict = new Dictionary<int, string>();
var result = (dict?.TryGetValue(1, out var value) ?? false) ? value : "Default";

CS0165 use of unassigned local variable 'value'期待したものではないというエラーが表示されます。どうすれvalueば未定義になる可能性がありますか? 辞書が null の場合、内側のステートメントが返さfalseれ、外側のステートメントが false と評価され、 が返されDefaultます。

ここで何が欠けていますか?コンパイラがステートメントを完全に評価できないだけですか?それとも私はどういうわけかそれを台無しにしましたか?

4

2 に答える 2