ふらっと C#,C♯,C#(初心者用) Part138
レス数が1000を超えています。これ以上書き込みはできません。
「どんなにくだらない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 しかし、今時、30年前の手法でやりましょうって笑えるよな。開発の歴史を全く知らないのだろうか。
それが今の流行ならWindows10やC#も流行ってるはず。だが見向きもされない。むしろ敬遠されてる。 >>950
なるほどだからあなたは採用されないのですね >>951
はぁ? むしろボーランドこそ革新的なIDEを普及させたんじゃねーか。そんなことも知らないとか無知すぎる。
それがなんでまたGUIは邪魔なんでテキストでやりましょうってw アホですか。どうせエディタもvim設定なんだろ。
時代遅れの骨董品どもが。 >>953
キミは煽りばかり全くC#やVSの話はしないのですね。馬鹿がバレるのが怖いんですか? ワッチョイスレって単発煽り多すぎて議論にならんな。
必死にでネット繋ぎなおしてると思うと笑えるw >> ワッチョイ cf81 ワッチョイって意味ないな。
低脳馬鹿のコード書けない煽り屋とマイナーOSS陣営から流れてきたvi使いの骨董品以外いない。 煽りしかしない奴ってなんで内容ないレスばかりするんだろうと思ったんだけど、
キーボードアレルギーか何かで入力がめっちゃ遅いんだと思うわ。
おれが5レスする間に一行しか打てないトロ臭さ。
リアル低スキルじゃん。今まで碌にコード書いてないのがバレバレだな。 結局、技術的反論は皆無。これが現実。
今のC#信者は低スキル。今時、テキスト最高ってw COM、.net全否定かよwww 単発煽りって急に大量に現れて急にみんな消えるよな。
可能性として考えられるのは、ゆとりで低スキルで無職で同一人物。 >>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のサンプルもある まあVSつかいたい奴は明らかにVSが向いてないシーンでも使いたがるからな。
俺も使い分けてるが、netcoreでも案外VS起動する事の方が多い。nuget探しやすいとかそんなレベルだけど。
どっちでも良いものは割とVS Codeで開くな。
とはいえ、mdのライブプレビューとかVSで出来んのかな? VSはIDEの機能を利用したいが為だけに使うことがある。 あるんだ。
何が何でもVSの中で過ごせるように出来てんだなぁ、やっぱ。 if(aaa.bbb.ccc ==null){
・・・
}
だと、aaaかaaa.bbbがnullの時にNUll参照エラー出ますよね。
じゃあ、
if(aaa!=null && aaa.bbb!=null && aaa.bbb.ccc ==null){
こう書くしかないですか?
もっとスッキリ書けませんか? null条件演算子が使えるなら使え
どのバージョンで入ったかは忘れた(役立たず) >>970
なんか下のコードって
動いたら不具合臭くない?
if(コードA && コードB && コードC)
ってあったときにコードAがfalseだからってコードCが実行されないとおかしくなる処理もあるんじゃね?
コードABCがそれぞれ結果を保持するような動作をするときもにょる
言語仕様がどうなってようと書いたやつは死刑 >>972
横からですが
> ってあったときにコードAがfalseだからってコードCが実行されないとおかしくなる処理もあるんじゃね?
そういう場合は && ではなく & を使うと良いようです。
よかったら「短絡評価」で検索してみてください。 >>973
コードABCがそれぞれ判定結果を保持する処理をしてたら余計なお世話じゃねーか? >>975
>>973
確かにその場合は短絡評価は余計なお世話と言うか、短絡評価を使うことは間違ってますね。
ただ、>>970 の例では副作用がないのは明らかですし、
C# で短絡評価が用意されている以上、それを使うなというのは酷な話のようにも思います。
今回の問題に関しては >>974 のような & も && も使わない解決策もありますが、
Microsoft の Reference Source でも obj != null && ((int)obj) != 0 のように
短絡評価が積極的に使われてますので、そのようなコードは認められるべきではないでしょうか。 >>976
人に優しいコードじゃない
見たらちょっと考えちゃうだろ
俺はそれだけで避ける なんかnull条件演算子が短絡じゃないような言い方をしている人がいますが
null条件演算子は短絡評価なので念のため
仕様の是非については関知しません
勝手にすればよろしい >>974
もし
aaa.bbb= null
だった場合に、
if(aaa?.bbb?. ccc == null)
がtrueになることは無いですか? ならない
もしtrueにしたいのなら if(aaa?.bbb == null || aaa?.bbb?.ccc == null) にする >>980
ならないんだ?
なんかあんま使わんほうがいいな
この辺の仕様決めた奴って滅茶苦茶だな Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
null判定の記述省略が目的だと思ってたわ ?.は使える場面が限られすぎてるんだよな
主語が違っても使えるようにしてほしい
employee ?& company.Fire(employee)
// employee != null ? company.Fire(employee) : null と等価
みたいな >>984
> Null 条件演算子の結果でnull判定ってなんか使い方おかしくね?
そんなもん何をやりたいかによるだろ
> null判定の記述省略が目的だと思ってたわ
Null条件演算子自体の目的はそれでいいと思うが >>986
>employee ?& company.Fire(employee)
?& とは何ですか?
ググルキーワード教えて下さい。 >>979
trueになるけどそれでだめなのかよ
だったら
aaa?.bbb != null && aaa.bbb.ccc == null 俺なら分けてコメントでも書いておくかな
if(aaa == null || aaa.bbb= null){
// Hack aaaとbbbがnullでもOKで、その時は何もしない。設計がゴミ
}
else if(aaa.bbb.ccc == null){
} 再帰してNullチェックする関数一つ書けばいいのでは? どうでもいいことになるとレスが増えるな
>>980
テンプレ読んでいるだろ。スレたて コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?
時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています こうかな
// 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 訂正
obj == null ? level : !next.Any() ? null : AmazingNullCheck(level + 1, next.First().Invoke(obj), next.Skip(1).ToArray());
かな >>996
特に何もしなくてもCtrl + Cで止まるだろ?
そのときに独自の処理を挟みたいなら Console.CancelKeyPress イベントを使う このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 61日 0時間 13分 9秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。