当使用索引初始化器填充字典而不在此之前重新创建它时,是否可以选择在某处指定容空运算符?
例子:
public class Program
{
public IDictionary<string, string>? NullableDictionary { get; set; }
= new Dictionary<string, string>();
public static void Main(string[] args)
{
new Program
{
NullableDictionary =
{
["key"] = "value"
}
};
}
}
我知道这个用例(没有重新创建new Dictionary<string, string>
索引初始化之前{ [...] = ... }
)可能不是很常见。但是我仍然想知道是否有解决方案可以防止上述情况出现此编译器警告:
[CS8602] 取消引用可能为空的引用。
我可以想象像这样使用 null-forgiving 运算符:
new Program
{
NullableDictionary! =
{
["key"] = "value"
}
};