1 名前:デフォルトの名無しさん mailto:sage [2017/11/28(火) 21:30:48.55 ID:7U+HR4FY.net] 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part133 mevius.5ch.net/test/read.cgi/tech/1510056685/ ■関連スレ C#, C♯, C#相談室 Part95 mevius.5ch.net/test/read.cgi/tech/1508180530/ ■コードを貼る場合は↓を使いましょう。 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 referencesource.microsoft.com/ - VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
357 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 10:45:19.56 ID:+bg1ulUg.net] enum大好きな人多いよね
358 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 10:51:21.68 ID:cFJQGF3i.net] 処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?
359 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 10:56:20.84 ID:OKZOYtiA.net] >>351 設計の筋が悪いんだと思うよ たとえばデータ取得処理が返すべきは成功コードorエラーコードではなく 取得したデータそのものであり、失敗したら例外を投げる
360 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 10:59:35.44 ID:cFJQGF3i.net] ごめんなさい、例の子呼んじゃいました・・・
361 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:19:22.17 ID:klwCxkV9.net] 死ね
362 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:22:56.63 ID:zEFqnqTD.net] 質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう 文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
363 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:23:21.91 ID:7Si01GpM.net] なんでこうも例外は嫌われなきゃいけないのか
364 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:24:00.35 ID:DEQ8njbJ.net] あいつが召喚されるから
365 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:24:37.45 ID:1RSLLPBx.net] >>351 オブジェクトを返せばいいよ
366 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:25:55.23 ID:1RSLLPBx.net] 例外を使えないならOOPやめたほうがいい というかプログラマやめたら? 同僚からしたらすげえ邪魔なんだけど
367 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:27:29.98 ID:zEFqnqTD.net] >>356 >>359 例外の話じゃなかったのに処理結果=例外なんだ
368 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:31:38.35 ID:1RSLLPBx.net] >>360 一般論的に言って例外使えない子は退職して欲しいってだけだよ >>355 に対する答えは>>359 で出してるでしょ
369 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:32:45.27 ID:K5F4H8OZ.net] 例外も内部にステータス持つなら同じことだから、要はenumのかわりにクラスを使えということなんだろう。 必ずしもそれが筋が良いとは思わんけどな。
370 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:36:28.15 ID:zEFqnqTD.net] >>361 例外使えないとか使わない前提じゃないけどもう日本語通じないか ファイルダイアログも使ったことないんだろうね
371 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:36:52.38 ID:1RSLLPBx.net] >>361 >>>360 >一般論的に言って例外使えない子は退職して欲しいってだけだよ >>>355 に対する答えは>>359 で出してるでしょ 安価ミス >>355 に対する答えは>>358 で出してるでしょ
372 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:38:37.58 ID:zEFqnqTD.net] >>364 ああごめん アンカーまともに判断して意味不明な煽りだと勘違いしたわ
373 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 11:55:32.54 ID:7Si01GpM.net] enumで戻り値を返した先にはswitch〜case文の羅列が待っている それは、オブジェクト指向として美しくない とか言って見る
374 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 12:15:32.85 ID:I3oRkg9y.net] >>350 エナム?イーナム?
375 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 12:16:06.09 ID:fCk6aJzv.net] メソッドの結果が何種類かある どの結果なら何をするかはメソッド自体は知らない なのでenumを返してクライアントに判断してもらう って理由でenumならなんの問題もない enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな イベントでもいいけどイベントは管理しにくいからできれば避けたい
376 名前:347 mailto:sage [2017/12/10(日) 12:24:22.81 ID:okOunyow.net] >>349 ありがとうございます。 HttpHost64.exe のエラーダイアログは出ないんですが、「指定された引数は、有効な値の範囲内にありません。」は同じでした。 本当になんなんだろう。。
377 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 12:25:57.85 ID:w7IPLNC5.net] そんなもん地獄でもなんでもないわw 大袈裟なやつだなw
378 名前:デフォルトの名無しさん [2017/12/10(日) 12:42:01.80 ID:hfoTCgp6.net] なんでEnumダメなん?.NET標準ライブラリでもよく使われてるやん
379 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 12:44:31.00 ID:KNXh5gp+.net] 補完効くから便利だもんね switchとか全部書いてくれるし
380 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 13:02:49.80 ID:Lqf3YhZb.net] >>366 その主張一時期流行ったけど、今になって冷静に考えると かなり羹に懲りて膾吹いてる感がある
381 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 13:08:33.64 ID:1RSLLPBx.net] ケースバイケース microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
382 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 13:24:00.94 ID:TdgJU12g.net] ダメって言ってる奴の頭がおかしいだけ enum の継承とか意味わからんし
383 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 13:31:07.35 ID:Xq7qpXg6.net] >>375 ステートマシン作ってそのクラスを継承すると欲しくなる
384 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 13:33:07.99 ID:1RSLLPBx.net] ダメとは言わないがコード整理するとenumが自然と消える
385 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:00:03.48 ID:K5F4H8OZ.net] どこでどういうタイミングで消えるのか興味深い
386 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:11:52.06 ID:1RSLLPBx.net] >>378 例えばこういう感じ void ExternalCode(MyEnum e) { int x = 0; if (e == MyEnum.A) x = 1; if (e == MyEnum.B) x = 2; Console.WriteLine(x) } ↓ static class MyEnumEx { public static int GetX(this MyEnum e) { if (e == MyEnum.A) return 1; if (e == MyEnum.B) return 2; return 0; } } void ExternalCode(MyEnum e) { Console.WriteLine(e.GetX()); } ↓ class MyEnumBase { public virtual int GetX() { return 0; } } class MyEnumA : MyEnumBase { public override int GetX() { return 1; } } class MyEnumB : MyEnumBase { public override int GetX() { return 2; } } void ExternalCode(MyEnumBase e) { Console.WriteLine(e.GetX()); }
387 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:20:47.04 ID:K5F4H8OZ.net] ありがとう。 言いたいことはわかったけど、それって整理されたの?という疑問は残る。 この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、 ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には また別のclassを用意して、ってなるわけだよね。
388 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:23:46.87 ID:KNXh5gp+.net] 君のenumの使い方がそもそもおかしいだけで、普通はオプション的なものに使うからそうはならないだろう
389 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:44:45.17 ID:1RSLLPBx.net] >>380 ならないわけだよ MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう 別の場所でyを取得する処理が書かれてるなら class MyEnumBase { public virtual int GetX() { return 0; } public virtual int GetY() { ... } } というように拡張していけばいい
390 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 14:50:12.52 ID:o/NiMYKz.net] >>376 サブステートを定義するとかしかやりようがないような気がするけど... enum 使わなきゃ綺麗に書けるの?
391 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 15:30:45.08 ID:hRp3Q2MJ.net] >>369 最新の2017でないのなら専用スレで聞け Visual Studio 2015 Part8 https://mevius.5ch.net/test/read.cgi/tech/1484855822/ VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
392 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:01:41.00 ID:K5F4H8OZ.net] >>382 そこ集めちゃうの?という印象。 たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく 抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
393 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:32:25.95 ID:1RSLLPBx.net] >>385 操作対象はインターフェースで分離する FileModeはFileModeに関連する責務だけを担当する 操作対象に関する責務はFileModeには無い
394 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:41:37.05 ID:1RSLLPBx.net] むろん全てのenumをオブジェクトにすべきと言ってるわけではない ビジネスレイヤではオブジェクトにしたほうが良い場面が圧倒的に多いが 単なるフラグセットとみなしたほうが有利な場面もそりゃあるだろう
395 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:56:48.76 ID:K5F4H8OZ.net] >操作対象に関する責務はFileModeには無い だからね、例えばローカルファイルとネットワークドライブ上のファイルとで同じFileModeに対する 操作手順が異なるとした場合、それをどこに実装するかって話。 1つの class Enum に実装するのは論外として、インターフェースと実装クラスに分離するなら>>380 の通り。 あるいはFileクラスに掛かる実装は class Enum 側に持たないというならenumのままでもいいじゃん、となる。 >>387 結局そうだよね。圧倒的かどうかは知らんけどw
396 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:57:04.47 ID:AsjcCxkl.net] xがなにで1と2でどう違うのか分からんが まずxをクラス(か構造体)にするべきだと思うんだが
397 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 16:59:10.81 ID:1RSLLPBx.net] >>389 大した意味のないサンプルに深入りするの馬鹿馬鹿しくない?
398 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 17:11:04.47 ID:QtRE0gJ3.net] ほらキチガイが湧いたwww
399 名前:デフォルトの名無しさん [2017/12/10(日) 17:14:47.78 ID:IOEOCVr0.net] 例外も列挙体もLINQもインタフェースもイラネってかwwwwww
400 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 17:31:58.06 ID:klwCxkV9.net] 死ねで終わらせとけばいいのに相手しやがって死ね
401 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 17:55:36.64 ID:CnpEkAKU.net] 昔流行ったswitchを無くせって話は、元々はJavaみたいな関数ポインタもデリゲートも使えない言語で ジャンプテーブルをどうやって実現するかって話(要するにいかに効率化するかって目線の話) だったと思うんだけど、それが途中からこじつけか何か知らんけどOOP敵に美しいとか正しいって 話にすり替わった印象しかないね。 そりゃ多態使ってswitch無くした方が美しく可読的に書ける場合もあるけど、 そうじゃない場合の方が圧倒的に多い。 要するに上にも書いたけど、羹に懲りて膾を吹く類の話だよね。 今でもこういうこと言ってる人の話は真に受けちゃダメだと思う
402 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:11:31.06 ID:u72ghqtY.net] enumをクラス化でシンプルにできるのはシングルのenumで状態が決まる場合 複合的な状態を持ってるとまあ理解に苦しむコードになるよ ifとswitchのほうが読みやすく理解しやすいならそっちを使えばいい
403 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:13:44.60 ID:o/NiMYKz.net] >>390 例示されたサンプルがおかしいって言われてるって言うことをそろそろ気づこうか
404 名前:デフォルトの名無しさん [2017/12/10(日) 18:15:53.82 ID:40kmfkZ7.net] しょーもな 首吊って死ねば?
405 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:30:36.92 ID:1RSLLPBx.net] >>394 オブジェクト指向をやるならカプセル化や単一責務は基本中の基本 enum switchはそれを全部ぶち壊しにする だからやめとけって世界中で言われてんだよ
406 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:39:54.73 ID:u72ghqtY.net] それは使い方が悪いだけだよ
407 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:41:44.28 ID:o/NiMYKz.net] >>398 お前の狭い世界はどうでもいい
408 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:45:22.58 ID:1RSLLPBx.net] まあ初心者スレだしOOPわからんってのも仕方がないか… 何年後かには理解できてると思う
409 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:47:16.85 ID:u72ghqtY.net] >>379 このコートの最初が悪くてあとが良いとは限らないと思うが これ100個あったとして どこぞの言語みたいに一クラス一ファイル縛りがあったら100個ファイルが必要 それに見通しが非常に悪い switchも見通しが悪いけど100個のクラスの100メソッドを検索で渡るよりまし
410 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:49:15.44 ID:u72ghqtY.net] 状態によって見やすいコードはかわるけどswitch==悪はfalseだろ
411 名前:デフォルトの名無しさん [2017/12/10(日) 18:52:06.23 ID:40kmfkZ7.net] >>403 草
412 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:52:09.72 ID:in4pjWGE.net] 雑談スレか
413 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:55:12.88 ID:1RSLLPBx.net] >>402 すまんがまず100このenum値って時点で設計ミスだと思うぞ 普通の業務ロジックでそんな区分分けみたことないわ 大量のenumといったらせいぜいリソースIDのラベル化とか? そ
414 名前:なんまでクラス化はしないよ なんでもクラス化するわけじゃないってなんどもレスしてるよね? まあ仮に区分が膨大な場合でもそれがビジネス上の振る舞いを持つならクラスにしたほうがいいぞ クラスにしたら見通し悪いっていうけど そりゃビジネスそのものが見通し悪いんだから仕方がないか クラスっていう保護がなければもっと悲惨なことになる [] [ここ壊れてます]
415 名前:347 mailto:sage [2017/12/10(日) 18:55:31.09 ID:okOunyow.net] >>384 誘導ありがとうございます。
416 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:57:52.94 ID:u72ghqtY.net] もともと責務と言いながら 状態を伝えるだけのenumをクラスに拡張しちゃって責務の内容を広げっちゃって 保守性を落としてるんだからまだまだだね
417 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 18:59:10.78 ID:u72ghqtY.net] >>406 1つ目と3つ目を比べると1つ目のほうがすぐれたコードだと思う 理解しやすい それ以上優れてる理由はない
418 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:02:50.61 ID:1RSLLPBx.net] enumが100個あってシステムのあっちこっちに分岐があります 仕様が変わりました値Aの仕様が変わりました enumの場合: システムをenumのAで検索 あっちこっちでヒットしたコードを慎重に整合性を確認しながら修正 もしかしたら見逃しがあるかもしれないと不安を抱えながら作業 Aを修正してるのに周りの他の値の場合の処理が凄まじいノイズになってめまいがする コードが他の責務に埋め込まれてるのでテストは容易ではない クラスの場合: 派生クラスAが定義されてるファイルを開く 1つのファイルに集中できるので楽々修正 Aに関する処理は全部このファイルにあるので見逃しも無い 他の値の処理が周りに無いのでクリアな視界で作業可能 クラスになってるのでテストは超簡単
419 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:07:08.35 ID:1RSLLPBx.net] enum値が削除されたら? 新しいenum値が追加されたら? クラス化されてないと超しんどいぞ システムにばら撒かれたenum100個なんて管理しきれないよ OOPの言語と開発環境ならクラス100個は楽勝で管理できるけどな
420 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:07:59.48 ID:u72ghqtY.net] >>410 クラスを使うべき時は使う そうじゃないときはswitch enumでも十分
421 名前:デフォルトの名無しさん [2017/12/10(日) 19:09:21.56 ID:HHgBYreh.net] enumなんて存在すら忘れてた もうクセでデータ保持するクラス作っちゃってたわ やっぱ固定値の列挙はenumの方がええんやろか
422 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:10:43.29 ID:1RSLLPBx.net] >>412 それでいいよ ビジネスが入り組んできたらクラスにリファクタリングすればいい 俺は最初からクラスにしてるけどね
423 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:13:57.59 ID:o/NiMYKz.net] >>411 > システムにばら撒かれたenum100個なんて管理しきれないよ enum 使ったことないのか? なんか実務を知らないのに iwa4.hatenablog.com/entry/2013/03/04/180521 とかを見て switch は悪 ⇒ enum 不要 とか拗らせてるって感じ w
424 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:16:05.80 ID:KNXh5gp+.net] enumをクラスにするという考えがあることが根本的な設計のセンスの無さを感じる
425 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:18:31.13 ID:u72ghqtY.net] そのenumを置き換えたクラスを使う場所が100個あって後段でそれぞれ違う処理(メソッド)が必要なら 100個のクラス*100のメソッド=10000必要になる 本当に管理しきれるのかな 記号は記号でしかないと思う
426 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:23:13.06 ID:1RSLLPBx.net] 君たちはさC#を使ってるけどOOPはできてないんじゃないかな? たぶん昔ながらの手続き型のパラダイムから進歩してない フィールドやプロパティは丸出しで データベースの物理構造を色濃く反映したDTOを ネストしまくり分岐しまくりのやけに長いトランザクションスクリプトで処理する そんなコードばかり書いてるんだろ?
427 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:27:02.30 ID:1RSLLPBx.net] >>417 仕切れるよ 疎結合高業務で
428 名前:責務がしっかり分けられてるからね というかそれで管理できなかったらクラスという枠組みを失い無秩序状態になった同じ数(経験上もっと多くなるが)の処理なんて余計に管理できないだろ [] [ここ壊れてます]
429 名前:デフォルトの名無しさん [2017/12/10(日) 19:28:10.84 ID:RKQe6ZfS.net] >>418 キミ自身、キミの言う「昔ながらの手続き型のパラダイム」でキミの考える最強の「OOP」をしとるんやで もう少し脳を鍛えようか?ね?
430 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:28:59.49 ID:0VP/mrFZ.net] 滅茶苦茶レベルの低いところで仕事してるんだろうなあってのは伝わってくる
431 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:29:31.44 ID:K5F4H8OZ.net] >>419 いや、あんたの主張は疎結合どころか、enum相当のクラスに結合しまくりだろう。
432 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:32:15.18 ID:1RSLLPBx.net] >>422 疎結合だよ クラスにすればenumを使う側はenumの振る舞いの実装を知らなくていい クラスにすればある値と他の値の処理が同じスコープで干渉しなくて済む こんな基本もわかってないんだよなぁ ま、初心者スレってことか
433 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:36:46.16 ID:O8bRFaEo.net] \  ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ `'ー '´ ○ O ,.- ‐── ‐- 、 ,r'´ `ヽ ,イ jト、 /:.:! j i.::::゙, i:.:.:| _,, ,、--、 !:;;;;| |;;;;j ,r''"二ヽ r'⌒ヽ !;;;! ,ヘ;;i! ,,_r ・,ン.:! {〈・_,>、,, jヘi! 〈 j>j、 "´, イ `ヽ ,':::〉! `ゝ.`, ノ、__,入 j::rソ `゙i / ,r===ュ, `, '.:〔_ }! ! i.:::::::::::.:! ;! .!::::j::`` ー----─r- 、 , イ.:ト、 ゙===='′ ,イ!:::::!::.:.:.:. ゙, `ヽ _ノ /j.:::!:トヽ、 ´ ̄` ,ノ´ ,リ::::.:!:::.:.. i. \ ,.r'´ /.::!:::::::| `ヽ`"""´ /ノ.:.:.:.:.::!:.:. | ! / .:|.:.:.:::ト、 リ / !:. ! | / l , へ\! /'7ヽ |: j | . / l/^ヾ:::ト、! j! l 〉、 | | . | / i .::| i| j! | / `ー'′ ! j! !
434 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:38:51.23 ID:40kmfkZ7.net] はい! ID:1RSLLPBxの勝ち!w おまえらドンマイw
435 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:40:38.39 ID:0VP/mrFZ.net] enumの使い所を間違えるようなレベルの人間でないと共感は得られないと思う
436 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:41:38.15 ID:lTpNuF7F.net] と、中身のないレスをしてみるのであった。
437 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:46:34.91 ID:YjUTAOlB.net] ステータス(状態)をクラスにしちゃうと色々と説明が必要になっちゃうけどな もっと素直に設計できねぇの? お前らの剣は無駄な動きが多過ぎる
438 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:49:25.32 ID:+dBvFTXH.net] すみません。質問ですが、例外とエラーの違いって何ですか?
439 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:49:27.62 ID:0VP/mrFZ.net] 状態に複数の要素が絡んだ時、彼はどうクラスを設計するだろうか
440 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:51:18.85 ID:40kmfkZ7.net] >>426 >>428 >>430 負け惜しみが見苦しすぎるw
441 名前:片山博文MZ mailto:sage [2017/12/10(日) 19:52:02.61 ID:M7uFif4k.net] 例外は制御がぶっ飛ぶやつ。 エラーは、正常に処理ができなかったという意味。
442 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:57:13.54 ID:NAV3AZ5L.net] 状態数も20くらいまでなら把握できるが…それ以上はいやだねえ…
443 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:58:57.63 ID:in4pjWGE.net] >>429 ここで言っている例外はtry-catchでcatchで受けられる処理(Application Exceptionの類)の話 そのエラーの意味が何に対するエラーなのかわからないので違いは説明できない
444 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 19:59:05.93 ID:0VP/mrFZ.net] enumだらけの.net frameworkを、enumじゃなくてクラスにしろよなんて思いながら使ってないだろうよ
445 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:01:31.79 ID:1RSLLPBx.net] >>435 ベーシックライブラリと業務システムのドメインロジックを同じ感覚で書くプログラマは居ないよ
446 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:04:07.99 ID:0VP/mrFZ.net] >>436 だから普通は使い所をわかってるから、こんなこと何の議論も起こらないよねって話じゃん
447 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:04:55.70 ID:40kmfkZ7.net] からからうっせーよ死ねや
448 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:14:56.93 ID:1RSLLPBx.net] >>437 わかってないからなここの初心者連中
449 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:17:38.09 ID:in4pjWGE.net] このスレ来ている時点でみんな初心者。スレタイに「初心者用」ってちゃんと書いてあるから
450 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:41:13.41 ID:o/NiMYKz.net] 初心者ならいいんだけど、初心者を卒業したと勘違いしてる ID:1RSLLPBx が痛々しいだけ
451 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:42:45.81 ID:1RSLLPBx.net] 今日は負け惜しみを沢山見たが反論は少なかったなぁ
452 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 20:57:11.24 ID:gQySa/bC.net] キチガイにふれるなよ
453 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 21:46:32.27 ID:Uujd9YQH.net] 計算量の観点で比較すると switchはコンパイラが2分探索にしてくれる場合がある O(log2(N)) クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト で合ってる?
454 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 21:54:10.74 ID:bPupZbt5.net] >>444 switch でも状況によってジャンプテーブルにしたりするんじゃね?
455 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 22:12:18.04 ID:Uujd9YQH.net] >>445 C#はジャンプテーブルも使うみたいですね この比較はあんま意味ない気がしてきたので閉めます
456 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 22:28:48.38 ID:klwCxkV9.net] 俺以外でここまで書き込んだ奴は明日朝一で中央線に飛び込んで死ね
457 名前:デフォルトの名無しさん mailto:sage [2017/12/10(日) 22:37:53.36 ID:8I95hEEE.net] 仮想メソッド呼び出しはJITがインラインキャッシュで展開するからコストはほぼゼロのはず