[過去ログ] ふらっと C#,C♯,C#(初心者用) Part138 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): (ワッチョイ 369a-msj4) 2018/06/05(火)19:32 ID:70UTtyrn0(1) AAS
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■関連スレ
C#, C♯, C#相談室 Part93
2chスレ:tech
■前スレ
ふらっと C#,C♯,C#(初心者用) Part137
2chスレ:tech
■コードを貼る場合は↓を使いましょう。
外部リンク:ideone.com
外部リンク:dotnetfiddle.net

■情報源
外部リンク[aspx]:msdn.microsoft.com
外部リンク:docs.microsoft.com
外部リンク[aspx]:msdn.microsoft.com
外部リンク:referencesource.microsoft.com VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
973
(2): (ワッチョイ ffa6-F9eT) 2018/08/03(金)22:57 ID:5FtEqA870(1/2) AAS
>>972
横からですが
> ってあったときにコードAがfalseだからってコードCが実行されないとおかしくなる処理もあるんじゃね?
そういう場合は && ではなく & を使うと良いようです。
よかったら「短絡評価」で検索してみてください。
974
(2): (スププ Sd1f-9U+n) 2018/08/03(金)23:23 ID:zsmRuSg9d(1) AAS
aaa?.bbb?. ccc == null
975
(1): (ワッチョイ b3e3-HuCS) 2018/08/03(金)23:36 ID:ls6gmcCr0(2/2) AAS
>>973
コードABCがそれぞれ判定結果を保持する処理をしてたら余計なお世話じゃねーか?
976
(1): (ワッチョイ ffa6-F9eT) 2018/08/03(金)23:59 ID:5FtEqA870(2/2) AAS
>>975
>>973
確かにその場合は短絡評価は余計なお世話と言うか、短絡評価を使うことは間違ってますね。
ただ、>>970 の例では副作用がないのは明らかですし、
C# で短絡評価が用意されている以上、それを使うなというのは酷な話のようにも思います。

今回の問題に関しては >>974 のような & も && も使わない解決策もありますが、
Microsoft の Reference Source でも obj != null && ((int)obj) != 0 のように
短絡評価が積極的に使われてますので、そのようなコードは認められるべきではないでしょうか。
977: (ワッチョイ b3e3-HuCS) 2018/08/04(土)00:26 ID:aY8Umh7+0(1/3) AAS
>>976
人に優しいコードじゃない
見たらちょっと考えちゃうだろ
俺はそれだけで避ける
978: (ワッチョイ cf81-TkmH) 2018/08/04(土)00:53 ID:b3FMlOEa0(1) AAS
なんかnull条件演算子が短絡じゃないような言い方をしている人がいますが
null条件演算子は短絡評価なので念のため

仕様の是非については関知しません
勝手にすればよろしい
979
(2): (ワッチョイ 6f9e-QB3m) 2018/08/04(土)09:01 ID:n5GHf3Ra0(1/2) AAS
>>974
もし
aaa.bbb= null
だった場合に、
if(aaa?.bbb?. ccc == null)
がtrueになることは無いですか?
980
(3): (ワッチョイ 7317-Xflc) 2018/08/04(土)09:42 ID:wpkf7FcP0(1/2) AAS
ならない
もしtrueにしたいのなら if(aaa?.bbb == null || aaa?.bbb?.ccc == null) にする
981: (ワッチョイ b3e3-Xflc) 2018/08/04(土)09:49 ID:L3XBWYHn0(1) AAS
>>979
なるんじゃね?
982: (ワッチョイ b3e3-HuCS) 2018/08/04(土)10:12 ID:aY8Umh7+0(2/3) AAS
>>980
ならないんだ?
なんかあんま使わんほうがいいな
この辺の仕様決めた奴って滅茶苦茶だな
983
(1): (ワッチョイ 7317-Xflc) 2018/08/04(土)10:16 ID:wpkf7FcP0(2/2) AAS
ごめん確認したらtrueになったわ
984
(1): (ワッチョイ 43c9-Xflc) 2018/08/04(土)10:18 ID:c4yFtWHQ0(1) AAS
Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
null判定の記述省略が目的だと思ってたわ
985: (ワッチョイ b3e3-HuCS) 2018/08/04(土)10:18 ID:aY8Umh7+0(3/3) AAS
>>983
なるのかよ
986
(1): (ブーイモ MM67-Eno9) 2018/08/04(土)10:46 ID:Q3NLupVYM(1) AAS
?.は使える場面が限られすぎてるんだよな
主語が違っても使えるようにしてほしい
employee ?& company.Fire(employee)
// employee != null ? company.Fire(employee) : null と等価
みたいな
987: (ワッチョイ ffb3-6jVY) 2018/08/04(土)12:29 ID:AH7fLvgn0(1) AAS
>>984
> Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
そんなもん何をやりたいかによるだろ

