[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:31 / Filesize : 260 KB / Number-of Response : 1027
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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がインラインキャッシュで展開するからコストはほぼゼロのはず






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<260KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef