CurrentAppSimulator.LicenseInformation.ProductLicenses["nonexistentEntry"]
(MSDN)
,并没有抛出异常。
这是预期的吗?它会一直这样做吗?
CurrentAppSimulator.LicenseInformation.ProductLicenses["nonexistentEntry"]
(MSDN)
,并没有抛出异常。
这是预期的吗?它会一直这样做吗?
正如一位评论员张贴以上,看来,尽管变量是IReadOnlyDictionary
- 这并没有证明这是一个Dictionary
。它可能以其他方式实施。
只是为了增加一点点深度。接口只保证*形状*,而不是*行为*。 –
正如我在评论中提到的:
LicenseInformation.ProductLicenses不是字典。根据documentataion它是IReadOnlyDictionary。
我没有找到关于它的行为或实现的信息,但是如果在运行时检查它,你可以发现它是System .__ ComObject:System.MarshalByRefObject。这意味着它绝对不是一个词典。
在访问密钥之前检查密钥的存在比较好,因为没有把握确定行为在将来不会改变。
这是最好的场景。在尝试访问密钥之前,请务必检查密钥是否存在,特别是如答案中所述,对未来的更改进行校对。 –
这不能是你的整个陈述,它不会超过编译器。 '只能将赋值,调用,增量,减量和新的对象表达式用作语句' –
@RufusL正确。它是'var l = ...;'。我只是在展示可能相关的部分。 – ispiro
请发表整个声明。 –