gpt4 book ai didi

c# - ReSharper 显示可能对通用集合的值进行空赋值

转载 作者:太空狗 更新时间:2023-10-30 00:26:39 25 4
gpt4 key购买 nike

我正在使用 Dictionary<string, string>并添加一个具有空值的项目(在我的真实情况下它是一个变量)。

var testDictionary = new Dictionary<string, string>();
testDictionary.Add("Test", null);

这会导致警告“可能对标有‘NotNull’属性的实体赋值‘null’”。 Possible 'null' assignment

如果我让 ReSharper 将其转换为 Collection Initializer,它不会显示任何警告。

var testDictionary = new Dictionary<string, string> {{"Test", null}};

那么,字典的值是否真的标有“NotNull”属性?还是发生了其他事情?

编辑:这个问题与 Resharper: Possible null assignment to entity marked with notnull attribute 没有太大区别, 但我的问题的答案是不同的(这是 R# 中的一个错误,向集合中添加 null 元素不是一个好主意)。

最佳答案

一般来说,将 null 元素放入集合中是一种不好的做法。绝大多数使用集合的代码都假定集合中的值不是 null。如果 null 是一个有效的集合元素,它确实会使所有消费代码复杂化。

例如,您基本上需要编写

foreach (var cur in theCollection) {
if (cur.Value == null) {
continue;
}
...
}

对于这个特定的案例,它看起来就像是 R# 缺少集合初始化器案例。 null 出现在集合中绝对是出乎意料的。

为什么不使用 String.Empty 而不是 null

关于c# - ReSharper 显示可能对通用集合的值进行空赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10143101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com