問題タブ [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.
c# - 二重疑問符('??')と同じ変数を割り当てる場合
次のSEの回答を参照してください。
書くとき
それはと同じです
それはそれを意味しますか
パフォーマンスの面で優先されますか?
または、同じオブジェクトが表記に含まれている場合、コンパイラがコードを最適化すると想定でき??
ますか?
templates - Play 2.x の null-safe 合体 (テンプレートでの NPE の回避)
Play 1.x では&{task?.server?.name}
、サーバー名が存在する場合はそれを出力したり、 nulltask
またはtask.server
null の場合は何も出力したりできませんでした。2.x の scala テンプレートで同じ結果を得るにはどうすればよいですか?
Scala で一般的にこれを行うことについて、いくつかの質問を見つけました。
ただし、これらのソリューションはかなり冗長であるか、独自の演算子を定義する必要があります。Play はこれを行う簡単な方法を提供していますか? または、自分で演算子を定義する必要がある場合、Play が見つけられるようにどこに配置すればよいでしょうか? (私はこの時点で Scala についてほとんど何も知りませんが、学ぼうとしています)
c# - c#null文字列?
私は以下を持っていました:
これは問題なく戻りますTom Jones
。
name.Firstがnullまたはname.Lastがnullの場合、次のようになります。
奇妙なのは、それが戻るだけだということTom
です。これはなぜですか。また、名前の名前がデフォルトで空の文字列になるように修正するにはどうすればif null
よいですか。
c# - null合体演算子を理解する(??)
Nullable<decimal>を返すゲッター/セッターWebControl
を実装するカスタムがあります.Value
これは、クライアント側でフィルタリングされたテキストボックスです(TextBox
JavaScriptが含まれているサブクラスと、値を設定/取得するためのサーバー側のロジックが含まれています)
これがそのコントロールのゲッターとセッターです。
私が見ている問題は、このステートメントからの出力です。
uxAmount.Value
10000を返すと、金額が「0」に設定されているのがわかります。
これは私が期待したように機能しました(ケーシングの変更を許してください):
また、Linq2Sqlデータコンテキストで定義されたUDF関数をnull合体演算子とともに呼び出すときにこの動作を(最近)見ました。つまり、UDF呼び出しが期待値を返すことはわかっていましたが、代わりにRHS値を取得していました。
さらに混乱しますが、時計でuxAmount.Valueを評価すると、タイプが10000になりNullable<decimal>
ます。
これが私が試したいくつかの表現です:
次に、上記の4に続いてこの式を追加しました
今
最後の呼び出しは常に0のようですが、 ( aを使用して上記のgetter / setterのようuxAmount.Value
に解析されます。ブレークポイントで停止し、この値を操作できるスレッドは他にありません。.Text
TryParse
定数は整数であり、型変換の問題が疑われたため、定数を10進数にするためにM接尾辞を使用していることに注意してください。
何か案は?
LHSとRHSの両方の値は安定しており、既知であるように見えます。
--編集--VS2010からのいくつかのスクリーングラブ
c# - C# で `??` 演算子をオーバーロードすることは可能ですか?
演算子のオーバーロードに関するこのMSDN ドキュメントを読みました。
その例では、使用された演算子は+
であり、他の演算子または-
を定義することもできます。*
/
??
次のような文字列に使用する演算子をオーバーロードしたい
それ以外の
文字列をオブジェクトに変換して を使用して比較したくありません??
。
??
MSDNが言うように、null許容値型に使用されることは知っています:
?? 演算子は null 合体演算子と呼ばれ、null 許容値型または参照型の既定値を定義するために使用されます。
オペランドが null でない場合は左側のオペランドを返します。それ以外の場合は、右側のオペランドを返します。
C# でこの演算子をオーバーロードできるかどうかお尋ねしたいと思います。上記の例は、 を使用する必要がある場合の簡単な状況??
です。
asp.net - 複数のモジュールにわたって(http)コンテキストを維持する
現在のを使用する必要がある静的関数を持つクラスがありますHttpContext
。これらの関数を使用するたびにオブジェクトを送信する代わりに、別のアプローチを試しました。私はそのようなプロパティを構築しました:
http
私が自分のとして使用する関数でHttpContext
。
不安定そうなもの。これに問題はありますか?
更新: これはうまく機能することがわかりました
説明をお願いします
c# - Null 合体演算子
次のコードがあります。
a
との両方b
が入力されているので、 4c
の結果が得られることを期待しています。
ただし、得られる結果は2であり、その場合は2ではなく1b
と見なされます。
この動作の背後にある理由を知っている人はいますか?
c# - C#?? null 合体演算子 LINQ
LINQ を使用して XML ファイルをカスタム オブジェクトに解析するときに、NULL 値がないようにしようとしています。
Scott Gu's blogでこれに対する優れた解決策を見つけましたが、何らかの理由で整数に対しては機能しません。同じ構文を使用したと思いますが、何かが足りないようです。ああ、何らかの理由で、ノードが空でない場合に機能します。
以下は私のコードの抜粋です。
エラーメッセージは次のとおりです。
入力文字列は、正しい形式ではありませんでした。
誰かが私が間違っていることについての手がかりを持っている場合は、助けてください:)
編集:XMLの一部(奇妙な名前ですが、選択によるものではありません)
c# - 「If」条件は??よりも優れていますか?とキャスティング
同じ機能に対して次の2つのアプローチがあります。1つは「if」条件を使用し、もう1つは「??」を使用します。とキャスティング」。どちらのアプローチが良いですか?なぜですか?
コード:
アップデート
回答に基づいて、以下の利点があります ??
- 読みやすさの向上
- プログラムフローの分岐深度の減少(循環的複雑度の減少)
注:オブジェクトとしてキャストするコストはごくわずかです。
参照