問題タブ [conditional-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 に答える
6805 参照

perl - Perlの三項条件演算子の問題内での割り当て

私のプログラムのこのPerlコードのスニペットは、間違った結果をもたらしています。

の値に関係なく$condition、出力は常に3です。どうしてですか?

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

c# - Nullableを使用した条件付き演算子の割り当てタイプ?

私はよくこのようなことをしたいと思っています(これEmployeeNumberNullable<int>、列がNULL値を許可するLINQ-to-SQL dbmlオブジェクトのプロパティであるためです)。残念ながら、コンパイラはそれを感じています

'null'と'int'の間に暗黙の変換はありません

どちらの型も、それ自体でnull許容整数への代入演算で有効ですが。

nullでない場合は文字列でインライン変換を行う必要があるため、null合体演算子を使用することは私が見る限りのオプションではありませ.Textん。

私の知る限り、これを行う唯一の方法は、ifステートメントを使用するか、2つのステップで割り当てることです。この特定のケースでは、オブジェクト初期化構文を使用したかったので、非常にイライラします。この割り当ては初期化ブロックに含まれます...

よりエレガントな解決策を知っている人はいますか?

0 投票する
5 に答える
3695 参照

c# - + null許容型の場合の省略形(C#)

次のリターン

'double'と'<null>'の間に暗黙の変換がないため、条件式のタイプを判別できません。


aDoubleでのラウンドトリップの代わりにaNullableBoolを使用できない理由は、aNullableDoubleが生成されたEntityFrameworkクラスのプロパティであり、アウトパーとして使用できないためです。

0 投票する
54 に答える
50708 参照

conditional-operator - 三元化するか、三元化しないか?

私は個人的に三項演算子の支持者です: () ? : ; 私はそれがその場所であることを認識していますが、それを使用することに完全に反対している多くのプログラマーと、あまりにも頻繁に使用しているプログラマーに出くわしました.

あなたの気持ちはどうですか?それを使用して、どのような興味深いコードを見ましたか?

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

c# - このコードがC#で無効なのはなぜですか?

次のコードはコンパイルされません。

エラー1「System.DBNull」と「string」の間に暗黙の変換がないため、条件式のタイプを判別できません

これを修正するには、次のようなことを行う必要があります。

これは確かに合法であるため、このキャストは無意味に思えます。

三項分岐のタイプが異なる場合、コンパイラは値をタイプオブジェクトに自動ボックス化しないようですが、同じタイプの場合、自動ボックス化は自動的に行われます。

私の考えでは、最初のステートメントは合法である必要があります...

コンパイラがこれを許可しない理由と、C#の設計者がこれを選択した理由を誰かが説明できますか?これはJavaでは合法だと思います...これは確認していませんが。

ありがとう。

編集: JavaとC#がこれを異なる方法で処理する理由、これを無効にするC#のシーンの下で何が起こっているのかを理解してください。私は三元の使い方を知っていて、例をコーディングするための「より良い方法」を探していません。C#の3値のルールは理解していますが、なぜ...

編集(Jon Skeet):この質問にはボクシングが含まれていないため、「autoboxing」タグを削除しました。

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

c# - C#では、条件演算子をnull許容型に暗黙的にキャストできないのはなぜですか

暗黙のキャストが失敗する理由について興味があります...

代わりに明示的なキャストを実行する必要がある理由

コンパイラーには、暗黙のキャスト決定を行うために必要なすべての情報があるように思えますね。

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

ruby - 三項条件演算子を使用した FizzBu​​zz

Ruby の条件付き式について調べてきました。しかし、古典的な FizzBu​​zz の問題を定義するには、よく理解できない問題に出くわしました。私は FizzBu​​zz の問題を理解しており、三項演算子を利用した次の簡単な解決策を見つける前に、自分自身も書きました。このチェーンが FizzBu​​zz の問題を解決するためにどのように機能するかを誰かが説明してくれれば、非常にありがたいです :)

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

c# - 条件付き三項演算子を使用してラムダ間に条件付きで Func<> を割り当てるにはどうすればよいですか?

通常、条件演算子を使用する場合の構文は次のとおりです。

派手なことは何もなく、かなり簡単です。

では、Lambda を Func 型に割り当てるときにこれを使用してみましょう。説明させてください:

それは同じ構文であり、動作するはずですか? 右?どういうわけかそうではありません。コンパイラは、次のような不可解なメッセージを表示します。

エラー 1 'ラムダ式' と 'ラムダ式' の間に暗黙的な変換がないため、条件式の型を特定できません

次に、構文を変更したところ、次のように機能ました。

なぜ最初の方法でうまくいかないのか不思議です。

(補足: int 値と null を比較するときは、object.Equals を使用するだけであることがわかったため、このコードは不要になりました)

0 投票する
16 に答える
69627 参照

c# - null 合体演算子のユニークな使用方法

C# でnull 合体演算子を使用する標準的な方法は、既定値を設定することです。

しかし、他に何??に使用できますか?以下よりも簡潔で読みやすいことを除けば、三項演算子ほど有用ではないようです。

したがって、null合体演算子について知っている人はほとんどいないことを考えると...

  • 他に使っ??たことありますか?

  • ??必要ですか、または三項演算子を使用する必要がありますか (ほとんどの人が使い慣れています)

0 投票する
5 に答える
59765 参照

c# - ?のnull許容型の問題:条件演算子

誰かがこれがC#.NET2.0で機能する理由を説明できますか?

...しかし、これはしません:

後者の形式では、「'<null>'と'System.DateTime'の間に暗黙の変換がないため、条件式のタイプを判別できません」というコンパイルエラーが発生します。

前者を使用できないわけではありませんが、2番目のスタイルは残りのコードとより一貫性があります。