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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
967: (スププ Sd1f-ON65) 2018/08/03(金)13:57 ID:tLm3HHgqd(2/2) AAS
あるんだ。
何が何でもVSの中で過ごせるように出来てんだなぁ、やっぱ。
968: (ワッチョイ cfe8-Xflc) 2018/08/03(金)19:55 ID:nRWExeYy0(1) AAS
C#よりVBのが人気って本当ですか?
969: (ブーイモ MM67-vpSm) 2018/08/03(金)21:05 ID:C7OuABnlM(1) AAS

970
(2): (ワッチョイ 6f9e-QB3m) 2018/08/03(金)22:34 ID:pBzQtwq10(1) AAS
if(aaa.bbb.ccc ==null){
 ・・・
}
だと、aaaかaaa.bbbがnullの時にNUll参照エラー出ますよね。
じゃあ、
if(aaa!=null && aaa.bbb!=null && aaa.bbb.ccc ==null){
こう書くしかないですか?
省1
971: (ワッチョイ cf81-TkmH) 2018/08/03(金)22:36 ID:KKU0/EVq0(1) AAS
null条件演算子が使えるなら使え
どのバージョンで入ったかは忘れた(役立たず)
972
(1): (ワッチョイ b3e3-HuCS) 2018/08/03(金)22:43 ID:ls6gmcCr0(1/2) AAS
>>970
なんか下のコードって
動いたら不具合臭くない?

if(コードA && コードB && コードC)

ってあったときにコードAがfalseだからってコードCが実行されないとおかしくなる処理もあるんじゃね?
コードABCがそれぞれ結果を保持するような動作をするときもにょる

言語仕様がどうなってようと書いたやつは死刑
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 のように
省1
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ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.865s*