ふらっと C#,C♯,C#(初心者用) Part138

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん (ワッチョイ 369a-msj4)2018/06/05(火) 19:32:42.28ID:70UTtyrn0
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください

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

■関連スレ
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part137
https://mevius.5ch.net/test/read.cgi/tech/1523004019/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/

■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured

0952デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 19:59:47.82ID:R3xyuwRy0
しかし、今時、30年前の手法でやりましょうって笑えるよな。開発の歴史を全く知らないのだろうか。
それが今の流行ならWindows10やC#も流行ってるはず。だが見向きもされない。むしろ敬遠されてる。

0953デフォルトの名無しさん (スップ Sd1f-VIZ/)2018/08/02(木) 20:02:53.83ID:vZ9OA8Bgd
>>950
なるほどだからあなたは採用されないのですね

0954デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:03:34.69ID:R3xyuwRy0
>>951
はぁ? むしろボーランドこそ革新的なIDEを普及させたんじゃねーか。そんなことも知らないとか無知すぎる。
それがなんでまたGUIは邪魔なんでテキストでやりましょうってw アホですか。どうせエディタもvim設定なんだろ。

時代遅れの骨董品どもが。

0955デフォルトの名無しさん (ワッチョイ cfe8-Xflc)2018/08/02(木) 20:03:36.14ID:L2LG0yaW0
え、わからない
VBとC#どっちがいいの?

0956デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:04:45.73ID:R3xyuwRy0
>>953
キミは煽りばかり全くC#やVSの話はしないのですね。馬鹿がバレるのが怖いんですか?

0957デフォルトの名無しさん (ワッチョイ cf81-TkmH)2018/08/02(木) 20:04:48.57ID:uMr/Fq0h0
ゴミをつついて遊ぶの止めてくれるかなサル君

0958デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:07:45.63ID:R3xyuwRy0
ワッチョイスレって単発煽り多すぎて議論にならんな。

必死にでネット繋ぎなおしてると思うと笑えるw >> ワッチョイ cf81

0959デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:09:28.08ID:R3xyuwRy0
ワッチョイって意味ないな。

低脳馬鹿のコード書けない煽り屋とマイナーOSS陣営から流れてきたvi使いの骨董品以外いない。

0960デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:11:37.17ID:R3xyuwRy0
煽りしかしない奴ってなんで内容ないレスばかりするんだろうと思ったんだけど、
キーボードアレルギーか何かで入力がめっちゃ遅いんだと思うわ。
おれが5レスする間に一行しか打てないトロ臭さ。

リアル低スキルじゃん。今まで碌にコード書いてないのがバレバレだな。

0961デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:15:41.97ID:R3xyuwRy0
結局、技術的反論は皆無。これが現実。

今のC#信者は低スキル。今時、テキスト最高ってw COM、.net全否定かよwww

0962デフォルトの名無しさん (ワッチョイ 3383-0Uuo)2018/08/02(木) 20:25:19.02ID:R3xyuwRy0
単発煽りって急に大量に現れて急にみんな消えるよな。

可能性として考えられるのは、ゆとりで低スキルで無職で同一人物。

0963デフォルトの名無しさん (ワッチョイ cf80-F72M)2018/08/02(木) 21:55:18.44ID:6w1GWseD0
>>934
OleDbじゃシート順は無視されるから他の手立てを考える必要がある
https://stackoverflow.com/questions/1164698/using-excel-oledb-to-get-sheet-names-in-sheet-order
xlsxならここのZipArchive使うのとか(他に色々書かれてるコードは意味ないから無視して良い)
System.IO.Compress.PackagingとかOpen Xml SDKとかClosedXMLとか
xlsならNPOIぐらいなんかね あ、上のページにNPOIのサンプルもある

0964デフォルトの名無しさん (スププ Sd1f-ON65)2018/08/03(金) 08:51:02.00ID:tLm3HHgqd
まあVSつかいたい奴は明らかにVSが向いてないシーンでも使いたがるからな。
俺も使い分けてるが、netcoreでも案外VS起動する事の方が多い。nuget探しやすいとかそんなレベルだけど。
どっちでも良いものは割とVS Codeで開くな。
とはいえ、mdのライブプレビューとかVSで出来んのかな?

0965デフォルトの名無しさん (ササクッテロ Spc7-pHBK)2018/08/03(金) 11:29:34.10ID:am/wpoGlp
VSはIDEの機能を利用したいが為だけに使うことがある。

MDプレビュー&編集はメジャーなVS拡張がある

