「どんなにくだらない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
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 すみません。質問ですが、例外とエラーの違いって何ですか?
429デフォルトの名無しさん
2017/12/10(日) 19:49:27.62ID:0VP/mrFZ 状態に複数の要素が絡んだ時、彼はどうクラスを設計するだろうか
430デフォルトの名無しさん
2017/12/10(日) 19:51:18.85ID:40kmfkZ7431片山博文MZ ◆T6xkBnTXz7B0
2017/12/10(日) 19:52:02.61ID:M7uFif4k 例外は制御がぶっ飛ぶやつ。
エラーは、正常に処理ができなかったという意味。
エラーは、正常に処理ができなかったという意味。
432デフォルトの名無しさん
2017/12/10(日) 19:57:13.54ID:NAV3AZ5L 状態数も20くらいまでなら把握できるが…それ以上はいやだねえ…
433デフォルトの名無しさん
2017/12/10(日) 19:58:57.63ID:in4pjWGE >>428
ここで言っている例外はtry-catchでcatchで受けられる処理(Application Exceptionの類)の話
そのエラーの意味が何に対するエラーなのかわからないので違いは説明できない
ここで言っている例外はtry-catchでcatchで受けられる処理(Application Exceptionの類)の話
そのエラーの意味が何に対するエラーなのかわからないので違いは説明できない
434デフォルトの名無しさん
2017/12/10(日) 19:59:05.93ID:0VP/mrFZ enumだらけの.net frameworkを、enumじゃなくてクラスにしろよなんて思いながら使ってないだろうよ
435デフォルトの名無しさん
2017/12/10(日) 20:01:31.79ID:1RSLLPBx >>434
ベーシックライブラリと業務システムのドメインロジックを同じ感覚で書くプログラマは居ないよ
ベーシックライブラリと業務システムのドメインロジックを同じ感覚で書くプログラマは居ないよ
436デフォルトの名無しさん
2017/12/10(日) 20:04:07.99ID:0VP/mrFZ >>435
だから普通は使い所をわかってるから、こんなこと何の議論も起こらないよねって話じゃん
だから普通は使い所をわかってるから、こんなこと何の議論も起こらないよねって話じゃん
437デフォルトの名無しさん
2017/12/10(日) 20:04:55.70ID:40kmfkZ7 からからうっせーよ死ねや
438デフォルトの名無しさん
2017/12/10(日) 20:14:56.93ID:1RSLLPBx >>436
わかってないからなここの初心者連中
わかってないからなここの初心者連中
439デフォルトの名無しさん
2017/12/10(日) 20:17:38.09ID:in4pjWGE このスレ来ている時点でみんな初心者。スレタイに「初心者用」ってちゃんと書いてあるから
440デフォルトの名無しさん
2017/12/10(日) 20:41:13.41ID:o/NiMYKz 初心者ならいいんだけど、初心者を卒業したと勘違いしてる ID:1RSLLPBx が痛々しいだけ
441デフォルトの名無しさん
2017/12/10(日) 20:42:45.81ID:1RSLLPBx 今日は負け惜しみを沢山見たが反論は少なかったなぁ
442デフォルトの名無しさん
2017/12/10(日) 20:57:11.24ID:gQySa/bC キチガイにふれるなよ
443デフォルトの名無しさん
2017/12/10(日) 21:46:32.27ID:Uujd9YQH 計算量の観点で比較すると
switchはコンパイラが2分探索にしてくれる場合がある O(log2(N))
クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト
で合ってる?
switchはコンパイラが2分探索にしてくれる場合がある O(log2(N))
クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト
で合ってる?
444デフォルトの名無しさん
2017/12/10(日) 21:54:10.74ID:bPupZbt5 >>443
switch でも状況によってジャンプテーブルにしたりするんじゃね?
switch でも状況によってジャンプテーブルにしたりするんじゃね?
445デフォルトの名無しさん
2017/12/10(日) 22:12:18.04ID:Uujd9YQH446デフォルトの名無しさん
2017/12/10(日) 22:28:48.38ID:klwCxkV9 俺以外でここまで書き込んだ奴は明日朝一で中央線に飛び込んで死ね
447デフォルトの名無しさん
2017/12/10(日) 22:37:53.36ID:8I95hEEE 仮想メソッド呼び出しはJITがインラインキャッシュで展開するからコストはほぼゼロのはず
448デフォルトの名無しさん
2017/12/10(日) 22:38:00.15ID:/a8M7Ljd >>446
板違い。メンタルヘルス板に行け
板違い。メンタルヘルス板に行け
449447
2017/12/10(日) 22:39:14.02ID:8I95hEEE 補足
展開っていってもインライン展開するわけじゃないよ
静的なメソッド呼び出しに置き換えるということ
展開っていってもインライン展開するわけじゃないよ
静的なメソッド呼び出しに置き換えるということ
450デフォルトの名無しさん
2017/12/10(日) 22:54:55.63ID:4CvOnmGy >>428
例外 ⊂ エラー
例外 ⊂ エラー
451デフォルトの名無しさん
2017/12/10(日) 23:09:05.85ID:NAV3AZ5L >>449
vtable を間に噛むんじゃないか?
vtable を間に噛むんじゃないか?
452デフォルトの名無しさん
2017/12/10(日) 23:13:59.68ID:40kmfkZ7 >>450
マ?
マ?
453デフォルトの名無しさん
2017/12/10(日) 23:47:37.64ID:u72ghqtY shapeクラスをベースに持つrectangleとcircleクラスの挙動をswitchで制御してるならOOPに反すると思うけど
確固たる概念も実体もないものをわざわざクラスにしてまでenumを消す理由はない
普通のマジックナンバー代わりの記号がenum
オブジェクト間でクラスがメッセージをenumで渡すだけ
上手に使えばいいだけ
確固たる概念も実体もないものをわざわざクラスにしてまでenumを消す理由はない
普通のマジックナンバー代わりの記号がenum
オブジェクト間でクラスがメッセージをenumで渡すだけ
上手に使えばいいだけ
454デフォルトの名無しさん
2017/12/10(日) 23:56:55.90ID:+mi54qJj あ、もうその話終わってるんで(^^;
455デフォルトの名無しさん
2017/12/11(月) 00:02:40.94ID:4r/Nu0Q4456デフォルトの名無しさん
2017/12/11(月) 00:13:22.40ID:duNhD2vY 実体の無い物をクラスにしたらドキュメント書けよと
それだけだけどな
書かないでやってる奴はギルティ
それだけだけどな
書かないでやってる奴はギルティ
457デフォルトの名無しさん
2017/12/11(月) 00:24:03.35ID:ZlOMrHZS メッセージがただの記号だったのにクラスになるとオブジェクトの生成や
必要に応じてライフタイム管理が必要になる
しかも作ったオブジェクトに処理を移譲したり他のオブジェクトを渡したりして新たなオブジェクトと結合が密になる恐れがある
そこまでしないなら記号の受け渡しで済んだものがクラスの管理が増えるだけでメリットは薄い
必要に応じてライフタイム管理が必要になる
しかも作ったオブジェクトに処理を移譲したり他のオブジェクトを渡したりして新たなオブジェクトと結合が密になる恐れがある
そこまでしないなら記号の受け渡しで済んだものがクラスの管理が増えるだけでメリットは薄い
458デフォルトの名無しさん
2017/12/11(月) 03:52:53.05ID:oxZtEftd あー、そーゆーのはママに教えてあげてね
459デフォルトの名無しさん
2017/12/11(月) 06:40:10.22ID:6BzZoNtD >>441
そりゃ反論はガン無視だもんな w
そりゃ反論はガン無視だもんな w
460デフォルトの名無しさん
2017/12/11(月) 08:32:07.64ID:Pz9H8j59 > オブジェクトの生成
状態変わらないのだからpublicなstaticメンバで持てばよい
> ライフタイム管理
そんなに気になるのならstructにすればよい
> 処理を委譲したり(最後まで)
全く意味不明
状態変わらないのだからpublicなstaticメンバで持てばよい
> ライフタイム管理
そんなに気になるのならstructにすればよい
> 処理を委譲したり(最後まで)
全く意味不明
461デフォルトの名無しさん
2017/12/11(月) 08:37:46.08ID:PAoZtWNN 一晩経っても負け惜しみ言ってるやつ居てわろた
せめて反論したらどうなの?
>>457
メッセージを列挙値で済ませようとする発想がまずチープだがまあいい
RegexOptionsみたいな場合もあるからな
問題はドメインオブジェクトを列挙値で表現してしまうケースな
昨日から議論してんのはメッセージの話じゃないんだよそもそも
君はまだそこを理解してない
せめて反論したらどうなの?
>>457
メッセージを列挙値で済ませようとする発想がまずチープだがまあいい
RegexOptionsみたいな場合もあるからな
問題はドメインオブジェクトを列挙値で表現してしまうケースな
昨日から議論してんのはメッセージの話じゃないんだよそもそも
君はまだそこを理解してない
462デフォルトの名無しさん
2017/12/11(月) 08:40:03.91ID:Pz9H8j59 どうしてもenumにこだわりたいのなら
Attribute付加
拡張メソッド作る
こんな手段はある
Attribute付加
拡張メソッド作る
こんな手段はある
463デフォルトの名無しさん
2017/12/11(月) 08:44:48.49ID:PAoZtWNN 他のオブジェクトとの関連云々ってさ
べつに列挙値からオブジェクトにしたから急に関連が出てきたものじゃないんだよね
ドメインの性質としてもともと本質的に関連があるものなんだよそれは
それがオブジェクトにしたことによって可視化されただけ
列挙値のままだと関連があるのにそれがハッキリと見えず暗黙の結合状態になってるだけ
それはまさに最悪の状態だよ
べつに列挙値からオブジェクトにしたから急に関連が出てきたものじゃないんだよね
ドメインの性質としてもともと本質的に関連があるものなんだよそれは
それがオブジェクトにしたことによって可視化されただけ
列挙値のままだと関連があるのにそれがハッキリと見えず暗黙の結合状態になってるだけ
それはまさに最悪の状態だよ
464デフォルトの名無しさん
2017/12/11(月) 08:50:22.92ID:DFoAuevB 設計書の構造に箱ができないものをクラスにするのはセンスが悪いな
こんなゴミクラスたくさん作っちゃってクラス図でどうやって説明するの?
こんなゴミクラスたくさん作っちゃってクラス図でどうやって説明するの?
465デフォルトの名無しさん
2017/12/11(月) 08:56:14.04ID:DFoAuevB 汎用ライブラリにでもぶち込むならともかく
こんな枝葉までクラスにされるとソースの粒度に統一感がでない
ステータスなんかクラスにすんなよ
ドキュメント書くのが面倒くせえだろ
それはイコール他人に説明する手間が増えてることだと気づけよ
どーせドキュメント書かないんだろお前馬鹿だから
こんな枝葉までクラスにされるとソースの粒度に統一感がでない
ステータスなんかクラスにすんなよ
ドキュメント書くのが面倒くせえだろ
それはイコール他人に説明する手間が増えてることだと気づけよ
どーせドキュメント書かないんだろお前馬鹿だから
466デフォルトの名無しさん
2017/12/11(月) 09:36:16.99ID:SJ7HWrxD 他人に説明するためのドキュメントは確かに書かないな
ソース見たほうが早いし間違いがない
ソースコードが設計書である
俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ
ソース見たほうが早いし間違いがない
ソースコードが設計書である
俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ
467デフォルトの名無しさん
2017/12/11(月) 09:38:16.34ID:LDcEcB6H >>466
ワケのわからんソース書くやつに限ってお前みたいなこと言うのな
ワケのわからんソース書くやつに限ってお前みたいなこと言うのな
468デフォルトの名無しさん
2017/12/11(月) 09:41:22.91ID:ibPW1Iwl ちょっと昔な感じだな
今は当たり前にドキュメントを書いてる時代だと思うけど
今は当たり前にドキュメントを書いてる時代だと思うけど
469デフォルトの名無しさん
2017/12/11(月) 09:43:28.23ID:oxZtEftd はいはいご立派ご立派
470デフォルトの名無しさん
2017/12/11(月) 09:48:35.34ID:kESkT9Ub おはようございます。(改行大杉で怒られたので行間を詰めています。
現在押し付けられて困っていることがありご教示いただければと思っております。
環境:フレームワーク4.71 + MVCフレームワーク5OS:Win2012
現在上記環境で動いているシステムがあり、
いくつかのリクエスト文字列と画像ファイル1つをマルチパートで受け取るシステムがあります。
今回、アンドロイド側のJAVAアプリからデータをマルチパートでPOSTしてくる予定だったのですが
時間不足で実装できないと言われ、データを以下のように送ると言ってきています。
(AndroidといえどJavaと同様なのでマルチパートのOutputStreamを作成して送ってくるだけだと思うのですが…。)
1.ファイルをバイト配列に変換
2.そのバイト配列をBase64エンコード
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
上記の仕様だそうです。
そこで上記の逆手順を…と思い
考えれる範囲で
1.リクエスト文字列をUTF-8バイト配列に変換
2.そのバイト配列をChar[]に変換
3.Char[]をFromBase64CharArrayでバイト配列に変換
とやってみたのですが
System.FormatException: 入力は有効な Base-64 文字列ではありません。
上記例外が当然のように発生します。
単純にアンドロイド側からBase64で送ってもらえればそのままデコードできるのですが
それも突っぱねられて困っています。
そもそもこの逆変換が技術的に不可能なようであれば相手側に強く言うこともできるのですが
その根拠が示せず言い出せません。
1.そもそも可能なのか?
2.手順的にはどのようにするのがよいのか
ヒントだけでも構いませんのでご教示いただければと思っております。
以上です。
現在押し付けられて困っていることがありご教示いただければと思っております。
環境:フレームワーク4.71 + MVCフレームワーク5OS:Win2012
現在上記環境で動いているシステムがあり、
いくつかのリクエスト文字列と画像ファイル1つをマルチパートで受け取るシステムがあります。
今回、アンドロイド側のJAVAアプリからデータをマルチパートでPOSTしてくる予定だったのですが
時間不足で実装できないと言われ、データを以下のように送ると言ってきています。
(AndroidといえどJavaと同様なのでマルチパートのOutputStreamを作成して送ってくるだけだと思うのですが…。)
1.ファイルをバイト配列に変換
2.そのバイト配列をBase64エンコード
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
上記の仕様だそうです。
そこで上記の逆手順を…と思い
考えれる範囲で
1.リクエスト文字列をUTF-8バイト配列に変換
2.そのバイト配列をChar[]に変換
3.Char[]をFromBase64CharArrayでバイト配列に変換
とやってみたのですが
System.FormatException: 入力は有効な Base-64 文字列ではありません。
上記例外が当然のように発生します。
単純にアンドロイド側からBase64で送ってもらえればそのままデコードできるのですが
それも突っぱねられて困っています。
そもそもこの逆変換が技術的に不可能なようであれば相手側に強く言うこともできるのですが
その根拠が示せず言い出せません。
1.そもそも可能なのか?
2.手順的にはどのようにするのがよいのか
ヒントだけでも構いませんのでご教示いただければと思っております。
以上です。
471デフォルトの名無しさん
2017/12/11(月) 09:54:06.70ID:LDcEcB6H >>470
欲しい形の文字列とどう違うのか比較してみろよ
欲しい形の文字列とどう違うのか比較してみろよ
472デフォルトの名無しさん
2017/12/11(月) 10:11:54.42ID:kESkT9Ub >>471
ありがとうございます。
あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。
ありがとうございます。
あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。
473デフォルトの名無しさん
2017/12/11(月) 11:07:13.45ID:jHA/gkIg >>470
リクエスト文字列を直接Char[]にせずバイト配列にいったん変える意味が分からない
リクエスト文字列がBASE64の文字列でなければFromBase64CharArrayは使えない
https://msdn.microsoft.com/ja-jp/library/vs/alm/system.convert.frombase64chararray(v=vs.71).aspx/html
リクエスト文字列を直接Char[]にせずバイト配列にいったん変える意味が分からない
リクエスト文字列がBASE64の文字列でなければFromBase64CharArrayは使えない
https://msdn.microsoft.com/ja-jp/library/vs/alm/system.convert.frombase64chararray(v=vs.71).aspx/html
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
