问题标签 [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 投票
5 回答
78632 浏览

c# - .NET - 将通用集合转换为 DataTable

我正在尝试将通用集合(列表)转换为 DataTable。我找到了以下代码来帮助我做到这一点:

我的问题是,当我将 MySimpleClass 的属性之一更改为可为空的类型时,出现以下错误:

DataSet does not support System.Nullable<>.

如何在我的班级中使用 Nullable 属性/字段来做到这一点?

0 投票
5 回答
1587 浏览

c# - 如何将 null 文字分配给 System.Nullable类型由 .Net (C#) 处理?

我想知道是否有人知道 C# 编译器如何处理以下分配:

我的假设是执行了隐式转换,但我无法弄清楚如何处理空文字赋值。我反汇编了 System.Nullable 对象,发现隐式运算符被覆盖为:

一旦被调用,它将尝试触发辅助构造函数:

这就是我的困惑发挥作用的地方...... this.value 是某种值类型,不能为空。

那么,有谁知道这种“魔术”是如何发生的......或者我假设调用了辅助构造函数是错误的?是否调用了默认构造函数,因为编译器知道它无法将第二个构造函数的签名与 null 文字匹配(导致 myInt 被分配给新的“null”Nullable)?

0 投票
3 回答
681 浏览

sql-server - 在 SQL Server 中有效地添加列

我想将一个整数列添加到具有大量行和许多索引的表中(它是一个数据仓库事实表)。

为了使行宽尽可能窄,此表中的所有列都定义为非空。所以我希望新列不为空,默认为零。

根据经验,添加此列将需要一些时间,可能是因为数据库需要使用填充值的新列重写所有行。这大概会涉及更新聚集索引和所有非聚集索引。

所以我应该在添加列之前删除所有索引,然后重新创建它们。或者有没有更简单的方法来做到这一点?

另外我真的不明白为什么添加一个可以为空的列要快得多。为什么这不涉及重写记录并为每一行翻转一个额外的 Is Null 位。

0 投票
4 回答
9583 浏览

vb.net - 为什么 VB.net 类中的可为空的公共属性不接受 0(零)作为赋值?

我在使用 Vb.net 3.5 的类上有一个可为空的公共属性:

有一种分配值的方法。它工作正常,除非我尝试将值 0(零)分配给它。

当我分配零然后检索它时,它显示属性 = 无。

我需要属性有时为空,有时为零。有人可以解释发生了什么吗?

0 投票
4 回答
4917 浏览

c# - 可空类型不是可空类型吗?

我正在对可空类型进行一些测试,但它并没有像我预期的那样工作:

这也不起作用:

我的问题是为什么 testInt.GetType() 返回 int,而 typeof(int?) 返回真正的可空类型?

0 投票
2 回答
544 浏览

c# - XmlConvert 和可为空的结果?

在我的项目中,我收到一个 XmlElement,我必须将其中的一些属性解析回一个类。

为了映射这些,我使用 XmlConvert 类。但是源是 XML,通常有空节点或不可读的节点。与其抛出一堆错误,我想将一个 NULL 返回存储在我的班级中。

我开始制作一个 XmlConvertExtentions 类,它按照以下精神做事:

我坚信我不是第一个需要这种功能的开发人员,我想知道我是否没有发明另一个轮子。
此外,我觉得我正在发明一个非常丑陋的轮子。try catch 感觉很糟糕。有没有更好的办法?

--EDIT--
现在我也注意到它甚至不起作用:P
我认为这是因为你不能扩展静态类。

0 投票
8 回答
24410 浏览

c# - 我该如何解决这个问题以将通用转换为 Nullable?

我目前使用这种方便的转换扩展方法来进行类型之间的转换:

但是,它不喜欢将有效值转换为 Nullable,例如,这会失败:

显然,1 很容易转换为 (int?),但它得到了错误:

这是一个明显简化的示例,实际上我使用它来进行字符串类型的转换,如下所示:

如果 Convert.ChangeType 不喜欢 Nullable,那么有人有什么好主意吗?

0 投票
8 回答
183 浏览

c# - 这段代码会破解吗?

业务对象正在返回short?数据类型。

我如何将此值放入变量中?

那是对的吗?如果它为空,它会中断吗?

0 投票
5 回答
3771 浏览

c# - c#:从可为空的类型赋值

如果我有一个可以为空的“十进制?d”并且我想将 d 分配给不可为空的 e,那么正确的方法是什么?

0 投票
4 回答
2319 浏览

c# - 为什么这段 C# 代码不能编译?

在我的书中,这与

但是第一行给出了这个编译器错误:

无法确定条件表达式的类型,因为 ' <null>' 和 ' double' 之间没有隐式转换。