【发布时间】:2021-07-11 23:57:25
【问题描述】:
当使用字典时
如果它是不可为空的值类型,我如何获取该值 这段代码
Dictionary<string, object> DictionaryValues = new Dictionary<string, object>();
RSAParameters publicKey = Storage.Read(_Path + @"\" + "Key.Public");
DictionaryValues["publicKey"] = publicKey;
RSAParameters publicKey2 = new RSAParameters();
if (DictionaryValues.TryGetValue("publicKey", out object obj))
{
publicKey2 = obj as RSAParameters;
}
我收到一个错误,as 运算符必须与引用类型或可为空的类型一起使用 RSAParameters 是不可为空的
如何从字典中获取值 publicKey 请大家帮忙,谢谢大家
【问题讨论】:
-
"12.11.12 as 运算符 as 运算符用于将值显式转换为给定的引用类型或可为空的值类型。与强制转换表达式(第 12.8.7 节)不同,as 运算符从不抛出异常。相反,如果指示的转换不可能,则结果值为 null。在 E as T 形式的操作中,E 应为表达式和 T 应为引用类型、已知为引用类型的类型参数或可为空的值类型。"
-
你能解释一下为什么字典的值是
object不是预期的类型吗? -
@PeterDuniho 和很多其他人。不太确定为什么要重新选择(特别是考虑到给定答案中缺乏信息)
标签: c#