问题标签 [non-nullable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
11 回答
3718 浏览

language-agnostic - 如果没有 NULL,我们会怎么做?

我曾经读到拥有可为空的类型是绝对的邪恶。我相信这是由创建它们的人写的一篇文章(在 Ada 中?)我相信这是这篇文章

无论如何,如果默认情况下像 C# 这样的语言使用不可为空的类型呢?您将如何替换 C# 或 Ruby 或任何其他null可接受值的常用语言中的一些常见习语?

0 投票
11 回答
45807 浏览

programming-languages - 没有 null 的语言的最佳解释

每隔一段时间,当程序员抱怨 null 错误/异常时,就会有人问我们没有 null 会做什么。

我对选项类型的酷炫有一些基本概念,但我没有最好的表达它的知识或语言技能。以普通程序员可以理解的方式编写的以下内容有什么很好的解释,我们可以将其指向该人?

  • 默认情况下引用/指针可以为空是不可取的
  • 选项类型如何工作,包括简化检查空情况的策略,例如
    • 模式匹配和
    • 一元理解
  • 替代解决方案,例如消息吃零
  • (我错过的其他方面)
0 投票
6 回答
2593 浏览

c# - 何时使用 C# 结构(值类型)会牺牲性能?

我一直在使用结构作为隐式验证复杂值对象的机制,以及围绕更复杂类的通用结构来确保有效值。我对性能后果有点无知,所以我希望大家能帮助我。例如,如果我要执行诸如将域对象注入值类型包装器之类的操作,那会导致问题吗?为什么?我了解值类型和引用类型之间的区别,我的目标是利用值类型的不同行为。为了负责任地做到这一点,我究竟需要调查什么?

这是我正在考虑的一个非常基本的想法。

0 投票
2 回答
2883 浏览

asp.net-mvc-3 - 使用 EditFor [asp.net mvc 3] 时删除不可为空属性的默认值

使用 EditFor 帮助器时,如何删除默认添加到不可为空属性的文本框中的默认值?我不想要那种行为

编辑

抱歉,我没有提供足够的信息。

例如,如果您将 Html.EditorFor 与 DateTime 属性一起使用,它将自动将文本框值设置为 1/1/0001。如果您使用“DateTime?”(可为空),它不会,它只是将文本框留空。

0 投票
5 回答
3958 浏览

c# - 为什么允许我将不可为 null 的类型与 null 进行比较?

可能重复:
C# 可以将值类型与 null 进行比较

如果我尝试null在 C# 中分配给不可为空的类型:

我会得到一个编译时错误:

错误 CS0037:无法将 null 转换为“System.DateTime”,因为它是不可为空的值类型

这是有道理的。但是,如果将相同类型与 进行比较null

没有编译时错误。这对我来说没有意义——如果我不能分配null,那为什么会这样null呢?

为什么允许我将不可为空的类型与 进行比较null

0 投票
3 回答
50 浏览

c# - 用不可为空的类型表示搜索失败

我有一种方法可以根据对象的某些字段搜索对象列表。如果找到匹配的对象,我会返回它,但我希望能够表示不匹配的情况。通常我会返回 null 但我正在使用一个我无法更改的不可为空的类。

0 投票
3 回答
32463 浏览

c# - 在 C# 中创建不可为空的类型

如何在 C# 中创建不可为空的值类型,如 int、bool 等?

0 投票
4 回答
1896 浏览

java - 是否有标准的 Java NonNullable通用的,如果不是,为什么不呢?

诸如注释的问题@NotNull/@NonNull是它们在运行时没有被强制执行。我想做如下的事情:

某处是否存在标准NonNullable<T>泛型,如果不存在,是否有理由认为这是一个坏主意?

0 投票
1 回答
2178 浏览

.net - EF4 将可空十进制列映射到不可空值属性

我在 EF4 中使用 POCO(无代理)。

在数据库中,我有这个可为空的十进制列:

在我的 POCO 上,我有这个不可为空的值属性:

如果数据库中的值为null,我希望将属性设置为0。我怎样才能做到这一点?我宁愿Nullable在这里没有属性,否则我不得不用GetValueOrDefault()代码污染我的业务逻辑。

[这个问题看起来就像我在问什么,但我不确定它是否真的得到了回答。]

0 投票
3 回答
61932 浏览

db2 - 启用数据捕获时在 DB2 中使列可以为空

我正在使用 db2 9.7* 版,似乎不可能以任何直接的方式使 NOT NULL 列可以为空。

不幸的是,没有使用对开发人员更友好的数据库的解决方案。基本上,在 MySQL 中,我想做这样的事情(其中 MY_COLUMN 曾经是 VARCHAR(200) NOT NULL):