問題タブ [null-coalescing-operator]

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 に答える
84062 参照

c# - 二重疑問符('??')と同じ変数を割り当てる場合

次のSEの回答を参照してください。

書くとき

それはと同じです

それはそれを意味しますか

パフォーマンスの面で優先されますか?

または、同じオブジェクトが表記に含まれている場合、コンパイラがコードを最適化すると想定でき??ますか?

0 投票する
1 に答える
740 参照

templates - Play 2.x の null-safe 合体 (テンプレートでの NPE の回避)

Play 1.x では&{task?.server?.name}、サーバー名が存在する場合はそれを出力したり、 nulltaskまたはtask.servernull の場合は何も出力したりできませんでした。2.x の scala テンプレートで同じ結果を得るにはどうすればよいですか?

Scala で一般的にこれを行うことについて、いくつかの質問を見つけました。

ただし、これらのソリューションはかなり冗長であるか、独自の演算子を定義する必要があります。Play はこれを行う簡単な方法を提供していますか? または、自分で演算子を定義する必要がある場合、Play が見つけられるようにどこに配置すればよいでしょうか? (私はこの時点で Scala についてほとんど何も知りませんが、学ぼうとしています)

0 投票する
4 に答える
257 参照

c# - c#null文字列?

私は以下を持っていました:

これは問題なく戻りますTom Jones

name.Firstがnullまたはname.Lastがnullの場合、次のようになります。

奇妙なのは、それが戻るだけだということTomです。これはなぜですか。また、名前の名前がデフォルトで空の文字列になるように修正するにはどうすればif nullよいですか。

0 投票する
2 に答える
1125 参照

c# - null合体演算子を理解する(??)

Nullable<decimal>を返すゲッター/セッターWebControlを実装するカスタムがあります.Value

これは、クライアント側でフィルタリングされたテキストボックスです(TextBoxJavaScriptが含まれているサブクラスと、値を設定/取得するためのサーバー側のロジックが含まれています)

これがそのコントロールのゲッターとセッターです。

私が見ている問題は、このステートメントからの出力です。

uxAmount.Value10000を返すと、金額が「0」に設定されているのがわかります。

これは私が期待したように機能しました(ケーシングの変更を許してください):

また、Linq2Sqlデータコンテキストで定義されたUDF関数をnull合体演算子とともに呼び出すときにこの動作を(最近)見ました。つまり、UDF呼び出しが期待値を返すことはわかっていましたが、代わりにRHS値を取得していました。

さらに混乱しますが、時計でuxAmount.Valueを評価すると、タイプが10000になりNullable<decimal>ます。

これが私が試したいくつかの表現です:

次に、上記の4に続いてこの式を追加しました

最後の呼び出しは常に0のようですが、 ( aを使用して上記のgetter / setterのようuxAmount.Valueに解析されます。ブレークポイントで停止し、この値を操作できるスレッドは他にありません。.TextTryParse

定数は整数であり、型変換の問題が疑われたため、定数を10進数にするためにM接尾辞を使用していることに注意してください。

何か案は?

LHSとRHSの両方の値は安定しており、既知であるように見えます。

--編集--VS2010からのいくつかのスクリーングラブ

amount3の値を示すコードをステップスルーします

ダイアログと変数の状態に関する詳細を見る

0 投票する
3 に答える
369 参照

c# - C# で `??` 演算子をオーバーロードすることは可能ですか?

演算子のオーバーロードに関するこのMSDN ドキュメントを読みました。

その例では、使用された演算子は+であり、他の演算子または-を定義することもできます。*/

??次のような文字列に使用する演算子をオーバーロードしたい

それ以外の

文字列をオブジェクトに変換して を使用して比較したくありません??

??MSDNが言うように、null許容値型に使用されることは知っています:

?? 演算子は null 合体演算子と呼ばれ、null 許容値型または参照型の既定値を定義するために使用されます。

オペランドが null でない場合は左側のオペランドを返します。それ以外の場合は、右側のオペランドを返します。

C# でこの演算子をオーバーロードできるかどうかお尋ねしたいと思います。上記の例は、 を使用する必要がある場合の簡単な状況??です。

0 投票する
1 に答える
122 参照

asp.net - 複数のモジュールにわたって(http)コンテキストを維持する

現在のを使用する必要がある静的関数を持つクラスがありますHttpContext。これらの関数を使用するたびにオブジェクトを送信する代わりに、別のアプローチを試しました。私はそのようなプロパティを構築しました:

http私が自分のとして使用する関数でHttpContext

不安定そうなもの。これに問題はありますか?

更新: これはうまく機能することがわかりました

説明をお願いします

0 投票する
3 に答える
246 参照

c# - Null 合体演算子

次のコードがあります。

aとの両方bが入力されているので、 4cの結果が得られることを期待しています。

ただし、得られる結果は2であり、その場合は2ではなく1bと見なされます。

この動作の背後にある理由を知っている人はいますか?

0 投票する
6 に答える
1615 参照

c# - C#?? null 合体演算子 LINQ

LINQ を使用して XML ファイルをカスタム オブジェクトに解析するときに、NULL 値がないようにしようとしています。

Scott Gu's blogでこれに対する優れた解決策を見つけましたが、何らかの理由で整数に対しては機能しません。同じ構文を使用したと思いますが、何かが足りないようです。ああ、何らかの理由で、ノードが空でない場合に機能します。

以下は私のコードの抜粋です。

エラーメッセージは次のとおりです。

入力文字列は、正しい形式ではありませんでした。

誰かが私が間違っていることについての手がかりを持っている場合は、助けてください:)

編集:XMLの一部(奇妙な名前ですが、選択によるものではありません)

0 投票する
2 に答える
4877 参照

c# - Null 合体、三項または If ステートメントのどちらがより速く動作しますか

使用しますか?? null 値に対して式を評価する演算子。例:

if上記の式で使用した場合と同じように機能するステートメントも使用しました

また?: 三項演算子...

null合体は構文が正確であることは知っていますが、両方の中でどちらがより速くコンパイルされ、より速く実行されますか?またその理由は?

0 投票する
4 に答える
478 参照

c# - 「If」条件は??よりも優れていますか?とキャスティング

同じ機能に対して次の2つのアプローチがあります。1つは「if」条件を使用し、もう1つは「??」を使用します。とキャスティング」。どちらのアプローチが良いですか?なぜですか?

コード:

アップデート

回答に基づいて、以下の利点があります ??

  1. 読みやすさの向上
  2. プログラムフローの分岐深度の減少(循環的複雑度の減少)

注:オブジェクトとしてキャストするコストはごくわずかです。

参照

  1. ヌル結合演算子-なぜキャストするのですか?