「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part132
http://mevius.5ch.net/test/read.cgi/tech/1507543256/
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
■コードを貼る場合は↓を使いましょう。
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
ふらっと C#,C♯,C#(初心者用) Part133
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 7bde-MYX9)
2017/11/07(火) 21:11:25.20ID:LeQqgpmT0316デフォルトの名無しさん (ブーイモ MM0f-nR9L)
2017/11/14(火) 17:20:01.42ID:kBR8KFzeM >>315
なるほど、メソッドの外でcatchするんですね。それが定石なんでしょうか?
なるほど、メソッドの外でcatchするんですね。それが定石なんでしょうか?
317デフォルトの名無しさん (ブーイモ MM0f-4n8i)
2017/11/14(火) 17:33:11.61ID:3oyxXo9MM >>316
メソッドの中でcatchして例外に対する処理が出来れば、そこでcatchすれば良いし、出来なきゃ呼び出し元でcatchする。呼び出し元で処理出来なけりゃ更に上位の呼び出し元でcatchする。
基本は例外は例外なのでそんなことが起きないようにコーディングする。
メソッドの中でcatchして例外に対する処理が出来れば、そこでcatchすれば良いし、出来なきゃ呼び出し元でcatchする。呼び出し元で処理出来なけりゃ更に上位の呼び出し元でcatchする。
基本は例外は例外なのでそんなことが起きないようにコーディングする。
318デフォルトの名無しさん (ワッチョイ 7fc3-advO)
2017/11/14(火) 17:45:16.91ID:vWcSiHz/0 WebにあるMSDNの説明を和文で見る人は、「.NET Framework(current version)」を「.NET Framework 4」に変更して、みたほうが良いかもね。
それでも変な和訳だけど。
それでも変な和訳だけど。
319デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
2017/11/14(火) 18:04:00.27ID:gCxVQMlVa >>314
それ、問題設定がおかしい(きつい言い方だけどそれは愚問)だから、
たぶん例外の意味が根本的に分かってないんだと思う。
まず「そもそも例外って何?」ってところからちゃんと理解した方がいいと思う。
理解をパスして定石だかお作法だかを覚えることで乗り切ろうとする態度は危険
それと
>戻り値のあるメソッドでcatchにもreturn入れないとエラーになる
間違ってる。
コンパイル通らないのは値を返さない実行パスが存在する場合だけ
それ、問題設定がおかしい(きつい言い方だけどそれは愚問)だから、
たぶん例外の意味が根本的に分かってないんだと思う。
まず「そもそも例外って何?」ってところからちゃんと理解した方がいいと思う。
理解をパスして定石だかお作法だかを覚えることで乗り切ろうとする態度は危険
それと
>戻り値のあるメソッドでcatchにもreturn入れないとエラーになる
間違ってる。
コンパイル通らないのは値を返さない実行パスが存在する場合だけ
320デフォルトの名無しさん (ワッチョイ 7f19-4n8i)
2017/11/14(火) 18:31:17.73ID:rQHwrbmI0321デフォルトの名無しさん (スップ Sd1f-voEu)
2017/11/14(火) 18:47:46.83ID:gXgokZ6Md322デフォルトの名無しさん (オッペケ Sr33-48y6)
2017/11/14(火) 18:59:20.88ID:ElF9INq6r >>279
ダメでは無いが例外の欠点
上下のやり取りにもあるように例外は扱いが難しく暗黙知が多い
(個人的には難しいとは思わんが)
簡単に握り潰せる
その関数が例外を出すかどうかはパッと見には解らない
非同期の時どうなるか直感的ではない
今はビジネスロジックのエラーに例外はあんまり使わない
もちろんケースバイケース
ダメでは無いが例外の欠点
上下のやり取りにもあるように例外は扱いが難しく暗黙知が多い
(個人的には難しいとは思わんが)
簡単に握り潰せる
その関数が例外を出すかどうかはパッと見には解らない
非同期の時どうなるか直感的ではない
今はビジネスロジックのエラーに例外はあんまり使わない
もちろんケースバイケース
323デフォルトの名無しさん (バットンキン MM03-ioWr)
2017/11/14(火) 19:23:50.29ID:pfWBpEcAM324デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 19:24:49.61ID:D89+JmTA0 ドキュメント書かない奴に限って
ちんぽっぽちんちんException
の亜種をたくさん作るんだw
ところで
CsvHelper
GetRecords<dynamic>()で動くだろ死ねよ
って温かいレスをもらったが
Csvの読み込み程度でこんな翻弄されてるなら
やっぱり自分で作った方が安泰かな?
NuGet最新取ると概ね動かないぜ
ちんぽっぽちんちんException
の亜種をたくさん作るんだw
ところで
CsvHelper
GetRecords<dynamic>()で動くだろ死ねよ
って温かいレスをもらったが
Csvの読み込み程度でこんな翻弄されてるなら
やっぱり自分で作った方が安泰かな?
NuGet最新取ると概ね動かないぜ
325デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 19:32:20.40ID:sSxxq2Sz0 >>322
Go言語が例外処理を無くしたのは、
・例外処理を正しく扱えないヤツが余りにも多すぎる
・例外処理は並行処理では扱い辛い
後者の方が無くした主な理由だろうけど
例外処理分かってないヤツ多すぎるwww
Go言語が例外処理を無くしたのは、
・例外処理を正しく扱えないヤツが余りにも多すぎる
・例外処理は並行処理では扱い辛い
後者の方が無くした主な理由だろうけど
例外処理分かってないヤツ多すぎるwww
326デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 19:35:09.24ID:sSxxq2Sz0327デフォルトの名無しさん (ワッチョイ 5ffa-BPYy)
2017/11/14(火) 19:58:23.54ID:0snQAOLI0 キチガイのバザール
328デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/14(火) 20:04:06.14ID:QqwKiGyo6 >>322
どこが難しいと思うの?
どこが難しいと思うの?
329デフォルトの名無しさん (オッペケ Sr33-48y6)
2017/11/14(火) 20:39:11.83ID:ElF9INq6r330デフォルトの名無しさん (アウアウカー Sad3-csDI)
2017/11/14(火) 20:59:27.95ID:HCb+ZNawa Listのaddメソッドって例外飛ばさないんですか?
もう追加できないよ!みたいな感じで
もう追加できないよ!みたいな感じで
331デフォルトの名無しさん (ワッチョイ ff9f-gk0q)
2017/11/14(火) 21:01:39.87ID:ozKhZGN+0 {〇,✕,✕,〇,△,△,△,〇,△}みたいなリストを{〇,✕,✕,}{〇,△,△,△,}{〇,△}って感じに分けたいんだけどLinqで簡単に出来ないかな?
ループさせんのが面倒で
ループさせんのが面倒で
332デフォルトの名無しさん (ワッチョイ df7f-KBs8)
2017/11/14(火) 21:03:14.99ID:cajczz9H0333デフォルトの名無しさん (アウアウイー Sa33-sJj3)
2017/11/14(火) 21:07:06.30ID:07a/swYLa >>331
SkipとTake使えば?
SkipとTake使えば?
334デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/14(火) 21:11:28.16ID:6kJ9cNLk6 >>329
どこがみんなにとって難しいと思うから322で難しいとか書いたの?
どこがみんなにとって難しいと思うから322で難しいとか書いたの?
335デフォルトの名無しさん (オッペケ Sr33-48y6)
2017/11/14(火) 21:13:21.13ID:ElF9INq6r >>334
これだけ意見相違があるから
これだけ意見相違があるから
336デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/14(火) 21:16:24.25ID:6kJ9cNLk6 よくわからんが難しくないだろ。
337デフォルトの名無しさん (アウアウイー Sa33-sJj3)
2017/11/14(火) 21:17:36.48ID:07a/swYLa 例外を変なところでキャッチしちゃう人が多い
メソッドAの中でメソッドBを呼んでまたメソッドCを呼んだとする
メソッドC中で例外が起こってもメソッドC内でキャッチしちゃって
メソッドCの戻り値をnullでリターンして
メソッドBで戻り値のnullチェックしてnullだったらまた戻り値をnullでリターンして
またメソッドAでチェックしてみたいな馬鹿な使い方をしてる
メソッドAでキャッチしろって思う
メソッドAの中でメソッドBを呼んでまたメソッドCを呼んだとする
メソッドC中で例外が起こってもメソッドC内でキャッチしちゃって
メソッドCの戻り値をnullでリターンして
メソッドBで戻り値のnullチェックしてnullだったらまた戻り値をnullでリターンして
またメソッドAでチェックしてみたいな馬鹿な使い方をしてる
メソッドAでキャッチしろって思う
338デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/14(火) 21:18:54.31ID:6kJ9cNLk6339デフォルトの名無しさん (ワッチョイ ff9f-gk0q)
2017/11/14(火) 21:22:31.53ID:ozKhZGN+0 >>333
んーそれ余計に面倒にならない?
んーそれ余計に面倒にならない?
340デフォルトの名無しさん (アウアウイー Sa33-sJj3)
2017/11/14(火) 21:23:42.17ID:07a/swYLa 例外を目の前でキャッチするくらいなら他の制御構文でヤレ
341デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 21:33:26.00ID:sSxxq2Sz0342デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 21:54:38.57ID:D89+JmTA0343デフォルトの名無しさん (ワッチョイ ff9d-ouqv)
2017/11/14(火) 22:03:00.14ID:5gpUPtII0 仕分けめんどくさいのは同意するけど、握りつぶすのはどうなんだ
仕分けした結果握りつぶして問題ないって判断したものならいいかもしれんが
極論として、全部握りつぶす or 全部スルーして上位にキャッチさせる
どっち選ぶ?
仕分けした結果握りつぶして問題ないって判断したものならいいかもしれんが
極論として、全部握りつぶす or 全部スルーして上位にキャッチさせる
どっち選ぶ?
344デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 22:03:51.57ID:sSxxq2Sz0345デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 22:08:15.89ID:sSxxq2Sz0 >>337
>例外を変なところでキャッチしちゃう人が多い
かと思えば、例外が必要なところでtry/catch { } で握りぶしちゃう人も多い
これも追加ね。
無駄なtry/cathと握りつぶし
例外が分かってないヤツの典型例
>例外を変なところでキャッチしちゃう人が多い
かと思えば、例外が必要なところでtry/catch { } で握りぶしちゃう人も多い
これも追加ね。
無駄なtry/cathと握りつぶし
例外が分かってないヤツの典型例
346デフォルトの名無しさん (ワッチョイ df03-uZPj)
2017/11/14(火) 22:09:59.38ID:vkrHhpXR0 例外の仕分けとは何なのか
347デフォルトの名無しさん (ワッチョイ 5f4b-BPYy)
2017/11/14(火) 22:11:36.04ID:FOR7JOrW0 分かったからママに教えてやれ
お前が可愛いなら誉めてくれるだろう
お前が可愛いなら誉めてくれるだろう
348デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 22:12:26.72ID:D89+JmTA0349デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 22:17:45.36ID:sSxxq2Sz0 例外を拾ってエラーチェックをしようとしているのが根本的な間違いだな。
350デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 22:28:42.81ID:D89+JmTA0 >>349
バッカ、飛んでっちゃうだろ
バッカ、飛んでっちゃうだろ
351デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
2017/11/14(火) 22:33:03.34ID:Xx2aI1jk0 仕分けとは
握りつぶしとは
握りつぶしとは
352デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 22:41:27.61ID:D89+JmTA0 >>351
アスペにもほどがあるだろ
アスペにもほどがあるだろ
353デフォルトの名無しさん (ワッチョイ 5f75-7wKg)
2017/11/14(火) 22:56:41.83ID:Xx2aI1jk0 初心者だから経験が浅いので分からん
354デフォルトの名無しさん (アウアウイー Sa33-sJj3)
2017/11/14(火) 22:58:32.66ID:ypDSy74La あからさまに変な人は相手にしないほうがいいよ
俺も言ってる意味がわからない
俺も言ってる意味がわからない
355デフォルトの名無しさん (ワッチョイ df03-uZPj)
2017/11/14(火) 23:00:13.12ID:vkrHhpXR0 >>348
戻り値だったらいいの?例外となんか違うか?
戻り値だったらいいの?例外となんか違うか?
356デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 23:02:10.19ID:D89+JmTA0 >>355
お前、なんの例外がくるのか全部把握してる前提で話してるだろ?
お前、なんの例外がくるのか全部把握してる前提で話してるだろ?
357デフォルトの名無しさん (ワッチョイ 7f2b-zl2n)
2017/11/14(火) 23:06:39.11ID:deF3FeCf0 把握できてる(かつ握っても問題ない)例外だけ握ればいいんじゃないの?
なんで全部握りつぶすの?
なんで全部握りつぶすの?
358デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 23:18:43.22ID:D89+JmTA0 >>357
どこで例外発生するかわかんないから
どこで例外発生するかわかんないから
359デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 23:25:37.86ID:sSxxq2Sz0 >>358
何処で発生するか、しかも例外の内容も分からない例外を仕分けして何をしたいんだ?
何処で発生するか、しかも例外の内容も分からない例外を仕分けして何をしたいんだ?
360デフォルトの名無しさん (ワッチョイ df03-uZPj)
2017/11/14(火) 23:33:00.11ID:vkrHhpXR0 >>356
お前なんの戻り値がくるのか全部把握してる前提で話してるだろ?
お前なんの戻り値がくるのか全部把握してる前提で話してるだろ?
361デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 23:43:11.80ID:D89+JmTA0362デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 23:43:49.21ID:D89+JmTA0 >>360
それは成功以外は失敗じゃない?
それは成功以外は失敗じゃない?
363デフォルトの名無しさん (アウアウイー Sa33-sJj3)
2017/11/14(火) 23:48:21.45ID:ypDSy74La364デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 23:48:53.64ID:sSxxq2Sz0 >>361
だったら、例外をcatchして例外メッセージをMessageBox.Show()しとけば良いだけだろ。
だったら、例外をcatchして例外メッセージをMessageBox.Show()しとけば良いだけだろ。
365デフォルトの名無しさん (ワッチョイ df03-uZPj)
2017/11/14(火) 23:49:57.17ID:vkrHhpXR0 >>362
だったら例外も同じじゃない?
だったら例外も同じじゃない?
366デフォルトの名無しさん (ワッチョイ ff9a-TPjW)
2017/11/14(火) 23:53:24.48ID:+V2acIIZ0 こんな深夜に要件定義されていない議論するとか正気か?
367デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/14(火) 23:58:02.52ID:D89+JmTA0 >>365
だから落ちんなよって
だから落ちんなよって
368デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/14(火) 23:58:11.24ID:sSxxq2Sz0369デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/14(火) 23:58:46.20ID:A1uj0brl0 Windowsの場合、ハンドルされない例外で落としておけば、ユーザーには後日解決策が
提示される場合があると表示されて、パートナーには統計情報が連絡される。
提示される場合があると表示されて、パートナーには統計情報が連絡される。
370あ (スププ Sd9f-oWMR)
2017/11/14(火) 23:59:42.34ID:j+l8jijkd 動いてそうだけど動いてないかもしれない、エラーが中で出てるけど見えないプログラムなんて、
ブレーキランプはつくけどホントにブレーキがかかるかわからない車みたい。
いっそ走らないほうがマシ。
ブレーキランプはつくけどホントにブレーキがかかるかわからない車みたい。
いっそ走らないほうがマシ。
371デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
2017/11/15(水) 00:01:02.73ID:udlId46Ca >>367-368
どうせネタのつもりで言ってるんだろうけど面白くないから
どうせネタのつもりで言ってるんだろうけど面白くないから
372デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/15(水) 00:02:05.46ID:iANpDJJe0 >>369
MS以外に例外情報を送信することができるのか?
MS以外に例外情報を送信することができるのか?
373デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/15(水) 00:03:28.48ID:2GqBFPwl0 >>372
統計情報だけもらえる。
統計情報だけもらえる。
374デフォルトの名無しさん (アウアウイー Sa33-zl2n)
2017/11/15(水) 00:03:40.40ID:QiSxe5F2a >>368
キャッチして何になるんだよ?
アプリは予測してない状況になってるんだぞ
予測できてないから復旧もできないし
誤動作してシステム食いつぶすこともあるんだから生かしておく意味はありません
そういうことしてDBに特定のデータだけ一晩中書き続けた例を知ってる
キャッチして何になるんだよ?
アプリは予測してない状況になってるんだぞ
予測できてないから復旧もできないし
誤動作してシステム食いつぶすこともあるんだから生かしておく意味はありません
そういうことしてDBに特定のデータだけ一晩中書き続けた例を知ってる
375デフォルトの名無しさん (ワッチョイ df03-pAaq)
2017/11/15(水) 00:03:57.83ID:iCpU6Box0 >>367
むしろ例外の仕組みがない言語の方がプログラマーに制御できないとこで勝手に落ちるんじゃないの?
むしろ例外の仕組みがない言語の方がプログラマーに制御できないとこで勝手に落ちるんじゃないの?
376デフォルトの名無しさん (ワッチョイ df7f-KBs8)
2017/11/15(水) 00:04:36.82ID:MZOj6Nbl0377デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/15(水) 00:04:47.32ID:iANpDJJe0 >>373
なにそれ?
なにそれ?
378デフォルトの名無しさん (ワッチョイ df8d-hKMu)
2017/11/15(水) 00:05:46.61ID:De4EEM1x0 ロガークラスなんかだと
中で例外全部握り潰すけど
catch {}
中で例外全部握り潰すけど
catch {}
379デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/15(水) 00:06:23.35ID:iANpDJJe0380デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 00:10:28.88ID:pJdoypJN0 ダメだこいつら
話になんねー
あるべき論はいいからさっさとアプリ動かせよ
握りつぶして動くなら動くでいいだろ
メソッドの中身なんて3万行だか4万行だか読んでらんねんだよバカが
その全てでテキトーに例外発生させてんだから握りつぶしてナンボだろこんなの
話になんねー
あるべき論はいいからさっさとアプリ動かせよ
握りつぶして動くなら動くでいいだろ
メソッドの中身なんて3万行だか4万行だか読んでらんねんだよバカが
その全てでテキトーに例外発生させてんだから握りつぶしてナンボだろこんなの
381デフォルトの名無しさん (ワッチョイ df8d-hKMu)
2017/11/15(水) 00:11:54.55ID:De4EEM1x0 Office系は印刷中キャンセルボタン押しただけで
COMException投げてきたりするから
とりあえず握り潰すようにしている
COMException投げてきたりするから
とりあえず握り潰すようにしている
382デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/15(水) 00:12:29.08ID:2GqBFPwl0 DBはコミットしなければいいと思う。
383デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/15(水) 00:20:37.66ID:iANpDJJe0 >>380
じゃ、メッソッドの呼び出しもと全部にcatch {}入れとけよ。
じゃ、メッソッドの呼び出しもと全部にcatch {}入れとけよ。
384デフォルトの名無しさん (ワッチョイ ff9d-ouqv)
2017/11/15(水) 00:26:18.34ID:AeO6Jp1U0 例外で落としたくないプログラムってのはたしかに存在するけど
基本そんなプログラムをC#で書くのが間違ってると思うわ
例外処理のっていうときに、C#での(あるいは.NETでの)例外処理は、って言うようにしようぜ
つかまあこの話もう終わりで良いけど
基本そんなプログラムをC#で書くのが間違ってると思うわ
例外処理のっていうときに、C#での(あるいは.NETでの)例外処理は、って言うようにしようぜ
つかまあこの話もう終わりで良いけど
385デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/15(水) 00:26:49.27ID:2GqBFPwl0 ただまあ例外なんて滅多に出ないからね。
386デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/15(水) 00:27:26.82ID:2GqBFPwl0 C++スレじゃないのか。
387デフォルトの名無しさん (ワッチョイ df81-nR9L)
2017/11/15(水) 00:27:39.78ID:rNYxO5wL0 >>337
そのメソッドAが戻り値あり立った場合は?さらに外?それともヌル返す?
そのメソッドAが戻り値あり立った場合は?さらに外?それともヌル返す?
388デフォルトの名無しさん (ワッチョイ 5f8a-lB0v)
2017/11/15(水) 00:28:57.41ID:nkl9Qzh90 長々と無意味なレスバが続いてたけど、ひとつだけ皆が同意できそうなのは
例外がどういう用途で使われるべきかの一般的なコンセンサスに従う人は
ID:D89+JmTA0 = ID:pJdoypJN0 と一緒に仕事したくない、という点だけだな
例外がどういう用途で使われるべきかの一般的なコンセンサスに従う人は
ID:D89+JmTA0 = ID:pJdoypJN0 と一緒に仕事したくない、という点だけだな
389デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/15(水) 00:30:13.38ID:2GqBFPwl0 異常は戻り値で知らせるなって言いたいんじゃないの。
まあそりゃそうだよねって言う。
まあそりゃそうだよねって言う。
390デフォルトの名無しさん (ワッチョイ 7fd2-voEu)
2017/11/15(水) 00:57:36.26ID:ESiJAd3S0 ここc#スレで合ってるよね…
391デフォルトの名無しさん (アウアウエー Sa7f-+sn6)
2017/11/15(水) 01:09:16.87ID:udlId46Ca 勘違いする人がいると見てられないので一応書いとくけど、
例外の目的の一つはフェイルセーフ、つまりプログラマの想定外のことが起こった時に
「安全側に倒す」 = 「プログラムを強制終了させる」ことなので、
「プログラマの想定外のことが起こってもプログラムの実行が止まらないようにしたい」
などという馬鹿なことを考えてはいけない。
例外の目的の一つはフェイルセーフ、つまりプログラマの想定外のことが起こった時に
「安全側に倒す」 = 「プログラムを強制終了させる」ことなので、
「プログラマの想定外のことが起こってもプログラムの実行が止まらないようにしたい」
などという馬鹿なことを考えてはいけない。
392デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 01:35:57.65ID:pJdoypJN0393デフォルトの名無しさん (ワッチョイ 7f0c-advO)
2017/11/15(水) 02:16:30.38ID:oUD9LeEe0 ここは間を取ってContractしよう
394デフォルトの名無しさん (ワッチョイ ff9f-gk0q)
2017/11/15(水) 03:59:39.11ID:f4TQv9de0395デフォルトの名無しさん (ワッチョイ 7f19-TPjW)
2017/11/15(水) 06:34:16.49ID:iANpDJJe0 >>392
具体的には何のライブラリ?
具体的には何のライブラリ?
396デフォルトの名無しさん (スップ Sd1f-voEu)
2017/11/15(水) 08:15:52.85ID:M8NqkMX5d >>395
キチガイに触んなすな
キチガイに触んなすな
397デフォルトの名無しさん (ササクッテロレ Sp33-hKMu)
2017/11/15(水) 08:45:58.03ID:6LdVh8Top >>394
LINQでどうやるの?
LINQでどうやるの?
398デフォルトの名無しさん (ワッチョイ dfe3-FK5L)
2017/11/15(水) 09:21:08.88ID:EAeU3mIh0399デフォルトの名無しさん (ワッチョイ 5f02-BPYy)
2017/11/15(水) 09:39:52.81ID:tmuRT0930 ガイジコラボ
400デフォルトの名無しさん (ドコグロ MM7f-FK5L)
2017/11/15(水) 10:00:24.72ID:K3LG5GcrM401デフォルトの名無しさん (スッップ Sd9f-gk0q)
2017/11/15(水) 10:01:55.68ID:DCxsxqPWd >>397
やりたいのは文字列じゃないけどこんな感じのイメージ
パフォーマンスはしらない
var list = new List<string>() { "○", "×", "×", "×" , "○", "△", "△", "○", "△" };
Func<string, bool> isFirst = (item) => item == "○";
int groupingId = 0;
var result = list.Select(item =>{
if (isFirst(item)) { groupingId++; }
return new { Id = groupingId, Value = item };
})
.GroupBy(pair => pair.Id, pair => pair.Value);
// { "○", "×", "×", "×"}{"○", "△", "△"}{"○", "△" }
List<List<string>> hoge = result.Select(group => group.ToList()).ToList();
やりたいのは文字列じゃないけどこんな感じのイメージ
パフォーマンスはしらない
var list = new List<string>() { "○", "×", "×", "×" , "○", "△", "△", "○", "△" };
Func<string, bool> isFirst = (item) => item == "○";
int groupingId = 0;
var result = list.Select(item =>{
if (isFirst(item)) { groupingId++; }
return new { Id = groupingId, Value = item };
})
.GroupBy(pair => pair.Id, pair => pair.Value);
// { "○", "×", "×", "×"}{"○", "△", "△"}{"○", "△" }
List<List<string>> hoge = result.Select(group => group.ToList()).ToList();
402デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 11:14:21.87ID:LdCnvqY76 LINQと関数型プログラミングって何が違うの?
403デフォルトの名無しさん (ドコグロ MM7f-FK5L)
2017/11/15(水) 11:42:46.04ID:l4Bv56LcM >>402
ガイジ乙
ガイジ乙
404デフォルトの名無しさん (ワッチョイ 5f19-7wKg)
2017/11/15(水) 11:51:23.71ID:CJEkfJ7L0 >>401
畳み込みですやってみた。
var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var isFirst = new Func<string, bool>((item) => item == "○");
var result = list.Aggregate(new List<List<string>>(), (prevList, item) =>
{
if (isFirst(item))
prevList.Add(new List<string>() { item });
else
prevList.Last().Add(item);
return prevList;
});
// resultからhogeにクローン
var hoge = (List<List<string>>)result.Select(group => (List<string>)group.Select(item => item));
畳み込みですやってみた。
var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var isFirst = new Func<string, bool>((item) => item == "○");
var result = list.Aggregate(new List<List<string>>(), (prevList, item) =>
{
if (isFirst(item))
prevList.Add(new List<string>() { item });
else
prevList.Last().Add(item);
return prevList;
});
// resultからhogeにクローン
var hoge = (List<List<string>>)result.Select(group => (List<string>)group.Select(item => item));
405デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:03:19.06ID:RrK4s1ZI6 こっちの方がいいか。
var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var isFirst = new Func<string, bool>((item) => item == "○");
var hoge = list.Aggregate(new List<List<string>>(), (prevList, item) =>
{
if (isFirst(item)) { prevList.Add(new List<string>() };
prevList.Last().Add(item);
return prevList;
});
var list = new List<string>() { "○", "×", "×", "×", "○", "△", "△", "○", "△" };
var isFirst = new Func<string, bool>((item) => item == "○");
var hoge = list.Aggregate(new List<List<string>>(), (prevList, item) =>
{
if (isFirst(item)) { prevList.Add(new List<string>() };
prevList.Last().Add(item);
return prevList;
});
406デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:05:06.75ID:RrK4s1ZI6 if (isFirst(item)) { prevList.Add(new List<string>() };
括弧ミスった
括弧ミスった
407デフォルトの名無しさん (スプッッ Sd73-advO)
2017/11/15(水) 12:05:11.35ID:Tar4qvIud Func<T,bool> を受け取るSplit関数定義した方が後で楽じゃね?
408デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:07:15.90ID:RrK4s1ZI6 確かにその方がスッキリするな。
いずれにしろsplitの中身を定義しないといけないけど
いずれにしろsplitの中身を定義しないといけないけど
409デフォルトの名無しさん (スッップ Sd9f-gk0q)
2017/11/15(水) 12:29:09.51ID:DCxsxqPWd >>405
Agreegate余り使ったことなかったけど便利だな
こっちの方が綺麗だ
if (isFirst(item) ||prevList.Count>0)
書いてなかったけど、リストの先頭が〇とは限らないのでこんな感じで
Agreegate余り使ったことなかったけど便利だな
こっちの方が綺麗だ
if (isFirst(item) ||prevList.Count>0)
書いてなかったけど、リストの先頭が〇とは限らないのでこんな感じで
410デフォルトの名無しさん (ブーイモ MM0f-hQHN)
2017/11/15(水) 12:35:31.31ID:MLdh1wBXM Aggregateは宣言的でないので関数型に慣れたらむしろ読み辛く感じるようになる
考え方が実質的に手続き型だから、手続き型に慣れてる人には馴染みやすいので濫用されてしまいやすい
考え方が実質的に手続き型だから、手続き型に慣れてる人には馴染みやすいので濫用されてしまいやすい
411デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:43:50.52ID:LdCnvqY76 関数型の典型的な関数みたいにバッ、バッって感じじゃなくてズィーンて感じだからか。
>>401のやり方だと使ってる関数はバッバだけ感じかもしれないけど外部変数使ってるから内外に絡み合ってるのがあれだけどどうすればいいんだろう
>>401のやり方だと使ってる関数はバッバだけ感じかもしれないけど外部変数使ってるから内外に絡み合ってるのがあれだけどどうすればいいんだろう
412デフォルトの名無しさん (ワッチョイ ff9c-J+qm)
2017/11/15(水) 12:46:35.76ID:h8srGYM+0 Select/Aggregateなんて変な書き方せず素直にmap/reduceでいいのにな
SQLっぽくというコンセプトで台無しになってる感じ
SQLっぽくというコンセプトで台無しになってる感じ
413デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:48:32.27ID:LdCnvqY76 ズィーン→ズインッ→ズィッ→バッ
こう見れば畳み込みも関数型に馴染む
こう見れば畳み込みも関数型に馴染む
414デフォルトの名無しさん (ガックシ 064f-7wKg)
2017/11/15(水) 12:49:52.25ID:LdCnvqY76 >>412
まあこの場合ではSQLを扱ってるわけじゃないしな
まあこの場合ではSQLを扱ってるわけじゃないしな
415デフォルトの名無しさん (ドコグロ MM7f-FK5L)
2017/11/15(水) 12:54:47.35ID:l4Bv56LcM 関数にした方が見やすいじゃん
無駄に不具合出して喜ぶ低能過ぎる
無駄に不具合出して喜ぶ低能過ぎる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 巨専】
- こいせん 全レス転載禁止
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- 寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い寒い
- マクラーレン、女性ドライバー3名を加入 [462275543]
- 【悲報】大分市佐賀関の火事、20軒→170軒に延焼🔥 [481941988]
