58

我很想撒谎说英语是我的第二语言,但事实是我根本不知道“合并”是什么意思。我知道??C# 中“做什么”,但这个名字对我来说没有意义。

我查了这个词,我明白它是“加入”的同义词。“空连接运算符”仍然没有意义。

有人可以启发我吗?

4

8 回答 8

41

我很想撒谎说英语是我的第二语言……但事实是我只是不知道“合并”是什么意思。我知道什么??'does' 在 C# 中,但这个名字对我来说没有意义。

我查了这个词,我明白它是“加入”的同义词。

我想说对“合并”更准确的描述是“从不同的元素形成一个东西”。发生运算符的“合并”是??因为始终从两个值之一解析单个值。第一个非空值是结果。

于 2009-04-20T21:35:54.080 回答
20

合并是指您拥有多个项目,然后您最终只得到一个项目 - 通过将这些项目连接在一起或从组中选择一个项目。的情况下??运算符,您正在选择这对值的第一个非空值。

于 2009-04-20T21:37:37.023 回答
8

这里有一些其他的定义coalesce可能有助于理解。从Answers中可以看出,它的意思是“一起成长;融合”或“聚在一起,形成一个整体”。换句话说,取出一系列项目并从中做出一个。所以考虑到null在这个讨论中意味着“空”,null与非空合并给你非空。

于 2009-04-20T21:38:18.380 回答
6

意思是取第一个非空值。

于 2009-04-20T21:33:07.723 回答
3

您可以从这个 youtube 视频开始http://www.youtube.com/watch?v=YJGGmTNHPeo

如果您看到合并的英文意思,它表示“合并在一起”。合并运算符从链中返回第一个 NON-NULL 值。

例如下面是一个简单的合并代码,它链接了四个字符串。因此,如果“str1”为空,它将尝试“str2”,如果“str2”为空,它将尝试“str3”,依此类推,直到找到一个非字符串-空值。

string final =str1 ??  str2 ?? str3 ??
于 2013-12-24T16:53:23.327 回答
2

http://www.merriam-webster.com/dictionary/coalesce

我认为最好的定义是“为了一个共同的目标而团结起来”。所以基本上把它放在一起以获得最好的。在编程术语中,获得第一个最好的项目更多。

于 2009-04-20T21:39:05.477 回答
0

Coalescing一词源自拉丁语,意思是“连接在一起”。特别是它在物理化学中指的是一种现象,其中分散在另一种不混溶液体中的液体小滴倾向于加入较大的滴,形成较大的聚集体;这被称为“聚结”。

在 C# 上下文中,对于扩展,这种“连接”发生在变量之间,这要null coalescing operator归功于.

于 2019-05-20T15:17:42.543 回答
0

这是一个非常古老的问题,但我想添加一个答案。

而且我认为 C# 语言设计者从 T-SQL 函数COALESCE中得到了这个词。

在英语 Stack Exchange 上对“ SQL 中合并的含义”问题的评论在我看来很好地解释了 SQL 中函数的含义:

SQL 函数实际上是 null-coalescence 的简写。我会说这是完全正确的:null-coalescence 是此处突出显示的含义的子类型。不同之处仅在于用于形成结果整体的两个元素不是这样组合,而是比较和选择:如果第一个元素为 NULL(即纯虚无),则忽略它;否则,第二个元素被忽略。 所以本质上它“合并”(包含)null 到另一个元素中。 这有点延伸了原始含义,但似乎确实是基于它的发展。

于 2021-10-04T00:45:31.120 回答