【问题标题】:How can I prevent a "Possible 'null' assignment to entity marked with 'NotNull' attribute" when dynamically adding a column to a DataTable?将列动态添加到 DataTable 时,如何防止“对标有 'NotNull' 属性的实体的可能的 'null' 分配”?
【发布时间】:2016-11-22 23:52:51
【问题描述】:

我有这个代码:

dtAddrInfo.Columns.Add(new DataColumn("Address", Type.GetType("System.String")));

...Resharper 咆哮着说:“可能对标有 'NotNull' 属性的实体进行 'null' 分配

代码有什么问题?

即使我让 Resharper 用它的各种建议调整代码:

dtAddrInfo.Columns.Add(new DataColumn("Address", dataType: System.Type.GetType("System.String")));
dtAddrInfo.Columns.Add(new DataColumn("City", System.Type.GetType("System.String")));
dtAddrInfo.Columns.Add(column: new DataColumn("State", Type.GetType("System.String")));

...它仍然在每一行都以同样的方式痛苦地抱怨同样的事情。

它不会妨碍编译,但我仍然希望尽可能成为 Mr. Clean。

【问题讨论】:

  • 您使用的是什么版本的 R#? This bug 已在 6.0 中修复,但不确定这是否与您的问题有关
  • 2016.1;但我只是注意到它说“更新可用”,所以我会这样做,看看我是否仍然收到这些警告。
  • 我现在使用的是 R# 2016.1.2,但它仍然在抱怨它。

标签: c# resharper nullable notnull


【解决方案1】:

这个:

System.Type.GetType("System.String")

可以返回null,因为您正在对可能不存在的Type 进行String 查找,您应该使用:

typeof(System.String)

那它应该停止抱怨了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多