?? Нулевой оператор объединения -> Что означает объединение? - PullRequest
40 голосов
/ 21 апреля 2009

У меня возникает соблазн лгать и говорить, что английский - это мой второй язык, но правда в том, что я просто понятия не имею, что означает «объединение». Я знаю, что ?? делает в C #, но название не имеет смысла для меня.

Я посмотрел слово и понял, что это синоним слова "присоединиться". «Оператор нулевого присоединения» все еще не имеет смысла.

Может ли кто-нибудь просветить меня?

Ответы [ 7 ]

33 голосов
/ 21 апреля 2009

У меня возникает соблазн лгать и говорить, что английский - это мой второй язык ... но правда в том, что я просто понятия не имею, что означает "объединение". Я знаю что ?? 'делает' в C #, но название не имеет смысла для меня.

Я посмотрел слово и понял, что это синоним слова "присоединиться".

Я бы сказал, что более точное описание "слияния" будет "формировать одну вещь из разных элементов". «Объединение» оператора ?? происходит потому, что одно значение всегда разрешается из одного из двух значений. Первое ненулевое значение является результатом.

18 голосов
/ 21 апреля 2009

Объединение - это когда у вас есть более одного предмета, а затем вы получаете ровно один - либо объединяя предметы, либо выбирая один предмет из группы. В случае оператора ?? вы выбираете первое ненулевое значение пары значений.

8 голосов
/ 21 апреля 2009

Вот некоторые другие определения coalesce, которые могут иметь смысл. Из Ответов видно, что это означает «расти вместе, слиться» или «объединиться, чтобы сформировать одно целое». Другими словами, возьмите последовательность предметов и сделайте один из них. Итак, учитывая, что null в этом обсуждении означает «пустой», объединение null с непустым дает вам непустое.

5 голосов
/ 21 апреля 2009

Значение принимает первое ненулевое значение.

2 голосов
/ 21 апреля 2009

http://www.merriam -webster.com / словарь / COALESCE

Я думаю, что лучшее определение - это «объединиться ради общего конца». Так что, по сути, собираем все вместе, чтобы получить лучшее. С точки зрения программирования это скорее получение первого лучшего предмета.

1 голос
/ 24 декабря 2013

Вы можете начать с этого видео на YouTube http://www.youtube.com/watch?v=YJGGmTNHPeo

Если вы видите английское значение объединения, оно говорит: «объединяйтесь». Оператор объединения возвращает первое значение NON-NULL из цепочки.

Например, ниже приведен простой объединяющий код, который объединяет четыре строки. Так что, если «str1» равен нулю, он будет пытаться использовать «str2», если «str2» равен нулю, он будет пытаться использовать «str3» и т. Д. с ненулевым значением.

string final =str1 ??  str2 ?? str3 ??
0 голосов
/ 20 мая 2019

Объединение слово происходит от латинского языка и означает «объединить» что-то. В частности, в физической химии оно обозначает явление, при котором маленькие капли жидкости, диспергированные в другой несмешивающейся жидкости, имеют тенденцию соединяться с более крупными, образуя более крупные агрегаты; это называется "слияние".

В контексте C # для расширения это «соединение» происходит между переменными благодаря null coalescing operator, но результирующее значение зависит от того факта, что первый операнд равен нулю или нет, если это так, то полученное значение будет быть вторым операндом.

...