問題タブ [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# - C# の null 合体演算子 (??) に相当する Perl はありますか?
私は本当にC#が好きになりました?? オペレーター。そして、ある言語で何か便利なものがある場合、それはおそらく Perl にもあるという事実に、私はかなり慣れています。
しかし、私は見つけることができません?? Perl で同等です。ありますか?
c# - nullリストをlinqの空のリストのように扱うにはどうすればよいですか?
以下は、いくつかのlinqpadテストコードです。これを実行すると、「item」の2番目のインスタンスに空のリストではなくサブアイテムのnullリストがあるため、エラーが発生します。
両方の状況(nullまたは空のリスト)をまったく同じように扱いたいのですが、リストにnullチェックを入れて、nullがあるときに空のリストを初期化するよりもクリーンな方法があるのではないかと思いました。
言い換えれば、私はこれを行うことができます:
しかし、それは少し醜いので、どうすればそれを改善できるのだろうかと思いました。
ボーナスの質問として、この同じlinqクエリをラムダとして表し、nullを同じように扱うことができますか?
乾杯、クリス
c# - 合体を含む一般的なC#イディオム?? オペレーター
合体演算子を含む、少なくとも 2 つの一般的な C# イディオムは誰もが知っています。
シングルトンのもの:
そしてチェーン1:
読みやすく、一貫性があり、使用する価値があり、コードで認識できます。
しかし、残念ながらこれだけです。場合によっては、拡張または変更が必要になります。時々、特定のケースを見たときにそれらを使用しますが、他のプログラマーが本当に簡単に読めるかどうかわからないため、常に使用するのをためらっています。
他に知っている人はいますか?Asp.net、EF、LINQなど、合体が許容されるだけでなく注目に値するものなど、より具体的な使用法があれば幸いです。
c# - ?? 空の文字列を結合しますか?
""
文字列の空 (inまたは null など) と条件演算子をチェックすることがますます増えています。
現在の例:
これは単なる拡張メソッドであり、次と同等です。
空でnullで??
はないため、うまくいきません。のstring.IsNullOrEmpty()
バージョンは??
完璧なソリューションです。これを行うためのよりクリーンな方法が必要であると考えています(願っています!)が、それを見つけるのに途方に暮れています。
.Net 4.0だけであっても、これを行うためのより良い方法を知っている人はいますか?
c# - C#の?? =演算子についてどう思いますか?
C#は?? =演算子のようなものをサポートすると思いますか?
これの代わりに:
次のように書くことができるかもしれません:
今、私は使用することができました(しかし、それは私にはよく読めないようです):
c# - C#のヌル合体演算子と演算子&&
次の場合、演算子??
と演算子を一緒に使用することは可能ですか?&&
これは次を意味します:
any
nullの場合this.Any.HasValue
、false
- 値がある場合
any
は、別のブールプロパティを考慮して値を返します。Any && SomeBool
c# - null合体演算子を否定する
.Trim() を使用する必要がある文字列がたくさんありますが、null にすることができます。次のようなことができれば、はるかに簡潔になります。
基本的に、左側の部分が null でない場合は右側の部分を返し、それ以外の場合は null 値を返すだけです。三項演算子を使用することになりましたが、この目的で null 合体演算子を使用する方法はありますか?
c# - null合体演算子の「反対」はありますか?(…どの言語でも?)
null合体は大まかに次のように解釈されますreturn x, unless it is null, in which case return y
私はしばしば必要ですreturn null if x is null, otherwise return x.y
使うことができますreturn x == null ? null : x.y;
悪くはありませんがnull
、途中でいつも気になります-それは不必要に思えます。私はreturn x :: x.y;
、のようなものを好みます。ここで、後に続くものは、その::
前にあるものが評価されない場合にのみ評価されnull
ます。
これは、nullの合体とはほぼ逆で、簡潔なインラインnullチェックと混ざり合っているように見えますが、C#にはそのような演算子がないことはほぼ確実です。
そのような演算子を持つ他の言語はありますか?もしそうなら、それは何と呼ばれていますか?
(C#でメソッドを記述できることは知っています。使用return NullOrValue.of(x, () => x.y);
していますが、もっと良いものがあれば、それも見てみたいです。)
dictionary - キーインデックスを使用してアイテムをディクショナリに割り当てる/追加する方法は?
次のように、キー インデックスを使用して項目を Dictionary に割り当て/追加したいと考えました。
しかし、結果は次のようになります: 「指定されたキーは辞書に存在しませんでした。」
null合体を使用して、セッションに値を割り当てる方法と同じように、この辞書に値を割り当てる方法はありますか?
ありがとう
編集:私は実際にディクショナリの子クラスからインデクサーをオーバーライドしようとしましたが、役に立ちませんでした。IDictionary インターフェイスの実装は、以下のコードの機能 (つまり、キーが見つからない場合は null を返す) だけが必要なので、多すぎるように思えます。したがって、次のような拡張機能を使用できると思います。
しかし、それは機能していないか、コンパイルさえしていません。
このインデクサー機能を再利用するための他の簡単な方法はありますか? どうもありがとう。
c# - Null 合体演算子とラムダ式
コンストラクター内に記述しようとした次のコードを見てください。
コードはコンパイルされません-「無効な表現用語」などです。
対照的に、それはコンパイルされ、私はそれを使用することができます:
しかし、なぜこの構文が許可されていないのか疑問に思っています。
何か案は?