「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part133
http://mevius.5ch.net/test/read.cgi/tech/1510056685/
■関連スレ
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#(初心者用) Part134
■ このスレッドは過去ログ倉庫に格納されています
2017/11/28(火) 21:30:48.55ID:7U+HR4FY
329デフォルトの名無しさん
2017/12/09(土) 21:10:41.34ID:jyWlwvil >>326
1秒ももたついたらクソゲーの烙印押されと思うぞ
1秒ももたついたらクソゲーの烙印押されと思うぞ
330デフォルトの名無しさん
2017/12/09(土) 21:16:00.04ID:DLrsngiD ゲーム開発かよ
331デフォルトの名無しさん
2017/12/09(土) 21:31:07.48ID:kSf52iSg 動画でも音声でもリアルタイム処理が必要な場合は1秒でも止まると困るね。
332デフォルトの名無しさん
2017/12/09(土) 21:36:14.68ID:bldOuh/e 10秒に一度ぐらいずつ強制gcやっときゃいいよ
333デフォルトの名無しさん
2017/12/09(土) 21:41:11.39ID:LewaYlvd 大昔のPC-98じゃあるまいしそんな止まらないからw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw
334デフォルトの名無しさん
2017/12/09(土) 21:44:43.70ID:CMBXHaeA GCで体感できるほどもたついたことないな
335デフォルトの名無しさん
2017/12/09(土) 21:53:25.70ID:fpEjaZID >>328
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足
336デフォルトの名無しさん
2017/12/09(土) 21:56:19.74ID:DLrsngiD >>335
分からないから詳しく
分からないから詳しく
337デフォルトの名無しさん
2017/12/09(土) 22:01:20.70ID:bldOuh/e enum継承できねーから使わねーよ
338デフォルトの名無しさん
2017/12/09(土) 22:03:05.57ID:DLrsngiD >>337
そういうことか
そういうことか
339デフォルトの名無しさん
2017/12/09(土) 22:06:49.31ID:LNYXpqZE んー、それでもC++の人が多用するって理由とそれがC#じゃ間違いって理由がよくわからん。
340デフォルトの名無しさん
2017/12/09(土) 22:09:24.80ID:DLrsngiD >>339
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?
341デフォルトの名無しさん
2017/12/09(土) 22:12:55.12ID:CMBXHaeA342デフォルトの名無しさん
2017/12/09(土) 22:13:29.50ID:jyWlwvil enum を継承? w
343デフォルトの名無しさん
2017/12/09(土) 22:15:27.00ID:DLrsngiD344デフォルトの名無しさん
2017/12/09(土) 22:17:17.61ID:CMBXHaeA >>343
他は知らん
他は知らん
345デフォルトの名無しさん
2017/12/09(土) 22:20:10.10ID:DLrsngiD >>342
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?
346デフォルトの名無しさん
2017/12/09(土) 22:28:13.72ID:Er9Ndq7R 最近enumが〜って言う初心者が一人紛れ込んだだけだから
相手にしなくていいよ
相手にしなくていいよ
347デフォルトの名無しさん
2017/12/10(日) 00:39:39.78ID:okOunyow 言語そのものの事ではないのだけど。
Windows10 の PC に入れっぱなしにしてた VS Community 2015 で C# で Webアプリ(MVC)の新規プロジェクトを作成して、
それをそのままビルド→実行するとブラウザが起動して(これは当たり前)、
サーバーエラーとなって「指定された引数は、有効な値の範囲内にありません。」て表示する&
ダイアログで「Mirosoft.VsHub.Server.HttpHost64.exeは動作を停止しました」って出ます。
HttpHost64.exeの方は連続して出てて、 KB3090034 を当てたら最初の1回だけになりました。
原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。
Windows10 の PC に入れっぱなしにしてた VS Community 2015 で C# で Webアプリ(MVC)の新規プロジェクトを作成して、
それをそのままビルド→実行するとブラウザが起動して(これは当たり前)、
サーバーエラーとなって「指定された引数は、有効な値の範囲内にありません。」て表示する&
ダイアログで「Mirosoft.VsHub.Server.HttpHost64.exeは動作を停止しました」って出ます。
HttpHost64.exeの方は連続して出てて、 KB3090034 を当てたら最初の1回だけになりました。
原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。
348デフォルトの名無しさん
2017/12/10(日) 02:07:22.55ID:40kmfkZ7349デフォルトの名無しさん
2017/12/10(日) 10:45:19.56ID:+bg1ulUg enum大好きな人多いよね
350デフォルトの名無しさん
2017/12/10(日) 10:51:21.68ID:cFJQGF3i 処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?
351デフォルトの名無しさん
2017/12/10(日) 10:56:20.84ID:OKZOYtiA352デフォルトの名無しさん
2017/12/10(日) 10:59:35.44ID:cFJQGF3i ごめんなさい、例の子呼んじゃいました・・・
353デフォルトの名無しさん
2017/12/10(日) 11:19:22.17ID:klwCxkV9 死ね
354デフォルトの名無しさん
2017/12/10(日) 11:22:56.63ID:zEFqnqTD 質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ
355デフォルトの名無しさん
2017/12/10(日) 11:23:21.91ID:7Si01GpM なんでこうも例外は嫌われなきゃいけないのか
356デフォルトの名無しさん
2017/12/10(日) 11:24:00.35ID:DEQ8njbJ あいつが召喚されるから
357デフォルトの名無しさん
2017/12/10(日) 11:24:37.45ID:1RSLLPBx >>350
オブジェクトを返せばいいよ
オブジェクトを返せばいいよ
358デフォルトの名無しさん
2017/12/10(日) 11:25:55.23ID:1RSLLPBx 例外を使えないならOOPやめたほうがいい
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど
359デフォルトの名無しさん
2017/12/10(日) 11:27:29.98ID:zEFqnqTD360デフォルトの名無しさん
2017/12/10(日) 11:31:38.35ID:1RSLLPBx361デフォルトの名無しさん
2017/12/10(日) 11:32:45.27ID:K5F4H8OZ 例外も内部にステータス持つなら同じことだから、要はenumのかわりにクラスを使えということなんだろう。
必ずしもそれが筋が良いとは思わんけどな。
必ずしもそれが筋が良いとは思わんけどな。
362デフォルトの名無しさん
2017/12/10(日) 11:36:28.15ID:zEFqnqTD363デフォルトの名無しさん
2017/12/10(日) 11:36:52.38ID:1RSLLPBx364デフォルトの名無しさん
2017/12/10(日) 11:38:37.58ID:zEFqnqTD365デフォルトの名無しさん
2017/12/10(日) 11:55:32.54ID:7Si01GpM enumで戻り値を返した先にはswitch〜case文の羅列が待っている
それは、オブジェクト指向として美しくない
とか言って見る
それは、オブジェクト指向として美しくない
とか言って見る
366デフォルトの名無しさん
2017/12/10(日) 12:15:32.85ID:I3oRkg9y >>349
エナム?イーナム?
エナム?イーナム?
367デフォルトの名無しさん
2017/12/10(日) 12:16:06.09ID:fCk6aJzv メソッドの結果が何種類かある
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい
368347
2017/12/10(日) 12:24:22.81ID:okOunyow369デフォルトの名無しさん
2017/12/10(日) 12:25:57.85ID:w7IPLNC5 そんなもん地獄でもなんでもないわw
大袈裟なやつだなw
大袈裟なやつだなw
370デフォルトの名無しさん
2017/12/10(日) 12:42:01.80ID:hfoTCgp6 なんでEnumダメなん?.NET標準ライブラリでもよく使われてるやん
371デフォルトの名無しさん
2017/12/10(日) 12:44:31.00ID:KNXh5gp+ 補完効くから便利だもんね
switchとか全部書いてくれるし
switchとか全部書いてくれるし
372デフォルトの名無しさん
2017/12/10(日) 13:02:49.80ID:Lqf3YhZb373デフォルトの名無しさん
2017/12/10(日) 13:08:33.64ID:1RSLLPBx ケースバイケース
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い
374デフォルトの名無しさん
2017/12/10(日) 13:24:00.94ID:TdgJU12g ダメって言ってる奴の頭がおかしいだけ
enum の継承とか意味わからんし
enum の継承とか意味わからんし
375デフォルトの名無しさん
2017/12/10(日) 13:31:07.35ID:Xq7qpXg6 >>374
ステートマシン作ってそのクラスを継承すると欲しくなる
ステートマシン作ってそのクラスを継承すると欲しくなる
376デフォルトの名無しさん
2017/12/10(日) 13:33:07.99ID:1RSLLPBx ダメとは言わないがコード整理するとenumが自然と消える
377デフォルトの名無しさん
2017/12/10(日) 14:00:03.48ID:K5F4H8OZ どこでどういうタイミングで消えるのか興味深い
378デフォルトの名無しさん
2017/12/10(日) 14:11:52.06ID:1RSLLPBx >>377
例えばこういう感じ
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()); }
例えばこういう感じ
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()); }
379デフォルトの名無しさん
2017/12/10(日) 14:20:47.04ID:K5F4H8OZ ありがとう。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。
380デフォルトの名無しさん
2017/12/10(日) 14:23:46.87ID:KNXh5gp+ 君のenumの使い方がそもそもおかしいだけで、普通はオプション的なものに使うからそうはならないだろう
381デフォルトの名無しさん
2017/12/10(日) 14:44:45.17ID:1RSLLPBx >>379
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい
382デフォルトの名無しさん
2017/12/10(日) 14:50:12.52ID:o/NiMYKz383デフォルトの名無しさん
2017/12/10(日) 15:30:45.08ID:hRp3Q2MJ >>368
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
https://mevius.5ch.net/test/read.cgi/tech/1484855822/
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
https://mevius.5ch.net/test/read.cgi/tech/1484855822/
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任
384デフォルトの名無しさん
2017/12/10(日) 16:01:41.00ID:K5F4H8OZ >>381
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。
385デフォルトの名無しさん
2017/12/10(日) 16:32:25.95ID:1RSLLPBx386デフォルトの名無しさん
2017/12/10(日) 16:41:37.05ID:1RSLLPBx むろん全てのenumをオブジェクトにすべきと言ってるわけではない
ビジネスレイヤではオブジェクトにしたほうが良い場面が圧倒的に多いが
単なるフラグセットとみなしたほうが有利な場面もそりゃあるだろう
ビジネスレイヤではオブジェクトにしたほうが良い場面が圧倒的に多いが
単なるフラグセットとみなしたほうが有利な場面もそりゃあるだろう
387デフォルトの名無しさん
2017/12/10(日) 16:56:48.76ID:K5F4H8OZ388デフォルトの名無しさん
2017/12/10(日) 16:57:04.47ID:AsjcCxkl xがなにで1と2でどう違うのか分からんが
まずxをクラス(か構造体)にするべきだと思うんだが
まずxをクラス(か構造体)にするべきだと思うんだが
389デフォルトの名無しさん
2017/12/10(日) 16:59:10.81ID:1RSLLPBx >>388
大した意味のないサンプルに深入りするの馬鹿馬鹿しくない?
大した意味のないサンプルに深入りするの馬鹿馬鹿しくない?
390デフォルトの名無しさん
2017/12/10(日) 17:11:04.47ID:QtRE0gJ3 ほらキチガイが湧いたwww
391デフォルトの名無しさん
2017/12/10(日) 17:14:47.78ID:IOEOCVr0 例外も列挙体もLINQもインタフェースもイラネってかwwwwww
392デフォルトの名無しさん
2017/12/10(日) 17:31:58.06ID:klwCxkV9 死ねで終わらせとけばいいのに相手しやがって死ね
393デフォルトの名無しさん
2017/12/10(日) 17:55:36.64ID:CnpEkAKU 昔流行ったswitchを無くせって話は、元々はJavaみたいな関数ポインタもデリゲートも使えない言語で
ジャンプテーブルをどうやって実現するかって話(要するにいかに効率化するかって目線の話)
だったと思うんだけど、それが途中からこじつけか何か知らんけどOOP敵に美しいとか正しいって
話にすり替わった印象しかないね。
そりゃ多態使ってswitch無くした方が美しく可読的に書ける場合もあるけど、
そうじゃない場合の方が圧倒的に多い。
要するに上にも書いたけど、羹に懲りて膾を吹く類の話だよね。
今でもこういうこと言ってる人の話は真に受けちゃダメだと思う
ジャンプテーブルをどうやって実現するかって話(要するにいかに効率化するかって目線の話)
だったと思うんだけど、それが途中からこじつけか何か知らんけどOOP敵に美しいとか正しいって
話にすり替わった印象しかないね。
そりゃ多態使ってswitch無くした方が美しく可読的に書ける場合もあるけど、
そうじゃない場合の方が圧倒的に多い。
要するに上にも書いたけど、羹に懲りて膾を吹く類の話だよね。
今でもこういうこと言ってる人の話は真に受けちゃダメだと思う
394デフォルトの名無しさん
2017/12/10(日) 18:11:31.06ID:u72ghqtY enumをクラス化でシンプルにできるのはシングルのenumで状態が決まる場合
複合的な状態を持ってるとまあ理解に苦しむコードになるよ
ifとswitchのほうが読みやすく理解しやすいならそっちを使えばいい
複合的な状態を持ってるとまあ理解に苦しむコードになるよ
ifとswitchのほうが読みやすく理解しやすいならそっちを使えばいい
395デフォルトの名無しさん
2017/12/10(日) 18:13:44.60ID:o/NiMYKz >>389
例示されたサンプルがおかしいって言われてるって言うことをそろそろ気づこうか
例示されたサンプルがおかしいって言われてるって言うことをそろそろ気づこうか
396デフォルトの名無しさん
2017/12/10(日) 18:15:53.82ID:40kmfkZ7 しょーもな
首吊って死ねば?
首吊って死ねば?
397デフォルトの名無しさん
2017/12/10(日) 18:30:36.92ID:1RSLLPBx398デフォルトの名無しさん
2017/12/10(日) 18:39:54.73ID:u72ghqtY それは使い方が悪いだけだよ
399デフォルトの名無しさん
2017/12/10(日) 18:41:44.28ID:o/NiMYKz >>397
お前の狭い世界はどうでもいい
お前の狭い世界はどうでもいい
400デフォルトの名無しさん
2017/12/10(日) 18:45:22.58ID:1RSLLPBx まあ初心者スレだしOOPわからんってのも仕方がないか…
何年後かには理解できてると思う
何年後かには理解できてると思う
401デフォルトの名無しさん
2017/12/10(日) 18:47:16.85ID:u72ghqtY >>378
このコートの最初が悪くてあとが良いとは限らないと思うが
これ100個あったとして
どこぞの言語みたいに一クラス一ファイル縛りがあったら100個ファイルが必要
それに見通しが非常に悪い
switchも見通しが悪いけど100個のクラスの100メソッドを検索で渡るよりまし
このコートの最初が悪くてあとが良いとは限らないと思うが
これ100個あったとして
どこぞの言語みたいに一クラス一ファイル縛りがあったら100個ファイルが必要
それに見通しが非常に悪い
switchも見通しが悪いけど100個のクラスの100メソッドを検索で渡るよりまし
402デフォルトの名無しさん
2017/12/10(日) 18:49:15.44ID:u72ghqtY 状態によって見やすいコードはかわるけどswitch==悪はfalseだろ
403デフォルトの名無しさん
2017/12/10(日) 18:52:06.23ID:40kmfkZ7 >>402
草
草
404デフォルトの名無しさん
2017/12/10(日) 18:52:09.72ID:in4pjWGE 雑談スレか
405デフォルトの名無しさん
2017/12/10(日) 18:55:12.88ID:1RSLLPBx >>401
すまんがまず100このenum値って時点で設計ミスだと思うぞ
普通の業務ロジックでそんな区分分けみたことないわ
大量のenumといったらせいぜいリソースIDのラベル化とか?
そんなんまでクラス化はしないよ
なんでもクラス化するわけじゃないってなんどもレスしてるよね?
まあ仮に区分が膨大な場合でもそれがビジネス上の振る舞いを持つならクラスにしたほうがいいぞ
クラスにしたら見通し悪いっていうけど
そりゃビジネスそのものが見通し悪いんだから仕方がないか
クラスっていう保護がなければもっと悲惨なことになる
すまんがまず100このenum値って時点で設計ミスだと思うぞ
普通の業務ロジックでそんな区分分けみたことないわ
大量のenumといったらせいぜいリソースIDのラベル化とか?
そんなんまでクラス化はしないよ
なんでもクラス化するわけじゃないってなんどもレスしてるよね?
まあ仮に区分が膨大な場合でもそれがビジネス上の振る舞いを持つならクラスにしたほうがいいぞ
クラスにしたら見通し悪いっていうけど
そりゃビジネスそのものが見通し悪いんだから仕方がないか
クラスっていう保護がなければもっと悲惨なことになる
407デフォルトの名無しさん
2017/12/10(日) 18:57:52.94ID:u72ghqtY もともと責務と言いながら
状態を伝えるだけのenumをクラスに拡張しちゃって責務の内容を広げっちゃって
保守性を落としてるんだからまだまだだね
状態を伝えるだけのenumをクラスに拡張しちゃって責務の内容を広げっちゃって
保守性を落としてるんだからまだまだだね
408デフォルトの名無しさん
2017/12/10(日) 18:59:10.78ID:u72ghqtY409デフォルトの名無しさん
2017/12/10(日) 19:02:50.61ID:1RSLLPBx enumが100個あってシステムのあっちこっちに分岐があります
仕様が変わりました値Aの仕様が変わりました
enumの場合:
システムをenumのAで検索
あっちこっちでヒットしたコードを慎重に整合性を確認しながら修正
もしかしたら見逃しがあるかもしれないと不安を抱えながら作業
Aを修正してるのに周りの他の値の場合の処理が凄まじいノイズになってめまいがする
コードが他の責務に埋め込まれてるのでテストは容易ではない
クラスの場合:
派生クラスAが定義されてるファイルを開く
1つのファイルに集中できるので楽々修正
Aに関する処理は全部このファイルにあるので見逃しも無い
他の値の処理が周りに無いのでクリアな視界で作業可能
クラスになってるのでテストは超簡単
仕様が変わりました値Aの仕様が変わりました
enumの場合:
システムをenumのAで検索
あっちこっちでヒットしたコードを慎重に整合性を確認しながら修正
もしかしたら見逃しがあるかもしれないと不安を抱えながら作業
Aを修正してるのに周りの他の値の場合の処理が凄まじいノイズになってめまいがする
コードが他の責務に埋め込まれてるのでテストは容易ではない
クラスの場合:
派生クラスAが定義されてるファイルを開く
1つのファイルに集中できるので楽々修正
Aに関する処理は全部このファイルにあるので見逃しも無い
他の値の処理が周りに無いのでクリアな視界で作業可能
クラスになってるのでテストは超簡単
410デフォルトの名無しさん
2017/12/10(日) 19:07:08.35ID:1RSLLPBx enum値が削除されたら?
新しいenum値が追加されたら?
クラス化されてないと超しんどいぞ
システムにばら撒かれたenum100個なんて管理しきれないよ
OOPの言語と開発環境ならクラス100個は楽勝で管理できるけどな
新しいenum値が追加されたら?
クラス化されてないと超しんどいぞ
システムにばら撒かれたenum100個なんて管理しきれないよ
OOPの言語と開発環境ならクラス100個は楽勝で管理できるけどな
411デフォルトの名無しさん
2017/12/10(日) 19:07:59.48ID:u72ghqtY412デフォルトの名無しさん
2017/12/10(日) 19:09:21.56ID:HHgBYreh enumなんて存在すら忘れてた
もうクセでデータ保持するクラス作っちゃってたわ
やっぱ固定値の列挙はenumの方がええんやろか
もうクセでデータ保持するクラス作っちゃってたわ
やっぱ固定値の列挙はenumの方がええんやろか
413デフォルトの名無しさん
2017/12/10(日) 19:10:43.29ID:1RSLLPBx414デフォルトの名無しさん
2017/12/10(日) 19:13:57.59ID:o/NiMYKz >>410
> システムにばら撒かれたenum100個なんて管理しきれないよ
enum 使ったことないのか?
なんか実務を知らないのに
http://iwa4.hatenablog.com/entry/2013/03/04/180521
とかを見て switch は悪 ⇒ enum 不要
とか拗らせてるって感じ w
> システムにばら撒かれたenum100個なんて管理しきれないよ
enum 使ったことないのか?
なんか実務を知らないのに
http://iwa4.hatenablog.com/entry/2013/03/04/180521
とかを見て switch は悪 ⇒ enum 不要
とか拗らせてるって感じ w
415デフォルトの名無しさん
2017/12/10(日) 19:16:05.80ID:KNXh5gp+ enumをクラスにするという考えがあることが根本的な設計のセンスの無さを感じる
416デフォルトの名無しさん
2017/12/10(日) 19:18:31.13ID:u72ghqtY そのenumを置き換えたクラスを使う場所が100個あって後段でそれぞれ違う処理(メソッド)が必要なら
100個のクラス*100のメソッド=10000必要になる
本当に管理しきれるのかな
記号は記号でしかないと思う
100個のクラス*100のメソッド=10000必要になる
本当に管理しきれるのかな
記号は記号でしかないと思う
417デフォルトの名無しさん
2017/12/10(日) 19:23:13.06ID:1RSLLPBx 君たちはさC#を使ってるけどOOPはできてないんじゃないかな?
たぶん昔ながらの手続き型のパラダイムから進歩してない
フィールドやプロパティは丸出しで
データベースの物理構造を色濃く反映したDTOを
ネストしまくり分岐しまくりのやけに長いトランザクションスクリプトで処理する
そんなコードばかり書いてるんだろ?
たぶん昔ながらの手続き型のパラダイムから進歩してない
フィールドやプロパティは丸出しで
データベースの物理構造を色濃く反映したDTOを
ネストしまくり分岐しまくりのやけに長いトランザクションスクリプトで処理する
そんなコードばかり書いてるんだろ?
418デフォルトの名無しさん
2017/12/10(日) 19:27:02.30ID:1RSLLPBx >>416
仕切れるよ
疎結合高業務で責務がしっかり分けられてるからね
というかそれで管理できなかったらクラスという枠組みを失い無秩序状態になった同じ数(経験上もっと多くなるが)の処理なんて余計に管理できないだろ
仕切れるよ
疎結合高業務で責務がしっかり分けられてるからね
というかそれで管理できなかったらクラスという枠組みを失い無秩序状態になった同じ数(経験上もっと多くなるが)の処理なんて余計に管理できないだろ
419デフォルトの名無しさん
2017/12/10(日) 19:28:10.84ID:RKQe6ZfS420デフォルトの名無しさん
2017/12/10(日) 19:28:59.49ID:0VP/mrFZ 滅茶苦茶レベルの低いところで仕事してるんだろうなあってのは伝わってくる
421デフォルトの名無しさん
2017/12/10(日) 19:29:31.44ID:K5F4H8OZ >>418
いや、あんたの主張は疎結合どころか、enum相当のクラスに結合しまくりだろう。
いや、あんたの主張は疎結合どころか、enum相当のクラスに結合しまくりだろう。
422デフォルトの名無しさん
2017/12/10(日) 19:32:15.18ID:1RSLLPBx >>421
疎結合だよ
クラスにすればenumを使う側はenumの振る舞いの実装を知らなくていい
クラスにすればある値と他の値の処理が同じスコープで干渉しなくて済む
こんな基本もわかってないんだよなぁ
ま、初心者スレってことか
疎結合だよ
クラスにすればenumを使う側はenumの振る舞いの実装を知らなくていい
クラスにすればある値と他の値の処理が同じスコープで干渉しなくて済む
こんな基本もわかってないんだよなぁ
ま、初心者スレってことか
423デフォルトの名無しさん
2017/12/10(日) 19:36:46.16ID:O8bRFaEo \
 ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`'ー '´
○
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! !
 ̄ヽ、 _ノ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`'ー '´
○
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! !
424デフォルトの名無しさん
2017/12/10(日) 19:38:51.23ID:40kmfkZ7 はい!
ID:1RSLLPBxの勝ち!w
おまえらドンマイw
ID:1RSLLPBxの勝ち!w
おまえらドンマイw
425デフォルトの名無しさん
2017/12/10(日) 19:40:38.39ID:0VP/mrFZ enumの使い所を間違えるようなレベルの人間でないと共感は得られないと思う
426デフォルトの名無しさん
2017/12/10(日) 19:41:38.15ID:lTpNuF7F と、中身のないレスをしてみるのであった。
427デフォルトの名無しさん
2017/12/10(日) 19:46:34.91ID:YjUTAOlB ステータス(状態)をクラスにしちゃうと色々と説明が必要になっちゃうけどな
もっと素直に設計できねぇの?
お前らの剣は無駄な動きが多過ぎる
もっと素直に設計できねぇの?
お前らの剣は無駄な動きが多過ぎる
428デフォルトの名無しさん
2017/12/10(日) 19:49:25.32ID:+dBvFTXH すみません。質問ですが、例外とエラーの違いって何ですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- ( ・᷄ὢ・᷅ )あ?
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