> null判定の記述省略が目的だと思ってたわ
Null条件演算子自体の目的はそれでいいと思うが
988: (ワッチョイ 6f9e-QB3m) 2018/08/04(土)12:36 ID:n5GHf3Ra0(2/2) AAS
>>986
>employee ?& company.Fire(employee)

?& とは何ですか?
ググルキーワード教えて下さい。
989: (ワッチョイ 7f60-9U+n) 2018/08/04(土)21:50 ID:sXotmGKy0(1) AAS
>>979
trueになるけどそれでだめなのかよ
だったら
aaa?.bbb != null && aaa.bbb.ccc == null
990: (ワッチョイ 8f9f-myUF) 2018/08/05(日)15:20 ID:wZ9wDNsY0(1) AAS
俺なら分けてコメントでも書いておくかな
if(aaa == null || aaa.bbb= null){
// Hack aaaとbbbがnullでもOKで、その時は何もしない。設計がゴミ
}
else if(aaa.bbb.ccc == null){
}
991
(1): (オッペケ Src7-mXgF) 2018/08/05(日)16:43 ID:RYmTh0/wr(1) AAS
再帰してNullチェックする関数一つ書けばいいのでは?
992: (ワッチョイ 639a-7JJt) 2018/08/05(日)17:47 ID:76QdhMr90(1) AAS
どうでもいいことになるとレスが増えるな
>>980
テンプレ読んでいるだろ。スレたて
993: (ワッチョイ 7317-Xflc) 2018/08/05(日)18:17 ID:DE014Z3K0(1) AAS
建てられなかったので別の方お願い
994: (ワッチョイ ffb3-6jVY) 2018/08/05(日)18:21 ID:C8NdcnMU0(1) AAS
>>991
再帰?
何言ってるんだ?
995: (ワッチョイ 43d2-j3zu) 2018/08/05(日)18:38 ID:hZh56vqa0(1) AAS
再帰でnullチェックする関数気になるな
996
(1): (ワッチョイ b38d-0Uuo) 2018/08/05(日)19:30 ID:yb/HDiEo0(1) AAS
コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?

時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています
997: (ブーイモ MM67-Eno9) 2018/08/05(日)19:30 ID:uVIrroLRM(1/3) AAS
こうかな
// nullが見つかった深さを返す
static int? AmazingNullCheck(int level, dynamic obj, params Func<dynamic, dynamic>[] next) =>
 obj == null ? level : next.FirstOrDefault()?.Invoke(level + 1, obj, next.Skip(1).ToArray());

if (AmazingNullCheck(0, a, a=>a.b, b=>b.c) == 2)
 // a.b.c == null
998: 997 (ブーイモ MM67-Eno9) 2018/08/05(日)19:37 ID:uVIrroLRM(2/3) AAS
訂正
obj == null ? level : !next.Any() ? null : AmazingNullCheck(level + 1, next.First().Invoke(obj), next.Skip(1).ToArray());
かな
999
(1): (ブーイモ MM67-Eno9) 2018/08/05(日)19:43 ID:uVIrroLRM(3/3) AAS
>>996
特に何もしなくてもCtrl + Cで止まるだろ?
そのときに独自の処理を挟みたいなら Console.CancelKeyPress イベントを使う
1000: (ワッチョイ 338a-vpSm) 2018/08/05(日)19:45 ID:3KDX12Zf0(1) AAS
1000ならjava民絶滅
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 0時間 13分 9秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
外部リンク:premium.5ch.net

▼ 浪人ログインはこちら ▼
外部リンク[php]:login.5ch.net
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 1.159s*