0967デフォルトの名無しさん (スププ Sd1f-ON65)2018/08/03(金) 13:57:43.04ID:tLm3HHgqd
あるんだ。
何が何でもVSの中で過ごせるように出来てんだなぁ、やっぱ。

0968デフォルトの名無しさん (ワッチョイ cfe8-Xflc)2018/08/03(金) 19:55:03.42ID:nRWExeYy0
C#よりVBのが人気って本当ですか?

0969デフォルトの名無しさん (ブーイモ MM67-vpSm)2018/08/03(金) 21:05:33.17ID:C7OuABnlM

0970デフォルトの名無しさん (ワッチョイ 6f9e-QB3m)2018/08/03(金) 22:34:44.79ID:pBzQtwq10
if(aaa.bbb.ccc ==null){
 ・・・
}
だと、aaaかaaa.bbbがnullの時にNUll参照エラー出ますよね。
じゃあ、
if(aaa!=null && aaa.bbb!=null && aaa.bbb.ccc ==null){
こう書くしかないですか?
もっとスッキリ書けませんか?

0971デフォルトの名無しさん (ワッチョイ cf81-TkmH)2018/08/03(金) 22:36:26.80ID:KKU0/EVq0
null条件演算子が使えるなら使え
どのバージョンで入ったかは忘れた(役立たず)

0972デフォルトの名無しさん (ワッチョイ b3e3-HuCS)2018/08/03(金) 22:43:12.49ID:ls6gmcCr0
>>970
なんか下のコードって
動いたら不具合臭くない?

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

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

言語仕様がどうなってようと書いたやつは死刑

0973デフォルトの名無しさん (ワッチョイ ffa6-F9eT)2018/08/03(金) 22:57:30.21ID:5FtEqA870
>>972
横からですが
> ってあったときにコードAがfalseだからってコードCが実行されないとおかしくなる処理もあるんじゃね?
そういう場合は && ではなく & を使うと良いようです。
よかったら「短絡評価」で検索してみてください。

0974デフォルトの名無しさん (スププ Sd1f-9U+n)2018/08/03(金) 23:23:18.87ID:zsmRuSg9d
aaa?.bbb?. ccc == null

0975デフォルトの名無しさん (ワッチョイ b3e3-HuCS)2018/08/03(金) 23:36:42.74ID:ls6gmcCr0
>>973
コードABCがそれぞれ判定結果を保持する処理をしてたら余計なお世話じゃねーか?

0976デフォルトの名無しさん (ワッチョイ ffa6-F9eT)2018/08/03(金) 23:59:44.06ID:5FtEqA870
>>975
>>973
確かにその場合は短絡評価は余計なお世話と言うか、短絡評価を使うことは間違ってますね。
ただ、>>970 の例では副作用がないのは明らかですし、
C# で短絡評価が用意されている以上、それを使うなというのは酷な話のようにも思います。

今回の問題に関しては >>974 のような & も && も使わない解決策もありますが、
Microsoft の Reference Source でも obj != null && ((int)obj) != 0 のように
短絡評価が積極的に使われてますので、そのようなコードは認められるべきではないでしょうか。

0977デフォルトの名無しさん (ワッチョイ b3e3-HuCS)2018/08/04(土) 00:26:40.78ID:aY8Umh7+0
>>976
人に優しいコードじゃない
見たらちょっと考えちゃうだろ
俺はそれだけで避ける

0978デフォルトの名無しさん (ワッチョイ cf81-TkmH)2018/08/04(土) 00:53:29.00ID:b3FMlOEa0
なんかnull条件演算子が短絡じゃないような言い方をしている人がいますが
null条件演算子は短絡評価なので念のため

仕様の是非については関知しません
勝手にすればよろしい

0979デフォルトの名無しさん (ワッチョイ 6f9e-QB3m)2018/08/04(土) 09:01:55.83ID:n5GHf3Ra0
>>974
もし
aaa.bbb= null
だった場合に、
if(aaa?.bbb?. ccc == null)
がtrueになることは無いですか?

0980デフォルトの名無しさん (ワッチョイ 7317-Xflc)2018/08/04(土) 09:42:38.97ID:wpkf7FcP0
ならない
もしtrueにしたいのなら if(aaa?.bbb == null || aaa?.bbb?.ccc == null) にする

0981デフォルトの名無しさん (ワッチョイ b3e3-Xflc)2018/08/04(土) 09:49:39.47ID:L3XBWYHn0
>>979
なるんじゃね?

0982デフォルトの名無しさん (ワッチョイ b3e3-HuCS)2018/08/04(土) 10:12:57.05ID:aY8Umh7+0
>>980
ならないんだ?
なんかあんま使わんほうがいいな
この辺の仕様決めた奴って滅茶苦茶だな

0983デフォルトの名無しさん (ワッチョイ 7317-Xflc)2018/08/04(土) 10:16:40.19ID:wpkf7FcP0
ごめん確認したらtrueになったわ

0984デフォルトの名無しさん (ワッチョイ 43c9-Xflc)2018/08/04(土) 10:18:40.31ID:c4yFtWHQ0
Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
null判定の記述省略が目的だと思ってたわ

0985デフォルトの名無しさん (ワッチョイ b3e3-HuCS)2018/08/04(土) 10:18:47.38ID:aY8Umh7+0
>>983
なるのかよ

0986デフォルトの名無しさん (ブーイモ MM67-Eno9)2018/08/04(土) 10:46:26.16ID:Q3NLupVYM
?.は使える場面が限られすぎてるんだよな
主語が違っても使えるようにしてほしい
employee ?& company.Fire(employee)
// employee != null ? company.Fire(employee) : null と等価
みたいな

0987デフォルトの名無しさん (ワッチョイ ffb3-6jVY)2018/08/04(土) 12:29:39.69ID:AH7fLvgn0
>>984
> Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
そんなもん何をやりたいかによるだろ

> null判定の記述省略が目的だと思ってたわ
Null条件演算子自体の目的はそれでいいと思うが

0988デフォルトの名無しさん (ワッチョイ 6f9e-QB3m)2018/08/04(土) 12:36:27.73ID:n5GHf3Ra0
>>986
>employee ?& company.Fire(employee)

?& とは何ですか?
ググルキーワード教えて下さい。

0989デフォルトの名無しさん (ワッチョイ 7f60-9U+n)2018/08/04(土) 21:50:20.61ID:sXotmGKy0
>>979
trueになるけどそれでだめなのかよ
だったら
aaa?.bbb != null && aaa.bbb.ccc == null

0990デフォルトの名無しさん (ワッチョイ 8f9f-myUF)2018/08/05(日) 15:20:33.53ID:wZ9wDNsY0
俺なら分けてコメントでも書いておくかな
if(aaa == null || aaa.bbb= null){
// Hack aaaとbbbがnullでもOKで、その時は何もしない。設計がゴミ
}
else if(aaa.bbb.ccc == null){
}

0991デフォルトの名無しさん (オッペケ Src7-mXgF)2018/08/05(日) 16:43:04.45ID:RYmTh0/wr
再帰してNullチェックする関数一つ書けばいいのでは?

0992デフォルトの名無しさん (ワッチョイ 639a-7JJt)2018/08/05(日) 17:47:48.87ID:76QdhMr90
どうでもいいことになるとレスが増えるな
>>980
テンプレ読んでいるだろ。スレたて

0993デフォルトの名無しさん (ワッチョイ 7317-Xflc)2018/08/05(日) 18:17:15.11ID:DE014Z3K0
建てられなかったので別の方お願い

0994デフォルトの名無しさん (ワッチョイ ffb3-6jVY)2018/08/05(日) 18:21:48.75ID:C8NdcnMU0
>>991
再帰?
何言ってるんだ?

0995デフォルトの名無しさん (ワッチョイ 43d2-j3zu)2018/08/05(日) 18:38:49.57ID:hZh56vqa0
再帰でnullチェックする関数気になるな

0996デフォルトの名無しさん (ワッチョイ b38d-0Uuo)2018/08/05(日) 19:30:23.50ID:yb/HDiEo0
コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?

時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています

0997デフォルトの名無しさん (ブーイモ MM67-Eno9)2018/08/05(日) 19:30:55.99ID:uVIrroLRM
こうかな
// 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

0998997 (ブーイモ MM67-Eno9)2018/08/05(日) 19:37:00.55ID:uVIrroLRM
訂正
obj == null ? level : !next.Any() ? null : AmazingNullCheck(level + 1, next.First().Invoke(obj), next.Skip(1).ToArray());
かな

0999デフォルトの名無しさん (ブーイモ MM67-Eno9)2018/08/05(日) 19:43:31.17ID:uVIrroLRM
>>996
特に何もしなくてもCtrl + Cで止まるだろ?
そのときに独自の処理を挟みたいなら Console.CancelKeyPress イベントを使う

1000デフォルトの名無しさん (ワッチョイ 338a-vpSm)2018/08/05(日) 19:45:50.96ID:3KDX12Zf0
1000ならjava民絶滅

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 0時間 13分 9秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


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

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

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。