字典不会为不存在的密钥抛出异常

时间:2017-03-28 18:00:51

标签: c# .net uwp windows-store-apps win-universal-app

我有

CurrentAppSimulator.LicenseInformation.ProductLicenses["nonexistentEntry"]

MSDN

并且它不会抛出异常。

这是预期的吗?它会一直这样吗?

2 个答案:

答案 0 :(得分:2)

正如评论员在上面发布的那样,虽然变量是IReadOnlyDictionary,但证明它是Dictionary。它可能会以其他方式实现。

答案 1 :(得分:2)

正如我在评论中提到的那样:

LicenseInformation.ProductLicenses不是字典。根据documentataion,它是IReadOnlyDictionary。

我没有找到有关其行为或实现的信息,但如果在运行时检查它,您可以发现它是System .__ ComObject:System.MarshalByRefObject。这意味着它绝对不是字典。

最好在访问密钥之前检查密钥是否存在,因为将来不确定行为是否会发生变化。