ふらっと C#,C♯,C#(初心者用) Part134at TECH
ふらっと C#,C♯,C#(初心者用) Part134 - 暇つぶし2ch200:デフォルトの名無しさん
17/12/06 15:55:24.63 nfsVfh5P.net
>>194
言葉足らずですみません。
IISが動いているサーバにデータのファイルが不定期に生成されます。
それをWeb画面で様子をみたいという要望です。
動いてる様子が分かればいいのですが、ファイルがまとまって生成される事があるため、
ある程度短いインターバルにしたいとは思ってたのですが。
ローカルアプリも考えたのですが、その場合、複数のPCがサーバのファイルを覗きに行く事になるので、それはそれで嫌かなと思いまして。
> ファイルが生成されるまでタイムアウトしないAPI作って、ajaxで呼ぶ
もう少し教えてもらえないでしょうか。
APIって具体的に何で作ったどんな形式のものですか?
調べるヒントをください。

>>195
同じくもう少しヒントを!どんな感じの実装ですか?

201:デフォルトの名無しさん
17/12/06 16:07:24.35 sywZU+Dz.net
>>196
ごめん、Webプッシュと言うらしいけど未だ使ったことは無いんだ
グーグル先生に聞いてください

202:デフォルトの名無しさん
17/12/06 16:32:05.88 0RCrbv9w.net
>>196
SignalR

203:デフォルトの名無しさん
17/12/06 17:50:23.31 3KlZJVUn.net
C#を採用したTizen4.0っていうOSのスマホが発展途上国でバカ売れらしい

204:デフォルトの名無しさん
17/12/06 18:10:03.35 nv7gWMkp.net
indexでF5連打

205:デフォルトの名無しさん
17/12/06 18:21:23.18 nv7gWMkp.net
この人と同一人物じゃないかと疑ってしまう
703 名前:デフォルトの名無しさん (ワッチョイ 02c2-8CrJ)[sage] 投稿日:2017/11/21(火) 21:20:36.17 ID:8K/pnPq30 [1/2]
最近のオシロスコープはWebサーバー機能を持っていて、Webブラウザでアクセスすると
計測画面を表示させることができますが、C#で同じような機能を簡単に実装することはできるでしょうか?
リモートデスクトップではなく、WinFormsのアプリ画面だけをネット越しに共有する感じです。

206:デフォルトの名無しさん
17/12/06 18:23:00.31 zMhQDjeD.net
>>196
Web Socketかポーリングを使う
つまりSignalR

207:デフォルトの名無しさん
17/12/06 19:40:50.48 trEM6d6d.net
ポーリング間隔はどっちにしろ決めないと話にならない

208:デフォルトの名無しさん
17/12/06 19:44:16.54 WLCLi8WA.net
ロングポーリングかWebSocketならポーリング間隔は不要だぞ

209:デフォルトの名無しさん
17/12/06 19:50:30.04 trEM6d6d.net
>>204
どういう仕組み?

210:デフォルトの名無しさん
17/12/06 19:54:18.94 trEM6d6d.net
サーバー側でクライアント数の把握をするの?
悪手じゃね?

211:デフォルトの名無しさん
17/12/06 20:24:33.34 WLCLi8WA.net
通知が取得できるようになるまで長いことセッション張りっぱなしにするだけだぞ
悪手もクソも普通に使われてる手法

212:デフォルトの名無しさん
17/12/06 20:26:17.59 jQEB5IsZ.net
>>206
SignalR知らんの?

213:デフォルトの名無しさん
17/12/06 20:50:56.89 trEM6d6d.net
>>207
それってサーバー側でクライアントを管理してないとできないよね?

214:デフォルトの名無しさん
17/12/06 20:51:29.75 trEM6d6d.net
>>208
いや、これ仕組みの話だから

215:デフォルトの名無しさん
17/12/06 21:59:20.59 W/tg1Ic8.net
>>209
それが何か?
普通のHTTPリクエスト処理だって、リクエストを受け付けてからレスポンスを返すまで、
君の言葉で言えばクライアントを管理してるだろ
そのレスポンスを返すまでの時間が長いだけだよ

216:デフォルトの名無しさん
17/12/06 22:02:13.59 trEM6d6d.net
>>211
ファイル更新が丸一日無かったらどうなんの?

217:デフォルトの名無しさん
17/12/06 22:13:07.11 W/tg1Ic8.net
>>212
リクエストにタイムアウト付けるに決まってるだろ

218:デフォルトの名無しさん
17/12/06 22:15:10.75 H2dXQlT6.net
元の質問Timerで一秒間隔で呼び出すとかなんだが大丈夫なのか?

219:デフォルトの名無しさん
17/12/06 22:29:46.09 JrOz0Sq/.net
>>214
5chのリクエスト数に比べると屁みたいなもんだろな。

220:デフォルトの名無しさん
17/12/06 22:31:12.35 9Cl2Q0EY.net
そもそもサーバーのファイル一覧を表示するWebアプリなんか自分で作らなくても出来合いのOSSが腐るほどあるだろ
自分で作るより遥かに品質もいいよ

221:デフォルトの名無しさん
17/12/06 22:34:48.06 H2dXQlT6.net
>>215
サーバーがそんな強力な前提か

222:デフォルトの名無しさん
17/12/06 22:35:13.44 lccJ0ap6.net
webベースのファイル管理サービスでイケてるやつあったっけ?

223:デフォルトの名無しさん
17/12/06 22:36:33.33 W/tg1Ic8.net
>>215
キャパシティ的な話をするなら、そもそもサーバーのディレクトリを各クライアントがネットワークドライブにマウントしても全く問題もないだろうな
用途的に、問題になるほどにクライアントの数が多いとは思えん

224:213
17/12/06 22:36:35.54 H2dXQlT6.net
って違うw釣られて間違えたw
クライアント側の話だよ

225:デフォルトの名無しさん
17/12/06 22:41:18.34 9Cl2Q0EY.net
>>220
ロングポーリングなら関係ないぞ
結局はサーバー側でのファイル生成イベントの発生頻度次第

226:デフォルトの名無しさん
17/12/06 22:43:23.56 JrOz0Sq/.net
>>219
タスクトレイ常駐型のデスクトップアプリでも作った方が使いやすいだろうな。

227:デフォルトの名無しさん
17/12/06 23:56:51.95 5T1FsMv1.net
サーバー側はFileSystemWatcher(だったっけ?)でフォルダ監視してなんかあったらテキストファイルでもDBでも適当な保管場所に情報を保存するサービスと
その保存場所から自動更新でひたすら情報を読み取るWeb画面作ればよくね?
自分ならそうするわ
ボリューム的に半日仕事で終わるし

228:デフォルトの名無しさん
17/12/07 01:41:57.78 h6BVmLyc.net
1秒じゃなくて4秒にしよう

229:デフォルトの名無しさん
17/12/07 07:03:53.69 e1xCIudC.net
他のアプリにキーボードのコマンドを送りたいのですが、どの様な方法があるでしょうか?
sendinputなど調べてみたのですが例が少なく今一理解出来ませんでした

230:デフォルトの名無しさん
17/12/07 07:58:46.72 h6BVmLyc.net
プロセス間通信

231:デフォルトの名無しさん
17/12/07 08:07:25.81 QlnDuWpW.net
>>223
> その保存場所から自動更新でひたすら情報を読み取るWeb画面作ればよくね?
だからそれやるとクライアントが多い時にサーバーがパンクするからSignalRとかでサーバーから通知するって話
まあサーバーから通知って言うけど仕組み的にはイベント発生までレスポンスを返さないって言うだけのことなんだけどな

232:デフォルトの名無しさん
17/12/07 08:16:20.37 1QpgLYuZ.net
なつかしのSendMessageとか

233:デフォルトの名無しさん
17/12/07 08:27:43.21 teoFHcQT.net
>>225
SendKeysで
sendinputは他のプロセスには送れない

234:デフォルトの名無しさん
17/12/07 08:50:35.95 afn7IHoQ.net
.netの場合クラスないでFontオブジェクトを生成した場合にはクラスを解放した場合は
Fontオブジェクトは解放されるの? Disposeすべきかどうかはどうやって調べたら
いいのだ?

235:デフォルトの名無しさん
17/12/07 10:06:11.39 lA04OzcH.net
>>227
しないっつうのw どういう理解してる?
なんのためにわざわざ別にサービス作って保存してんだ
これでパンクするならごく普通のWebサービスも作れんわ

236:デフォルトの名無しさん
17/12/07 10:31:29.62 vYoZ1cCC.net
>>230
パフォーマンスを要求するなら適切なタイミングで解放すべき。
どうでもいいならガーベッジコレクタに任せる

237:デフォルトの名無しさん
17/12/07 10:32:55.56 vYoZ1cCC.net
質問の答えになってなかった

238:デフォルトの名無しさん
17/12/07 10:43:44.03 teoFHcQT.net
>>230
IDisposable実装してないクラスは放置で良いと思ってる。

239:デフォルトの名無しさん
17/12/07 10:56:49.03 ODzGS5Kr.net
FontをDisposeするコードは見


240:たことも発想も無かったな newで作ったら全部Disposeする発想なのか



241:デフォルトの名無しさん
17/12/07 10:58:19.97 vYoZ1cCC.net
Font, Pen, Brushはサイズ重いしな

242:デフォルトの名無しさん
17/12/07 11:44:12.26 Rln0TdUu.net
>>235
Fontはコントロールを自作する場合は(ほとんどの場合手抜きで)コントロールと同じ寿命に
することもあるけど、usingで対処できる場合が大半でしょ

243:デフォルトの名無しさん
17/12/07 12:54:28.08 QlnDuWpW.net
>>231
見たときに最新情報になってりゃいいんじゃなくて、イベントが発生したらあまり遅れずにクライアント側の画面を更新するんだぞ?
なぜSignalRとかの話になってるのか理解してないだろ

244:デフォルトの名無しさん
17/12/07 13:02:41.60 lA04OzcH.net
>>238
そもそもWeb画面で見たいっつう要望じゃん
つうか100台同時アクセスして毎秒更新してもカスみたいな負荷だわこんなもん
一体どんな骨董品で動かす想定してんだよ

245:デフォルトの名無しさん
17/12/07 13:07:11.00 lA04OzcH.net
そうでなくてもSignalRなんているかよ
サービスでtcpポートlistenしてイベント発生する都度情報を垂れ流す古き良きソケット間通信で十分だろw

246:デフォルトの名無しさん
17/12/07 13:09:35.59 teoFHcQT.net
日本語で

247:デフォルトの名無しさん
17/12/07 13:22:15.77 2pT1zkKO.net
>>240
ブ ブラウザ画面の話してるから要するにWebSocketってこと?

248:デフォルトの名無しさん
17/12/07 13:29:39.70 lA04OzcH.net
>>242
いや
デスクトップアプリにするんでもソケット間通信でいいよねっつう話

249:デフォルトの名無しさん
17/12/07 13:51:52.29 +NxgTnqm.net
Webアプリで素のソケット通信って何なのさ?

250:デフォルトの名無しさん
17/12/07 14:33:53.52 LGA5S92E.net
質問者置いてけぼりでワロタ
いつの間にかサーバ側を何とかする話になってる

251:デフォルトの名無しさん
17/12/07 14:40:55.27 +NxgTnqm.net
皆さん、単純なものを複雑に実装するスキルをお持ちのようでw

252:デフォルトの名無しさん
17/12/07 15:33:24.53 BPsvGxGu.net
C#でデーモン作って状況をDBに保管して、webシステムは普通にDBからページ作れば良いんじゃね?
セッション全てがフォルダアクセスに行くと面倒だからそれだけ避ければいい

253:デフォルトの名無しさん
17/12/07 16:02:17.31 cbI0OqL3.net
知らないのならば

254:デフォルトの名無しさん
17/12/07 16:10:15.58 CONsZMOl.net
>>196
見たい時にボタンクリックして最新情報を取得すればいいやん。
常時モニターする必要性は無いだろ?

255:デフォルトの名無しさん
17/12/07 16:16:30.86 3BaUjcas.net
本当に初歩的なことで無知で予め謝るね、ごめんなさい。
var revokedPasswords = [
];
function getAuthenticationHash (password) {
var hasher = new jsSHA("SHA-256", "TEXT");
hasher.update("vira " + password.trim().toLowerCase() + " mate");
return hasher.getHash("HEX");
};
function isValidPassword (password) {
if (revokedPasswords.indexOf(hash) >= 0)
return false;
var hash = getAuthenticationHash(password);
if (validPasswords.indexOf(hash) >= 0)
return true;
return false;
};
context.getAuthenticationHash = getAuthenticationHash;
context.isValidPassword = isValidPassword;
というのがあって、これはパスワードを”SHA-256”ってやつで変換しろってことであってるのかな?

256:デフォルトの名無しさん
17/12/07 16:19:30.73 bi5OWsBC.net
>>250
ここはc#スレです

257:デフォルトの名無しさん
17/12/07 17:32:36.95 2pT1zkKO.net
>>250
はいそうです。

258:デフォルトの名無しさん
17/12/07 18:14:35.54 +Wu2cJH/.net
>>228>>229
ありがとうございます
最終的にバックグラウンドでキー入力を他アプリに送りたいのですが
どういった方法があるでしょうか?

259:デフォルトの名無しさん
17/12/07 18:30:35.51 NSH9BpmW.net
>>253
URLリンク(msdn.microsoft.com)(v=vs.110).aspx
URLリンク(dobon.net)
バックグラウンドとは?
特定のアプリに対してのみ送信なら無理

260:デフォルトの名無しさん
17/12/07 19:35:39.52 qnTgxbKH.net
>>253
バックグランドってタスクトレイ常駐アプリにしたいって事?
NotifyIcon使えば出来るけど。
バックグランドがWindowsサービスって意味なら無理かな。
.NETのSendKeysは、半角カナや&は化ける。
WSHのSendKeysを使えば化けないかも。

261:デフォルトの名無しさん
17/12/07 20:32:51.80 QlnDuWpW.net
>>239
> そもそもWeb画面で見たいっつう要望じゃん
>>193>>196を読んで自動更新したいんだ
って理解できないアホは黙ってろ

262:デフォルトの名無しさん
17/12/07 20:48:22.81 p8nuhjj6.net
>>239が言ってるのは、クライアントがサーバーに対してXHRでも使って1秒ごとにポーリングすればいいということだと思うぞ
リクエストのたびにサーバー側でも毎回ファイルシステム舐めてファイル一覧作ってたら遅いだろうけど、
サーバー側ではFileSystemWatcherなり定期的なポーリングなりで非同期でファイル一覧のキャッシュを更新していけば、
クライアントが頻繁にリクエストしてきてもまず問題にはならない

263:デフォルトの名無しさん
17/12/07 20:50:09.09 lA04OzcH.net
>>257
普通誰が読んでもそういう理解になるよね

264:デフォルトの名無しさん
17/12/07 20:54:28.15 h6BVmLyc.net
>>256はWebに疎すぎる

265:デフォルトの名無しさん
17/12/07 21:06:57.10 p8nuhjj6.net
(A)サーバー内でのファイルシステムに対するポーリング と、(B)クライアントによるサーバーへのポーリング がごっちゃになってるのがこの話の混乱の原因
そこを非同期で分離するのはまず常識的な大前提であって、
ABそれぞれをどう最適化するかはそれほど重要ではない
とりあえず実装が手っ取り早いのはABとも定期的に更新することだし、
効率と即時性を追求するならAはFileSystemWatcherでBはロングポーリングorWebSocketだろうね

266:デフォルトの名無しさん
17/12/07 21:09:53.55 G7lyLovK.net
>>257-259
なんでそんなタコな設計するんだ?
って>>194に既に書いてあるのにバカすぎるだろ

267:デフォルトの名無しさん
17/12/07 21:12:08.87 qnTgxbKH.net
質問主はWebアプリに拘ってるわけじゃないけど
沢山のクライアントPCからWebサーバのフォルダを共有したくないからWebアプリが良いかな程度に思ってるだけだろ。
Webサーバ上に監視サービス作るのならWebアプリに拘る必要は無いし。

268:デフォルトの名無しさん
17/12/07 21:19:32.52 lA04OzcH.net
>>261
>>194がバカだからね
仕方ないね
ファイルが生成されるまでタイムアウトしないAPIとか、1秒間隔のリクエストが多いとか、6000行のログとか
何もかも全てが意味不明だからね
どうしようもないね

269:デフォルトの名無しさん
17/12/07 21:21:02.83 p8nuhjj6.net
>>261
>>194と矛盾することは何も言ってないつもりだけどな
>>194>>260でいうBの部分の実装例を挙げてるだけであって、Aの部分については何も言及してないぞ

270:デフォルトの名無しさん
17/12/07 21:24:18.74 Is/SlhXg.net
悪いけどこれC#の話題なのかなあ?

271:デフォルトの名無しさん
17/12/07 21:29:45.67 EeTBbz6o.net
じゃあ会社でLINQを薦めようとしたら、その前にまずユニットテストを覚えさせなければと愕然とした話でいいのか

272:デフォルトの名無しさん
17/12/07 21:40:07.74 lfszpYB8.net
ソケット通信はstunnelで暗号化するんだよね?

273:デフォルトの名無しさん
17/12/07 21:46:02.79 G7lyLovK.net
>>264
そもそもAをどうのこうの言ってる奴は池沼の>>223ぐらいだろ w

274:デフォルトの名無しさん
17/12/07 23:37:45.38 gBefvYul.net
イベントの購読破棄って
どんなケースでも破棄されるように几帳面にやるものなの?
URLリンク(takachan.hatenablog.com)


275: これ見たら-=しなくても漏れないようなので サボりたくなるんだけど サボってはいけないケースとサボっていいケースがあるなら知っておきたい



276:デフォルトの名無しさん
17/12/08 02:03:25.04 cDyzbPRT.net
>>269
何やってるのかよー分からん記事だねw
イベントでリークが発生しうるのは相談室の方の97に書いてあるケースだけだと思う
それは違うって言ってる人もいるけど、たぶん何か勘違いしてるだけだと思うね

277:デフォルトの名無しさん
17/12/08 02:05:20.09 dE4K6487.net
{"status":"go","solution":{"Res":"0SpQ"},"endTime":1512663686}
っていうJSONデータがあって、その中のResの値をとりたいんですけど、

var seri = new DataContractJsonSerializer(typeof(recapres));
byte[] bytes = Encoding.UTF8.GetBytes(a);
var ms = new MemoryStream(bytes);
recapres info = (recapres)seri.ReadObject(ms);
ここまでは調べて書けたんですけど、
この先のResの値をとるコードの書き方がわかりません。
どのように記述すればいいのでしょうか?
solutionの部分は、
[DataMember]
public List<SOL> solution { get; set; }
としてしてます。

278:デフォルトの名無しさん
17/12/08 04:06:20.76 xohAuzUW.net
>>271
です。
調べる方法変えたらいけました

279:デフォルトの名無しさん
17/12/08 07:58:19.65 ahDNvKU9.net
>>270
サボってはいけないのはイベント発行側のライフサイクルが長いとき
サボっていいのは発行側と購読側のライフサイクルがほぼ同じとき
という理解でOK?

280:デフォルトの名無しさん
17/12/08 08:11:45.30 PpC6VnTr.net
>>269
このリンク先の人はイベントとGCを正しく理解してない
この人、他の記事もバカっぽいのばっかりだから初心者はこんなの見ちゃだめ
>>273
間違ってはいないけど、補足するなら
発行側より購読側のライフサイクルが長いときもサボっていい
参照の向きは必ず発行側→購読側なので、イベントハンドラの登録そのものは発行側の寿命には影響しない
フォームとボタンのように、たいていは購読側も発行側への参照を握り続けているので、結果的に寿命は一致するケースが多いんだけどね

281:デフォルトの名無しさん
17/12/08 08:41:02.41 LOVuAI3k.net
>>274
SIerの中の人のブログだね
c#でメモリリークって「推して知るべし」

282:デフォルトの名無しさん
17/12/08 08:43:23.27 oxsZSnq/.net
>>263
193だけどなんで?
普通にロングポーリングの実装かと。

283:デフォルトの名無しさん
17/12/08 09:32:30.34 eUH+zyLO.net
イベントとかUIしか使わんしUIはデザイナーが勝手にコーディングするからイベントなんて使わんな

284:デフォルトの名無しさん
17/12/08 09:40:52.12 2x5NCYhZ.net
へえ、すごいね
帰っていいよ

285:デフォルトの名無しさん
17/12/08 11:10:02.45 cJ57jE1N.net
+=を一切使わずに作るのか
コマンドバインディングを駆使する感じ?
それは確かに凄いな

286:デフォルトの名無しさん
17/12/08 11:28:41.60 7LHrgDvL.net
>>276
ロングポーリングの実装について勉強しといで
単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない

287:デフォルトの名無しさん
17/12/08 11:44:45.00 oxsZSnq/.net
>>280
うん、実装次第だよね。
無期限か、プロキシに切られる寸前にするか、10分にするか、どうでも。
無期限はCouchDBのchange監視なんかは、ほっといたら無期限になるんじゃなかったっけ?
ログが大きくなったり他のを埋めるほどのリクエストは問題だと思うけど。特にイントラでの運用だと。
事例調べてきたらいいのになぁ

288:デフォルトの名無しさん
17/12/08 12:25:41.51 IbEiOVbO.net
>>279


289:デフォルトの名無しさん
17/12/08 12:27:34.90 IbEiOVbO.net
イベント使う機会ある?

290:デフォルトの名無しさん
17/12/08 12:44:05.29 M8mJAXMK.net
>>283
無い人はそれでいいよ
自分には~いらないとか~必要ないとかそういうこと言いあうスレじゃないんで

291:デフォルトの名無しさん
17/12/08 12:53:05.93 eUH+zyLO.net
>>284
単純に興味がある
みんななにに使ってるだろう。
そもそも要らないとは一言も

292:デフォルトの名無しさん
17/12/08 12:56:22.31 n5uOCz3i.net
>>285
UIアプリつくったことないの?
イベントだらけやん

293:デフォルトの名無しさん
17/12/08 12:58:10.32 eUH+zyLO.net
>>286
うん。UIしか俺も使わん。
それ以外にある?
UIのはデザイナが勝手にコーディングするからイベントに触れることがない。

294:デフォルトの名無しさん
17/12/08 12:58:14.04 PXTxgSdc.net
>>280
> 単にタイムアウトを無期限にする実装のことをロングポーリングとは言わない
そんなことを思ってるのは君だけ
マジでちょっと勉強してきた方がいいぞ
今だと単なるアホにしか見えてないし

295:デフォルトの名無しさん
17/12/08 13:04:34.05 LezyuZlt.net
>>287
通信アプリとかデータが来たらオレオレイベント発生させる。

296:デフォルトの名無しさん
17/12/08 13:11:44.12 T81djMMQ.net
あらゆるクラスにログ出力のイベントつけちゃう

297:デフォルトの名無しさん
17/12/08 13:19:11.96 zPIj5vhG.net
ID変わってるかもですが、>>193です。
反応できてないですが、皆さんの議論は参考にさせて頂いています。
SignalRですか?少し調べてみたのですが、目的に合致しているかもしれません。
ですが、後だしなのですが、今回対象になっているサーバがframework 3.5で、
現在運用されているwebアプリはVS2008で開発されています。
ここに追加する形で考えているため、SignalRは使えません。
(別の場所に同じようなサーバがあり、こちらは去年立ち上げたばかりで、水平展開することになり、かつ、私が担当する事になったら是非ともSignalRなりを勉強したいと思っています。)

そこで、やはりTimerを使う事になるかなと思っているのですが、気になる点があるので教えていただければありがたいです。
ログが大きくなるとあるのですが、意識してなくてもログが記録されているものなのですか?
そのログはどこで確認でき、ログを残さなくすることはできないのでしょうか?

298:デフォルトの名無しさん
17/12/08 13:23:25.17 LezyuZlt.net
>>291
IISのログの事だろうけど気にしなくても良いでしょ。

299:デフォルトの名無しさん
17/12/08 13:28:18.22 Xls5mA2Y.net
プロパティー変化時の~Changedイベントは普通に多用するでしょう。
非同期処理完了をイベントで通知するのは非同期メソッドが出来たので
流行らなくなったね。

300:デフォルトの名無しさん
17/12/08 14:02:11.06 PpIHj1rp.net
最近はイベントも種類が増えたね
・x:Bindによるイベントバインディング
・EventAggregatorって言う集約イベント
・Rxや、その派生のReactiveProperty
従来型はあまり使わなくなったね。

301:デフォルトの名無しさん
17/12/08 14:10:42.44 M8mJAXMK.net
>>287
最初の質問は「イベント使う機会ある?」だったけど、相手によってどんどん変えるの?
動的にコントロール追加する時とかデザイナでできない
イベントが多重発生する状況のときは処理中に止めて終わったらイベントを再開する
他にもあるだろうけど自分が遭遇する機会無いのならそれでいいじゃん
>>291
質問続けるのならどこまでサーバー側をいじれるかも書いてほしい
一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
クライアント側がそれを取りに行くだけの処理の時だから

302:デフォルトの名無しさん
17/12/08 14:16:37.32 yJmj+jOP.net
PerformanceCounterって、
OS起動直後からしばらく立たないと使えないとかの制限あるんですかね?

303:デフォルトの名無しさん
17/12/08 14:45:49.73 IbEiOVbO.net
>>295
なんも変わってなくね
最初から「UIしか使わんやろ」オンリーですが?

304:デフォルトの名無しさん
17/12/08 14:52:00.48 IbEiOVbO.net
>自分が遭遇する機会無いのならそれでいいじゃん
なにをそんなにイカってるのか分からんわ。
「イベントってUIしか使わなくなくね?イベントの使い道他になにがあるの?」
単純な疑問に突然キレられても困惑よ。

305:デフォルトの名無しさん
17/12/08 15:19:35.30 FTlzMntS.net
ここのスレの住人は「C#の~要らなくね?」って意見に過敏だからなwwwww C#信者だから当たり前かなw
要らないとは言ってなくてもそう解釈されるんじゃよw

306:デフォルトの名無しさん
17/12/08 15:22:00.68 XHPT3EtZ.net
あのさぁ、c#の#って要らなくねえ?
って言ってみる。

307:デフォルトの名無しさん
17/12/08 15:37:29.35 NIv2jCgd.net
要りますよ、おじいちゃん。

308:デフォルトの名無しさん
17/12/08 15:43:54.34 XHPT3EtZ.net
#を取ったら、オブジェクト指向もジェネリックスもラムダ式も例外もイベントも無くなって平和になるべ?

309:デフォルトの名無しさん
17/12/08 16:08:01.83 zPIj5vhG.net
>>295
失礼しました。
サーバは、frameworkのインストールとか、既存の動いているソフトをいじるとかはできないですが、
新たなソフト(Webでもローカルexeでも)を動かしたり、フォルダやファイルの操作は自由にできます。
>一番簡単なのが他の人も書いているけどサーバー側でステータス用意して
>クライアント側がそれを取りに行くだけの処理の時だから
自分に理解できない事は脳内でスルーしてしまっているかも。
これは別途、更新したファイルのリストを作っておくとかって事でしょうか?
確かに作成されたファイルを、各リクエスト(=開いてるブラウザ、ですよね?)毎のTimerイベントで行うのは非効率ですね。
私のレベルでは、サーバでローカルアプリを動かして、何らかのファイルなりDBに出力するくらいしか思いつきません。
Webアプリ内で、同等の事とかできればいいんでしょうけど。

310:デフォルトの名無しさん
17/12/08 18:12:13.39 oxsZSnq/.net
>>291
記録されてる。IISの設定次第。
残さないってのは、邪魔なログがある以上に困るのでやめて。
>>292
IISのログだけど、障害調査する側に回ったら、気にしてほしいと願うようになると思う。

311:デフォルトの名無しさん
17/12/08 18:55:14.76 Hk+pFmDF.net
C#だけの話では無いのですが、インスタンス作られたら自分の仕事するだけでフィールドもパブリックメソッドも無いクラスって、OOP的にはアンチパターンでしょうか

312:デフォルトの名無しさん
17/12/08 19:03:17.13 cJ57jE1N.net
>>305
パターンというのはみんなが繰り返しやるからパターンと呼ばれる
だれもそんな設計しないと思うので
何かのアンチではあってもアンチパターンではないと思う

313:デフォルトの名無しさん
17/12/08 19:11:34.28 PpC6VnTr.net
>>305
フィールドを使いたいなら分からないでもないが、フィールドも使わないんだったら単なる静的メソッドでいいだろ
あえて変なスタイルを採用する積極的理由がない

314:デフォルトの名無しさん
17/12/08 19:22:05.40 Vo/E3SIp.net
>>305
コンストラクタの中で処理するのはアンチパターンに入るかも

315:デフォルトの名無しさん
17/12/08 21:13:55.11 l65xZylR.net
>>308
コンストラクタだけで完結させるのはやはりアンチパターンですよね
データベース相手で、パブリックメソッドが一つしかないクラスを作った時に、コンストラクタで全部やっちゃえば良いねと作っちゃったんですけど、こんなことしてるクラス見たこと


316:無いので不安に思い



317:デフォルトの名無しさん
17/12/08 21:46:31.29 T5yPQbL2.net
コンストラクタ内で全部やっちゃうのは、
コンストラクタの責務を超えてる気がするなー

318:デフォルトの名無しさん
17/12/08 21:48:13.33 T5yPQbL2.net
数年後とかに(または自分以外の人間が)、コードを改修するハメになった時に
うっかりその派生クラスとか作ると、ヘンな副作用を起こしそうなので
ちゃんとメソッドに分割した方がお行儀が良い、と思う

319:デフォルトの名無しさん
17/12/08 22:06:43.30 nAKkewiT.net
>>305
既に指摘されてる通り、アンチどうこう以前に普通は無意味だからやらないけど、
staticクラスは多態できない(インターフェイスも実装できないし継承関係も作れない)ので、
多態を実現するために例え状態(フィールドやプロパティ)を持たなくてもインスタンスを
作ることは理屈上はありえると思う。
私しゃーやったことありませんが

320:デフォルトの名無しさん
17/12/08 22:39:43.44 zVfb1lJX.net
>>305
staticメソッドじゃダメなの?

321:デフォルトの名無しさん
17/12/08 22:48:26.92 8QW3tG+Y.net
>>306
ところで設計じゃないよ
コーディングプランだからw

322:デフォルトの名無しさん
17/12/08 23:59:26.68 ahDNvKU9.net
>>314
ん?
何が違うんだ?

323:デフォルトの名無しさん
17/12/09 18:25:35.22 yz0yK5Nn.net
C++でゲーム作っていた者ですが
今後はC#で作っていこうと勉強しています
C++あがりのプログラマがC#で間違い易い、
ありがちなミスを教えてください。

324:デフォルトの名無しさん
17/12/09 18:46:18.09 Yi9bTbLW.net
迷わず行けよ行けば分かるさダー

325:デフォルトの名無しさん
17/12/09 18:51:16.17 DLrsngiD.net
C++とかいう高度な言語使えないから分からんにゃーい

326:デフォルトの名無しさん
17/12/09 19:05:02.00 9A22gNCm.net
>>316
ミスじゃないけどGCでイライラしそう

327:デフォルトの名無しさん
17/12/09 19:14:58.17 x4vPcfX+.net
>>316
速度最適化を気にしすぎないことかな

328:デフォルトの名無しさん
17/12/09 19:22:18.63 fpEjaZID.net
>>316
C++プログラマがC#でよくやる間違い
・クラス名の頭にCを付ける
・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
・using 名前空間; を恐れる
・int を System.Int32 と書きたがる
・ループ大好き
・new を嫌う
・やたらとenumを多用する
・エラーを戻り値で返す

329:デフォルトの名無しさん
17/12/09 19:26:45.34 fpEjaZID.net
あと、
・やたらとでかいクラスを作る
も追加で
C++はクラス定義が面倒なので心理的に大きなクラスを作る癖がつきがち

330:デフォルトの名無しさん
17/12/09 19:39:14.82 Avl0kHLY.net
C#はRADありきで細かい部分はちょくちょくリファレンスを読んで確認するしかない

331:デフォルトの名無しさん
17/12/09 19:42:11.92 kSf52iSg.net
>>321
> ・やたらとenumを多用する
具体的な解説Please。
C#でもよく使うと思うけど。

332:デフォルトの名無しさん
17/12/09 19:51:35.61 zCNCLFXW.net
templateの感覚でGenericを使おうとして発狂する

333:デフォルトの名無しさん
17/12/09 19:55:26.03 fpEjaZID.net
>>324
C++で多態を使うなら便利なRAIIを捨てなくてはならない(スマポを使うこともできるが、普通は可能なら避けたいと考える)
多態を使う心理的ハードルが高くなるわけだ

334:デフォルトの名無しさん
17/12/09 20:41:18.42 1hSvWs3J.net
>>319
かなり持続性を求めるアプリ?FullGCの影響くらうのって1秒くらいだよね?

335:デフォルトの名無しさん
17/12/09 20:44:23.80 LewaYlvd.net
地雷原のC++を歩けるなら舗装道路のC#なんか楽勝だろと思うけど、
落とし穴があるとしたらこういう驕りかもしれんね。
C#出た頃C#によく分からん難癖付けてたのはJavaな人で、C++erはむしろ
好意的な評価の人が多かったような気がするから考えすぎかもしれんけど

336:デフォルトの名無しさん
17/12/09 20:46:31.46 kSf52iSg.net
>>326
それとenumに何の関係が?

337:デフォルトの名無しさん
17/12/09 21:10:41.34 jyWlwvil.net
>>327
1秒ももたついたらクソゲーの烙印押されと思うぞ

338:デフォルトの名無しさん
17/12/09 21:16:00.04 DLrsngiD.net
ゲーム開発かよ

339:デフォルトの名無しさん
17/12/09 21:31:07.48 kSf52iSg.net
動画でも音声でもリアルタイム処理が必要な場合は1秒でも止まると困るね。

340:デフォルトの名無しさん
17/12/09 21:36:14.68 bldOuh/e.net
10秒に一度ぐらいずつ強制gcやっときゃいいよ

341:デフォルトの名無しさん
17/12/09 21:41:11.39 LewaYlvd.net
大昔のPC-98じゃあるまいしそんな止まらないからw
何でGCの話になるといつもこうなのw
何十年前の話をしてるんだよw

342:デフォルトの名無しさん
17/12/09 21:44:43.70 CMBXHaeA.net
GCで体感できるほどもたついたことないな

343:デフォルトの名無しさん
17/12/09 21:53:25.70 fpEjaZID.net
>>329
さすがにenumと多態が結びつかないのはオブジェクト指向の理解不足

344:デフォルトの名無しさん
17/12/09 21:56:19.74 DLrsngiD.net
>>336
分からないから詳しく

345:デフォルトの名無しさん
17/12/09 22:01:20.70 bldOuh/e.net
enum継承できねーから使わねーよ

346:デフォルトの名無しさん
17/12/09 22:03:05.57 DLrsngiD.net
>>338
そういうことか

347:デフォルトの名無しさん
17/12/09 22:06:49.31 LNYXpqZE.net
んー、それでもC++の人が多用するって理由とそれがC#じゃ間違いって理由がよくわからん。

348:デフォルトの名無しさん
17/12/09 22:09:24.80 DLrsngiD.net
>>340
C++使いは多態を使いたがらないから、多態使わないならenumをなんの懸念もなく使えるから使いまくるってことかな?

349:デフォルトの名無しさん
17/12/09 22:12:55.12 CMBXHaeA.net
この流れは質問に対して必要なのか?
後今更だが
>>321
>・名前空間やメソッド名を先頭小文字にしたりアンスコ入れたりする
これは非推奨だがビルドが通るので間違いとは言えない

350:デフォルトの名無しさん
17/12/09 22:13:29.50 jyWlwvil.net
enum を継承? w

351:デフォルトの名無しさん
17/12/09 22:15:27.00 DLrsngiD.net
>>342
エラーじゃないならいいってことならそれ以外のやつも当てはまるだろ?
なぜそれだけピックアップしたんだ?

352:デフォルトの名無しさん
17/12/09 22:17:17.61 CMBXHaeA.net
>>344
他は知らん

353:デフォルトの名無しさん
17/12/09 22:20:10.10 DLrsngiD.net
>>343
クラスの中にインナーenum(?)を定義したら、そのクラス継承してもそのenumが未定義になるってことかな?

354:デフォルトの名無しさん
17/12/09 22:28:13.72 Er9Ndq7R.net
最近enumが~って言う初心者が一人紛れ込んだだけだから
相手にしなくていいよ

355:デフォルトの名無しさん
17/12/10 00:39:39.78 okOunyow.net
言語そのものの事ではないのだけど。
Windows10 の PC に入れっぱなしにしてた VS Community 2015 で C# で Webアプリ(MVC)の新規プロジェクトを作成して、
それをそのままビルド→実行するとブラウザが起動して(これは当たり前)、
サーバーエラーとなって「指定された引数は、有効な値の範囲内にありません。」て表示する&
ダイアログで「Mirosoft.VsHub.Server.HttpHost64.exeは動作を停止しました」って出ます。
HttpHost64.exeの方は連続して出てて、 KB3090034 を当てたら最初の1回だけになりました。
原因が分からないので同じような症状を経験、解決した人か心当たりのある方がいたら対処法を教えて欲しいです。

356:デフォルトの名無しさん
17/12/10 02:07:22.55 40kmfkZ7.net
これは?
URLリンク(northbrain.org)

357:デフォルトの名無しさん
17/12/10 10:45:19.56 +bg1ulUg.net
enum大好きな人多いよね

358:デフォルトの名無しさん
17/12/10 10:51:21.68 cFJQGF3i.net
処理結果表すのに文字列やint使いたくないからenum使っているけど、他に良い方法あるかな?

359:デフォルトの名無しさん
17/12/10 10:56:20.84 OKZOYtiA.net
>>351
設計の筋が悪いんだと思うよ
たとえばデータ取得処理が返すべきは成功コードorエラーコードではなく
取得したデータそのものであり、失敗したら例外を投げる

360:デフォルトの名無しさん
17/12/10 10:59:35.44 cFJQGF3i.net
ごめんなさい、例の子呼んじゃいました・・・

361:デフォルトの名無しさん
17/12/10 11:19:22.17 klwCxkV9.net
死ね

362:デフォルトの名無しさん
17/12/10 11:22:56.63 zEFqnqTD.net
質問があいまいな上に答えてもらった相手を例の子呼ばわりって何がしたいんだろう
文字列とint対応させて作りたいのならenum使うの自然だし変えようとしたらその設計変えるしかないわ

363:デフォルトの名無しさん
17/12/10 11:23:21.91 7Si01GpM.net
なんでこうも例外は嫌われなきゃいけないのか

364:デフォルトの名無しさん
17/12/10 11:24:00.35 DEQ8njbJ.net
あいつが召喚されるから

365:デフォルトの名無しさん
17/12/10 11:24:37.45 1RSLLPBx.net
>>351
オブジェクトを返せばいいよ

366:デフォルトの名無しさん
17/12/10 11:25:55.23 1RSLLPBx.net
例外を使えないならOOPやめたほうがいい
というかプログラマやめたら?
同僚からしたらすげえ邪魔なんだけど

367:デフォルトの名無しさん
17/12/10 11:27:29.98 zEFqnqTD.net
>>356
>>359
例外の話じゃなかったのに処理結果=例外なんだ

368:デフォルトの名無しさん
17/12/10 11:31:38.35 1RSLLPBx.net
>>360
一般論的に言って例外使えない子は退職して欲しいってだけだよ
>>355に対する答えは>>359で出してるでしょ

369:デフォルトの名無しさん
17/12/10 11:32:45.27 K5F4H8OZ.net
例外も内部にステータス持つなら同じことだから、要はenumのかわりにクラスを使えということなんだろう。
必ずしもそれが筋が良いとは思わんけどな。

370:デフォルトの名無しさん
17/12/10 11:36:28.15 zEFqnqTD.net
>>361
例外使えないとか使わない前提じゃないけどもう日本語通じないか
ファイルダイアログも使ったことないんだろうね

371:デフォルトの名無しさん
17/12/10 11:36:52.38 1RSLLPBx.net
>>361
>>360
>一般論的に言って例外使えない子は退職して欲しいってだけだよ
>>355に対する答えは>>359で出してるでしょ
安価ミス
>>355に対する答えは>>358で出してるでしょ

372:デフォルトの名無しさん
17/12/10 11:38:37.58 zEFqnqTD.net
>>364
ああごめん
アンカーまともに判断して意味不明な煽りだと勘違いしたわ

373:デフォルトの名無しさん
17/12/10 11:55:32.54 7Si01GpM.net
enumで戻り値を返した先にはswitch~case文の羅列が待っている
それは、オブジェクト指向として美しくない
とか言って見る

374:デフォルトの名無しさん
17/12/10 12:15:32.85 I3oRkg9y.net
>>350
エナム?イーナム?

375:デフォルトの名無しさん
17/12/10 12:16:06.09 fCk6aJzv.net
メソッドの結果が何種類かある
どの結果なら何をするかはメソッド自体は知らない
なのでenumを返してクライアントに判断してもらう
って理由でenumならなんの問題もない
enum switch地獄に陥るのはクライアントの実装の問題なので解消できる問題だな
イベントでもいいけどイベントは管理しにくいからできれば避けたい

376:347
17/12/10 12:24:22.81 okOunyow.net
>>349
ありがとうございます。
HttpHost64.exe のエラーダイアログは出ないんですが、「指定された引数は、有効な値の範囲内にありません。」は同じでした。
本当になんなんだろう。。

377:デフォルトの名無しさん
17/12/10 12:25:57.85 w7IPLNC5.net
そんなもん地獄でもなんでもないわw
大袈裟なやつだなw

378:デフォルトの名無しさん
17/12/10 12:42:01.80 hfoTCgp6.net
なんでEnumダメなん?.NET標準ライブラリでもよく使われてるやん

379:デフォルトの名無しさん
17/12/10 12:44:31.00 KNXh5gp+.net
補完効くから便利だもんね
switchとか全部書いてくれるし

380:デフォルトの名無しさん
17/12/10 13:02:49.80 Lqf3YhZb.net
>>366
その主張一時期流行ったけど、今になって冷静に考えると
かなり羹に懲りて膾吹いてる感がある

381:デフォルトの名無しさん
17/12/10 13:08:33.64 1RSLLPBx.net
ケースバイケース
microsoftが使ってれば万能というわけでもないし使ってなければダメというわけでも無い

382:デフォルトの名無しさん
17/12/10 13:24:00.94 TdgJU12g.net
ダメって言ってる奴の頭がおかしいだけ
enum の継承とか意味わからんし

383:デフォルトの名無しさん
17/12/10 13:31:07.35 Xq7qpXg6.net
>>375
ステートマシン作ってそのクラスを継承すると欲しくなる

384:デフォルトの名無しさん
17/12/10 13:33:07.99 1RSLLPBx.net
ダメとは言わないがコード整理するとenumが自然と消える

385:デフォルトの名無しさん
17/12/10 14:00:03.48 K5F4H8OZ.net
どこでどういうタイミングで消えるのか興味深い

386:デフォルトの名無しさん
17/12/10 14:11:52.06 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:デフォルトの名無しさん
17/12/10 14:20:47.04 K5F4H8OZ.net
ありがとう。
言いたいことはわかったけど、それって整理されたの?という疑問は残る。
この例だとenumで分岐されるのがint xという単一の値を決定する処理だけだけど、
ExternalCode() には class MyEnumEx を用意して、MyEnumを使う別の処理には
また別のclassを用意して、ってなるわけだよね。

388:デフォルトの名無しさん
17/12/10 14:23:46.87 KNXh5gp+.net
君のenumの使い方がそもそもおかしいだけで、普通はオプション的なものに使うからそうはならないだろう

389:デフォルトの名無しさん
17/12/10 14:44:45.17 1RSLLPBx.net
>>380
ならないわけだよ
MyEnumに関する責務が分散していることが問題だから整理して凝集させるわけだ
それなのに責務をまた複数のクラスに分散させてちゃ意味が無いだろう
別の場所でyを取得する処理が書かれてるなら
class MyEnumBase {
public virtual int GetX() { return 0; }
public virtual int GetY() { ... }
}
というように拡張していけばいい

390:デフォルトの名無しさん
17/12/10 14:50:12.52 o/NiMYKz.net
>>376
サブステートを定義するとかしかやりようがないような気がするけど...
enum 使わなきゃ綺麗に書けるの?

391:デフォルトの名無しさん
17/12/10 15:30:45.08 hRp3Q2MJ.net
>>369
最新の2017でないのなら専用スレで聞け
Visual Studio 2015 Part8
スレリンク(tech板)
VSは複数バージョン入れると干渉して稀に不具合起きるらしいけどその辺は自己責任

392:デフォルトの名無しさん
17/12/10 16:01:41.00 K5F4H8OZ.net
>>382
そこ集めちゃうの?という印象。
たとえば enum System.IO.FileMode のようなものを class で置き換えるとした場合、せっかく
抽象化したのに操作対象毎に異なる実装をそこに全部書くことを想定しているんだろうか。

393:デフォルトの名無しさん
17/12/10 16:32:25.95 1RSLLPBx.net
>>385
操作対象はインターフェースで分離する
FileModeはFileModeに関連する責務だけを担当する
操作対象に関する責務はFileModeには無い

394:デフォルトの名無しさん
17/12/10 16:41:37.05 1RSLLPBx.net
むろん全てのenumをオブジェクトにすべきと言ってるわけではない
ビジネスレイヤではオブジェクトにしたほうが良い場面が圧倒的に多いが
単なるフラグセットとみなしたほうが有利な場面もそりゃあるだろう

395:デフォルトの名無しさん
17/12/10 16:56:48.76 K5F4H8OZ.net
>操作対象に関する責務はFileModeには無い
だからね、例えばローカルファイルとネットワークドライブ上のファイルとで同じFileModeに対する
操作手順が異なるとした場合、それをどこに実装するかって話。
1つの class Enum に実装するのは論外として、インターフェースと実装クラスに分離するなら>>380の通り。
あるいはFileクラスに掛かる実装は class Enum 側に持たないというならenumのままでもいいじゃん、となる。
>>387
結局そうだよね。圧倒的かどうかは知らんけどw

396:デフォルトの名無しさん
17/12/10 16:57:04.47 AsjcCxkl.net
xがなにで1と2でどう違うのか分からんが
まずxをクラス(か構造体)にするべきだと思うんだが

397:デフォルトの名無しさん
17/12/10 16:59:10.81 1RSLLPBx.net
>>389
大した意味のないサンプルに深入りするの馬鹿馬鹿しくない?

398:デフォルトの名無しさん
17/12/10 17:11:04.47 QtRE0gJ3.net
ほらキチガイが湧いたwww

399:デフォルトの名無しさん
17/12/10 17:14:47.78 IOEOCVr0.net
例外も列挙体もLINQもインタフェースもイラネってかwwwwww

400:デフォルトの名無しさん
17/12/10 17:31:58.06 klwCxkV9.net
死ねで終わらせとけばいいのに相手しやがって死ね

401:デフォルトの名無しさん
17/12/10 17:55:36.64 CnpEkAKU.net
昔流行ったswitchを無くせって話は、元々はJavaみたいな関数ポインタもデリゲートも使えない言語で
ジャンプテーブルをどうやって実現するかって話(要するにいかに効率化するかって目線の話)
だったと思うんだけど、それが途中からこじつけか何か知らんけどOOP敵に美しいとか正しいって
話にすり替わった印象しかないね。
そりゃ多態使ってswitch無くした方が美しく可読的に書ける場合もあるけど、
そうじゃない場合の方が圧倒的に多い。
要するに上にも書いたけど、羹に懲りて膾を吹く類の話だよね。
今でもこういうこと言ってる人の話は真に受けちゃダメだと思う

402:デフォルトの名無しさん
17/12/10 18:11:31.06 u72ghqtY.net
enumをクラス化でシンプルにできるのはシングルのenumで状態が決まる場合
複合的な状態を持ってるとまあ理解に苦しむコードになるよ
ifとswitchのほうが読みやすく理解しやすいならそっちを使えばいい

403:デフォルトの名無しさん
17/12/10 18:13:44.60 o/NiMYKz.net
>>390
例示されたサンプルがおかしいって言われてるって言うことをそろそろ気づこうか

404:デフォルトの名無しさん
17/12/10 18:15:53.82 40kmfkZ7.net
しょーもな
首吊って死ねば?

405:デフォルトの名無しさん
17/12/10 18:30:36.92 1RSLLPBx.net
>>394
オブジェクト指向をやるならカプセル化や単一責務は基本中の基本
enum switchはそれを全部ぶち壊しにする
だからやめとけって世界中で言われてんだよ

406:デフォルトの名無しさん
17/12/10 18:39:54.73 u72ghqtY.net
それは使い方が悪いだけだよ

407:デフォルトの名無しさん
17/12/10 18:41:44.28 o/NiMYKz.net
>>398
お前の狭い世界はどうでもいい

408:デフォルトの名無しさん
17/12/10 18:45:22.58 1RSLLPBx.net
まあ初心者スレだしOOPわからんってのも仕方がないか…
何年後かには理解できてると思う

409:デフォルトの名無しさん
17/12/10 18:47:16.85 u72ghqtY.net
>>379
このコートの最初が悪くてあとが良いとは限らないと思うが
これ100個あったとして
どこぞの言語みたいに一クラス一ファイル縛りがあったら100個ファイルが必要
それに見通しが非常に悪い
switchも見通しが悪いけど100個のクラスの100メソッドを検索で渡るよりまし

410:デフォルトの名無しさん
17/12/10 18:49:15.44 u72ghqtY.net
状態によって見やすいコードはかわるけどswitch==悪はfalseだろ

411:デフォルトの名無しさん
17/12/10 18:52:06.23 40kmfkZ7.net
>>403


412:デフォルトの名無しさん
17/12/10 18:52:09.72 in4pjWGE.net
雑談スレか

413:デフォルトの名無しさん
17/12/10 18:55:12.88 1RSLLPBx.net
>>402
すまんがまず100このenum値って時点で設計ミスだと思うぞ
普通の業務ロジックでそんな区分分けみたことないわ
大量のenumといったらせいぜいリソースIDのラベル化とか?
そ�


414:ネんまでクラス化はしないよ なんでもクラス化するわけじゃないってなんどもレスしてるよね? まあ仮に区分が膨大な場合でもそれがビジネス上の振る舞いを持つならクラスにしたほうがいいぞ クラスにしたら見通し悪いっていうけど そりゃビジネスそのものが見通し悪いんだから仕方がないか クラスっていう保護がなければもっと悲惨なことになる



415:347
17/12/10 18:55:31.09 okOunyow.net
>>384
誘導ありがとうございます。

416:デフォルトの名無しさん
17/12/10 18:57:52.94 u72ghqtY.net
もともと責務と言いながら
状態を伝えるだけのenumをクラスに拡張しちゃって責務の内容を広げっちゃって
保守性を落としてるんだからまだまだだね

417:デフォルトの名無しさん
17/12/10 18:59:10.78 u72ghqtY.net
>>406
1つ目と3つ目を比べると1つ目のほうがすぐれたコードだと思う
理解しやすい
それ以上優れてる理由はない

418:デフォルトの名無しさん
17/12/10 19:02:50.61 1RSLLPBx.net
enumが100個あってシステムのあっちこっちに分岐があります
仕様が変わりました値Aの仕様が変わりました
enumの場合:
システムをenumのAで検索
あっちこっちでヒットしたコードを慎重に整合性を確認しながら修正
もしかしたら見逃しがあるかもしれないと不安を抱えながら作業
Aを修正してるのに周りの他の値の場合の処理が凄まじいノイズになってめまいがする
コードが他の責務に埋め込まれてるのでテストは容易ではない
クラスの場合:
派生クラスAが定義されてるファイルを開く
1つのファイルに集中できるので楽々修正
Aに関する処理は全部このファイルにあるので見逃しも無い
他の値の処理が周りに無いのでクリアな視界で作業可能
クラスになってるのでテストは超簡単

419:デフォルトの名無しさん
17/12/10 19:07:08.35 1RSLLPBx.net
enum値が削除されたら?
新しいenum値が追加されたら?
クラス化されてないと超しんどいぞ
システムにばら撒かれたenum100個なんて管理しきれないよ
OOPの言語と開発環境ならクラス100個は楽勝で管理できるけどな

420:デフォルトの名無しさん
17/12/10 19:07:59.48 u72ghqtY.net
>>410
クラスを使うべき時は使う
そうじゃないときはswitch enumでも十分

421:デフォルトの名無しさん
17/12/10 19:09:21.56 HHgBYreh.net
enumなんて存在すら忘れてた
もうクセでデータ保持するクラス作っちゃってたわ
やっぱ固定値の列挙はenumの方がええんやろか

422:デフォルトの名無しさん
17/12/10 19:10:43.29 1RSLLPBx.net
>>412
それでいいよ
ビジネスが入り組んできたらクラスにリファクタリングすればいい
俺は最初からクラスにしてるけどね

423:デフォルトの名無しさん
17/12/10 19:13:57.59 o/NiMYKz.net
>>411
> システムにばら撒かれたenum100個なんて管理しきれないよ
enum 使ったことないのか?
なんか実務を知らないのに
URLリンク(iwa4.hatenablog.com)
とかを見て switch は悪 ⇒ enum 不要
とか拗らせてるって感じ w

424:デフォルトの名無しさん
17/12/10 19:16:05.80 KNXh5gp+.net
enumをクラスにするという考えがあることが根本的な設計のセンスの無さを感じる

425:デフォルトの名無しさん
17/12/10 19:18:31.13 u72ghqtY.net
そのenumを置き換えたクラスを使う場所が100個あって後段でそれぞれ違う処理(メソッド)が必要なら
100個のクラス*100のメソッド=10000必要になる
本当に管理しきれるのかな
記号は記号でしかないと思う

426:デフォルトの名無しさん
17/12/10 19:23:13.06 1RSLLPBx.net
君たちはさC#を使ってるけどOOPはできてないんじゃないかな?
たぶん昔ながらの手続き型のパラダイムから進歩してない
フィールドやプロパティは丸出しで
データベースの物理構造を色濃く反映したDTOを
ネストしまくり分岐しまくりのやけに長いトランザクションスクリプトで処理する
そんなコードばかり書いてるんだろ?

427:デフォルトの名無しさん
17/12/10 19:27:02.30 1RSLLPBx.net
>>417
仕切れるよ
疎結合高業務で


428:責務がしっかり分けられてるからね というかそれで管理できなかったらクラスという枠組みを失い無秩序状態になった同じ数(経験上もっと多くなるが)の処理なんて余計に管理できないだろ



429:デフォルトの名無しさん
17/12/10 19:28:10.84 RKQe6ZfS.net
>>418
キミ自身、キミの言う「昔ながらの手続き型のパラダイム」でキミの考える最強の「OOP」をしとるんやで
もう少し脳を鍛えようか?ね?

430:デフォルトの名無しさん
17/12/10 19:28:59.49 0VP/mrFZ.net
滅茶苦茶レベルの低いところで仕事してるんだろうなあってのは伝わってくる

431:デフォルトの名無しさん
17/12/10 19:29:31.44 K5F4H8OZ.net
>>419
いや、あんたの主張は疎結合どころか、enum相当のクラスに結合しまくりだろう。

432:デフォルトの名無しさん
17/12/10 19:32:15.18 1RSLLPBx.net
>>422
疎結合だよ
クラスにすればenumを使う側はenumの振る舞いの実装を知らなくていい
クラスにすればある値と他の値の処理が同じスコープで干渉しなくて済む
こんな基本もわかってないんだよなぁ
ま、初心者スレってことか

433:デフォルトの名無しさん
17/12/10 19:36:46.16 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:デフォルトの名無しさん
17/12/10 19:38:51.23 40kmfkZ7.net
はい!
ID:1RSLLPBxの勝ち!w
おまえらドンマイw

435:デフォルトの名無しさん
17/12/10 19:40:38.39 0VP/mrFZ.net
enumの使い所を間違えるようなレベルの人間でないと共感は得られないと思う

436:デフォルトの名無しさん
17/12/10 19:41:38.15 lTpNuF7F.net
と、中身のないレスをしてみるのであった。

437:デフォルトの名無しさん
17/12/10 19:46:34.91 YjUTAOlB.net
ステータス(状態)をクラスにしちゃうと色々と説明が必要になっちゃうけどな
もっと素直に設計できねぇの?
お前らの剣は無駄な動きが多過ぎる

438:デフォルトの名無しさん
17/12/10 19:49:25.32 +dBvFTXH.net
すみません。質問ですが、例外とエラーの違いって何ですか?

439:デフォルトの名無しさん
17/12/10 19:49:27.62 0VP/mrFZ.net
状態に複数の要素が絡んだ時、彼はどうクラスを設計するだろうか

440:デフォルトの名無しさん
17/12/10 19:51:18.85 40kmfkZ7.net
>>426
>>428
>>430
負け惜しみが見苦しすぎるw

441:片山博文MZ
17/12/10 19:52:02.61 M7uFif4k.net
例外は制御がぶっ飛ぶやつ。
エラーは、正常に処理ができなかったという意味。

442:デフォルトの名無しさん
17/12/10 19:57:13.54 NAV3AZ5L.net
状態数も20くらいまでなら把握できるが…それ以上はいやだねえ…

443:デフォルトの名無しさん
17/12/10 19:58:57.63 in4pjWGE.net
>>429
ここで言っている例外はtry-catchでcatchで受けられる処理(Application Exceptionの類)の話
そのエラーの意味が何に対するエラーなのかわからないので違いは説明できない

444:デフォルトの名無しさん
17/12/10 19:59:05.93 0VP/mrFZ.net
enumだらけの.net frameworkを、enumじゃなくてクラスにしろよなんて思いながら使ってないだろうよ

445:デフォルトの名無しさん
17/12/10 20:01:31.79 1RSLLPBx.net
>>435
ベーシックライブラリと業務システムのドメインロジックを同じ感覚で書くプログラマは居ないよ

446:デフォルトの名無しさん
17/12/10 20:04:07.99 0VP/mrFZ.net
>>436
だから普通は使い所をわかってるから、こんなこと何の議論も起こらないよねって話じゃん

447:デフォルトの名無しさん
17/12/10 20:04:55.70 40kmfkZ7.net
からからうっせーよ死ねや

448:デフォルトの名無しさん
17/12/10 20:14:56.93 1RSLLPBx.net
>>437
わかってないからなここの初心者連中

449:デフォルトの名無しさん
17/12/10 20:17:38.09 in4pjWGE.net
このスレ来ている時点でみんな初心者。スレタイに「初心者用」ってちゃんと書いてあるから

450:デフォルトの名無しさん
17/12/10 20:41:13.41 o/NiMYKz.net
初心者ならいいんだけど、初心者を卒業したと勘違いしてる ID:1RSLLPBx が痛々しいだけ

451:デフォルトの名無しさん
17/12/10 20:42:45.81 1RSLLPBx.net
今日は負け惜しみを沢山見たが反論は少なかったなぁ

452:デフォルトの名無しさん
17/12/10 20:57:11.24 gQySa/bC.net
キチガイにふれるなよ

453:デフォルトの名無しさん
17/12/10 21:46:32.27 Uujd9YQH.net
計算量の観点で比較すると
switchはコンパイラが2分探索にしてくれる場合がある O(log2(N))
クラス化はインスタンス生成された時点で仮想関数テーブルが紐付く O(1)+ディスパッチのコスト
で合ってる?

454:デフォルトの名無しさん
17/12/10 21:54:10.74 bPupZbt5.net
>>444
switch でも状況によってジャンプテーブルにしたりするんじゃね?

455:デフォルトの名無しさん
17/12/10 22:12:18.04 Uujd9YQH.net
>>445
C#はジャンプテーブルも使うみたいですね
この比較はあんま意味ない気がしてきたので閉めます

456:デフォルトの名無しさん
17/12/10 22:28:48.38 klwCxkV9.net
俺以外でここまで書き込んだ奴は明日朝一で中央線に飛び込んで死ね

457:デフォルトの名無しさん
17/12/10 22:37:53.36 8I95hEEE.net
仮想メソッド呼び出しはJITがインラインキャッシュで展開するからコストはほぼゼロのはず

458:デフォルトの名無しさん
17/12/10 22:38:00.15 /a8M7Ljd.net
>>447
板違い。メンタルヘルス板に行け

459:447
17/12/10 22:39:14.02 8I95hEEE.net
補足
展開っていってもインライン展開するわけじゃないよ
静的なメソッド呼び出しに置き換えるということ

460:デフォルトの名無しさん
17/12/10 22:54:55.63 4CvOnmGy.net
>>429
例外 ⊂ エラー

461:デフォルトの名無しさん
17/12/10 23:09:05.85 NAV3AZ5L.net
>>450
vtable を間に噛むんじゃないか?

462:デフォルトの名無しさん
17/12/10 23:13:59.68 40kmfkZ7.net
>>451
マ?

463:デフォルトの名無しさん
17/12/10 23:47:37.64 u72ghqtY.net
shapeクラスをベースに持つrectangleとcircleクラスの挙動をswitchで制御してるならOOPに反すると思うけど
確固たる概念も実体もないものをわざわざクラスにしてまでenumを消す理由はない
普通のマジックナンバー代わりの記号がenum
オブジェクト間でクラスがメッセージをenumで渡すだけ
上手に使えばいいだけ

464:デフォルトの名無しさん
17/12/10 23:56:55.90 +mi54qJj.net
あ、もうその話終わってるんで(^^;

465:デフォルトの名無しさん
17/12/11 00:02:40.94 4r/Nu0Q4.net
>>454
お前も勝利宣言しとけよ
明日以降やられてもたまらん

466:デフォルトの名無しさん
17/12/11 00:13:22.40 duNhD2vY.net
実体の無い物


467:をクラスにしたらドキュメント書けよと それだけだけどな 書かないでやってる奴はギルティ



468:デフォルトの名無しさん
17/12/11 00:24:03.35 ZlOMrHZS.net
メッセージがただの記号だったのにクラスになるとオブジェクトの生成や
必要に応じてライフタイム管理が必要になる
しかも作ったオブジェクトに処理を移譲したり他のオブジェクトを渡したりして新たなオブジェクトと結合が密になる恐れがある
そこまでしないなら記号の受け渡しで済んだものがクラスの管理が増えるだけでメリットは薄い

469:デフォルトの名無しさん
17/12/11 03:52:53.05 oxZtEftd.net
あー、そーゆーのはママに教えてあげてね

470:デフォルトの名無しさん
17/12/11 06:40:10.22 6BzZoNtD.net
>>442
そりゃ反論はガン無視だもんな w

471:デフォルトの名無しさん
17/12/11 08:32:07.64 Pz9H8j59.net
> オブジェクトの生成
状態変わらないのだからpublicなstaticメンバで持てばよい
> ライフタイム管理
そんなに気になるのならstructにすればよい
> 処理を委譲したり(最後まで)
全く意味不明

472:デフォルトの名無しさん
17/12/11 08:37:46.08 PAoZtWNN.net
一晩経っても負け惜しみ言ってるやつ居てわろた
せめて反論したらどうなの?
>>458
メッセージを列挙値で済ませようとする発想がまずチープだがまあいい
RegexOptionsみたいな場合もあるからな
問題はドメインオブジェクトを列挙値で表現してしまうケースな
昨日から議論してんのはメッセージの話じゃないんだよそもそも
君はまだそこを理解してない

473:デフォルトの名無しさん
17/12/11 08:40:03.91 Pz9H8j59.net
どうしてもenumにこだわりたいのなら
Attribute付加
拡張メソッド作る
こんな手段はある

474:デフォルトの名無しさん
17/12/11 08:44:48.49 PAoZtWNN.net
他のオブジェクトとの関連云々ってさ
べつに列挙値からオブジェクトにしたから急に関連が出てきたものじゃないんだよね
ドメインの性質としてもともと本質的に関連があるものなんだよそれは
それがオブジェクトにしたことによって可視化されただけ
列挙値のままだと関連があるのにそれがハッキリと見えず暗黙の結合状態になってるだけ
それはまさに最悪の状態だよ

475:デフォルトの名無しさん
17/12/11 08:50:22.92 DFoAuevB.net
設計書の構造に箱ができないものをクラスにするのはセンスが悪いな
こんなゴミクラスたくさん作っちゃってクラス図でどうやって説明するの?

476:デフォルトの名無しさん
17/12/11 08:56:14.04 DFoAuevB.net
汎用ライブラリにでもぶち込むならともかく
こんな枝葉までクラスにされるとソースの粒度に統一感がでない
ステータスなんかクラスにすんなよ
ドキュメント書くのが面倒くせえだろ
それはイコール他人に説明する手間が増えてることだと気づけよ
どーせドキュメント書かないんだろお前馬鹿だから

477:デフォルトの名無しさん
17/12/11 09:36:16.99 SJ7HWrxD.net
他人に説明するためのドキュメントは確かに書かないな
ソース見たほうが早いし間違いがない
ソースコードが設計書である
俺が馬鹿かどうかに関係なく、
アジャイルやGOAでやるとどこでもそうでしょ

478:デフォルトの名無しさん
17/12/11 09:38:16.34 LDcEcB6H.net
>>467
ワケのわからんソース書くやつに限ってお前みたいなこと言うのな

479:デフォルトの名無しさん
17/12/11 09:41:22.91 ibPW1Iwl.net
ちょっと昔な感じだな
今は当たり前にドキュメントを書いてる時代だと思うけど

480:デフォルトの名無しさん
17/12/11 09:43:28.23 oxZtEftd.net
はいはいご立派ご立派

481:デフォルトの名無しさん
17/12/11 09:48:35.34 kESkT9Ub.net
おはようございます。(改行大杉で怒られたので行間を詰めています。
現在押し付けられて困っていることがありご教示いただければと思っております。
環境:フレームワーク4.71 + MVCフレームワーク5OS:Wi


482:n2012 現在上記環境で動いているシステムがあり、 いくつかのリクエスト文字列と画像ファイル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.手順的にはどのようにするのがよいのか ヒントだけでも構いませんのでご教示いただければと思っております。 以上です。



483:デフォルトの名無しさん
17/12/11 09:54:06.70 LDcEcB6H.net
>>471
欲しい形の文字列とどう違うのか比較してみろよ

484:デフォルトの名無しさん
17/12/11 10:11:54.42 kESkT9Ub.net
>>472
ありがとうございます。
あぁ、なるほど!
該当ファイルをBase64文字列にして
その差を比較してみて両者が合うように変換していってみる
ということですね。
ちょっとコツコツやってみることにしてみます。

485:デフォルトの名無しさん
17/12/11 11:07:13.45 jHA/gkIg.net
>>471
リクエスト文字列を直接Char[]にせずバイト配列にいったん変える意味が分からない
リクエスト文字列がBASE64の文字列でなければFromBase64CharArrayは使えない
URLリンク(msdn.microsoft.com)(v=vs.71).aspx/html

486:デフォルトの名無しさん
17/12/11 12:02:38.34 0NyrcvQf.net
switchを無くせって話、WPFとかのMVVMにちょっと似てるね
どっちの場合も原理主義者が主張するような美しい理念がワークするのは、
ある一定の条件というか閾値を超える事例だけであって、それ以外の場合は
かえって可読性とか保守性とかが低下すると思うんだけど、原理主義者がそういう現実を
無視して何にでも適用可能な万能の方法みたいにごり押ししてる感がある

487:デフォルトの名無しさん
17/12/11 12:11:33.55 SaVPDOly.net
多少冗長になっても1つのルールに沿って全部書いた方が読みやすいだろ

488:デフォルトの名無しさん
17/12/11 12:12:00.53 LDcEcB6H.net
もういい加減組めちまってる奴は
次の課題を自分で探さないといけない
プログラムスキルは組めるようになったら
そこでMaxなんだよ
さっさと次の課題を探さないから
どーでもいいことが意味ありそうに思えてくる

489:デフォルトの名無しさん
17/12/11 12:58:53.47 WHbaikY8.net
>>379みたいなケースでswitchをなくせ
って言うのはそりゃそうだなって思うけど
そもそも>>379の最初の方の組み方がおかしいだけでenumの問題じゃない
それを>>379の例だけでswitchをなくせと言うならまだしもenumなくせとか言い出すから頓珍漢なことになってるだけ

490:デフォルトの名無しさん
17/12/11 13:49:25.47 jxfuchh+.net
>>743
レスありがとうございます。
相手が手順的にBASE64のバイト配列をUTF8文字列にして送ってくるようだったのでその手順が必要なのかな…と思いまして。
そもそも何故バイト配列からBASE64の文字列にダイレクトにしなかったのかと…。おもいつつです。

491:デフォルトの名無しさん
17/12/11 15:28:30.74 MTsA4uB/.net
>>471
元の仕様
1.ファイルをバイト配列に変換
バイト配列ができる
2.そのバイト配列をBase64エンコード
ファイルをBase64エンコードした文字列ができる(仕様上UTF-8でもシフトJISでも同じ)
3.最終的にUTF-8の文字列にして通常のリクエスト文字列として送信
これが何の変換かわからない(2.の理由により必要がない)
まず元の仕様を勘違いしていないか?
その上で逆手順のテストコードバグっているから不必要にややこしくなってる

492:デフォルトの名無しさん
17/12/11 15:39:40.21 FZFaQSBJ.net
ファイルをバイト配列に格納→をBase64に変換

Base64をバイト配列に変換→バイト配列をファイルとして保存

493:デフォルトの名無しさん
17/12/11 15:45:33.14 MTsA4uB/.net
>>471
あとBASE64の文字列の長さは4の倍数でConvert.FromBase64CharArrayにそれ以外の長さのChar[]を指定するとエラーになる
不足分を自分で埋める('='で埋める)必要があればそれもやらないと

494:デフォルトの名無しさん
17/12/11 16:00:32.40 JAdbtKtz.net
多分UTF-8のBOMの有無でずれているんだろうな
手順がいくら増えようが不可逆になることはない

495:デフォルトの名無しさん
17/12/11 17:48:13.13 s+GYIw+B.net
>>478
誰もenum無くせとは言ってないぞ
ドメインクラスをenumで表現するなって言ってる

496:デフォルトの名無しさん
17/12/11 18:27:40.38 sMdN9sff.net
ドメインが理解出来ていないからすれ違いのままなのかな

497:デフォルトの名無しさん
17/12/11 19:55:13.88 WHbaikY8.net
>>484
お前が誰か知らんけど
>>377
> ダメとは言わないがコード整理するとenumが自然と消える
とか言ってたアホがいるって話

498:デフォルトの名無しさん
17/12/11 20:33:38.88 hCIPbzdz.net
>>486
外人?
ダメともなくせとも言ってないじゃん

499:デフォルトの名無しさん
17/12/11 20:53:07.48 WHbaikY8.net
はいはい、言葉尻にしか反論できないってことね
可哀想だな w

500:デフォルトの名無しさん
17/12/11 22:32:51.43 g6aSF5Tx.net
やれやれ

501:デフォルトの名無しさん
17/12/11 22:54:45.84 Mf9o9uwW.net
あれあれ
これは言葉尻ではない気がする

502:デフォルトの名無しさん
17/12/11 22:59:42.23 SJ7HWrxD.net
goto文をなくせの頃から何にも変わってないな
gotoをなくせ
enumをなくせ
switchをなくせ
シングルトンをなくせ
ヘルパークラスをなくせ
一応どれも正しい
間違ってはいない
でもこういうルールは別に守らなくてもいい
どうでもいいルールなんだよ
DRY原則とかOpen/Close原則とかの設計原則の方がより重要あってね

503:デフォルトの名無しさん
17/12/11 23:06:06.50 +NqpgsqU.net
どっちでもどうでもいいよ
どうせ動くんだし
テストをしっかりすればいいだけ

504:デフォルトの名無しさん
17/12/11 23:22:47.89 Mf9o9uwW.net
gotoとenumの間にはかなり差がある気がする
前方へgotoは絶対悪だから使用厳禁
ドメインのenumと同じかw
もうちょっと緩いと思うが
switchはパターンマッチとして使うのは推奨なご時勢だけどC#のswitch構文は力不足だね

505:デフォルトの名無しさん
17/12/11 23:36:59.61 izyLx6FJ.net
gotoは後方への方が凶悪だろ
前方だけに使う分にはbreakやtry-catchと大差ない

506:493
17/12/11 23:40:04.94 izyLx6FJ.net
書いてから気付いたが前方参照の意味での前方か
失礼

507:デフォルトの名無しさん
17/12/11 23:43:50.74 wiZ77PPl.net
>>491
ルールと呼ぼうが原則と呼ぼうが本質は何も変わらんよ
要するにバカの暴走を制限する為の足枷でしかないw

508:デフォルトの名無しさん
17/12/11 23:54:41.55 SJ7HWrxD.net
>>496
〇〇をなくせというルールが馬鹿にたいする足枷でしかないのは全くその通り
だから俺みたいな賢人にはどうでもいい
逆に馬鹿に設計原則は理解出来ないだろう
SOLID原則が理解出来るならそいつは馬鹿ではない

509:デフォルトの名無しさん
17/12/12 00:01:45.14 98iDbaWn.net
>>497
表面的な理解で原理主義に陥いってしまう奴は沢山いるし
本質的にそいつはバカなんだと思うよw
それは理解してないのだと言われればそれまでだがw

510:デフォルトの名無しさん
17/12/12 00:04:06.99 4TJt3MwM.net
質問と関係ないレスどこまで続けんの
相談室行けよ

511:デフォルトの名無しさん
17/12/12 00:13:24.19 Vo2kP02L.net
バカにされて色々悔しかったんだろ、察してやれや

512:デフォルトの名無しさん
17/12/12 00:26:32.44 98iDbaWn.net
抽象的な話になると必ずこういうレスがつくなw
これもバカの典型w

513:デフォルトの名無しさん
17/12/12 01:19:52.30 sZfK5OGe.net
enum不要っていう馬鹿らしい主張は全然聞かない

514:デフォルトの名無しさん
17/12/12 01:31:17.45 /hFzA9NO.net
バカスレ

515:デフォルトの名無しさん
17/12/12 01:33:06.37 lIsHmOMn.net
初心者用スレで難しい話すんなよ
俺みたいな趣味グラマーが楽しめないだろ

516:デフォルトの名無しさん
17/12/12 02:08:48.08 YqkrRdmr.net
しゅみません

517:デフォルトの名無しさん
17/12/12 02:13:45.88 5Qo60rlq.net
しゅき

518:デフォルトの名無しさん
17/12/12 05:04:47.87 Vo2kP02L.net
>>501
必ず?
今まで何度も辛い目に逢ったのかな? w

519:デフォルトの名無しさん
17/12/12 09:32:06.37 enzDDAPg.net
10年以上いたら辛いこともあるだろ

520:デフォルトの名無しさん
17/12/12 09:55:36.90 B9ezHy21.net
>>507
一晩越してもまだ悔しいんかw

521:デフォルトの名無しさん
17/12/12 13:01:20.73 55mcEBCK.net
>>509
お前がな w

522:デフォルトの名無しさん
17/12/12 21:31:34.33 CwRQgOlO.net
tensorflow+keras+c#で
エロ画像を自動分類するソフトを
作って欲しいと頼まれたんだけど
c#から出来そうですか?
参考になるサイトないですか?

523:デフォルトの名無しさん
17/12/12 21:36:58.22 Hba1R6el.net
特徴量でググりまくれ

524:デフォルトの名無しさん
17/12/12 21:52:35.56 NQyVP+w1.net
>>511
C#以前に個人レベルじゃ無理です
そういうことはデカいところに任せましょう

525:デフォルトの名無しさん
17/12/12 21:57:23.48 CwRQgOlO.net
>>513
日経ソフトウェアの記事で
桜、ヒマワリ、バラの判別をやってる
プログラムがあるんで
これをエロ画像に置き換えて
c#からできればいいかなぁ?と

526:デフォルトの名無しさん
17/12/12 22:03:01.97 +ghxhmVd.net
エロがそんな単純だと思うなよ

527:デフォルトの名無しさん
17/12/12 22:03:38.97 NQyVP+w1.net
>>514
内容次第だと思うが何をどう分類したいのか?がはっきりしないと
分類できない

ひまわり
バラ
の様に特徴が特定しやすい分類なのか?

528:デフォルトの名無しさん
17/12/12 22:06:27.53 yoDcG/vu.net
>>514
アルゴリズムを作るところからやってみて話はそれから
とりあえずC#にそんなライブラリは無いので他のスレへどうぞ

529:デフォルトの名無しさん
17/12/12 22:06:56.72 CwRQgOlO.net
>>516
人妻、NTR、レ○プ

530:デフォルトの名無しさん
17/12/12 22:08:56.23 +ghxhmVd.net
絵で区別できねーだろそれ

531:デフォルトの名無しさん
17/12/12 22:09:56.75 CwRQgOlO.net
>>519
でもなんとなくわかるだろ?
人間だと

532:デフォルトの名無しさん
17/12/12 22:12:39.20 +ghxhmVd.net
無理 付いてる字幕次第で印象が全然変わるから

533:デフォルトの名無しさん
17/12/12 22:14:01.82 NQyVP+w1.net
>>518
マジで言ってるのか?
無理無理無理

534:デフォルトの名無しさん
17/12/12 22:15:14.51 yoDcG/vu.net
>>520
なるほど、お前には無理だ

535:デフォルトの名無しさん
17/12/12 22:16:50.37 +ghxhmVd.net
プログラム上で可能なのはせいぜい、
顔の輪郭に対する「目の位置」の違いで、大人か子供かを判別するとか
(二次絵では顔に対して大人は目を上寄りに、子供は目を下寄りに描かれるケースが多い)
そんなもんだろう
んで、どっちにせよ言語仕様の話でなく
画像解析という専門分野行きの話になるのでスレチ

536:デフォルトの名無しさん
17/12/12 22:17:02.32 CwRQgOlO.net
大丈夫だ
ディープインパクトならやってくれる
巨乳にニットセーターってもう人妻だろ
って結論ぐらい出せるだろ

537:デフォルトの名無しさん
17/12/12 22:18:12.64 NQyVP+w1.net
>>524
ディープラーニングはそういうのじゃない分類ができる
でも人間でも一枚絵を見て判断できないのはほぼ無理

538:デフォルトの名無しさん
17/12/12 22:18:48.48 yoDcG/vu.net
>>525
頭にディープインパクトして二度と来るな

539:デフォルトの名無しさん
17/12/12 22:22:07.89 ZGog+EYK.net
webでそういう判定してくれるサービスありそうだけどね
そういや俺もwebとかネットワーク関係まったく触ったことないんだけど、
C#でもVBでもいいけどそっち系のチュートリアルってどこかにある?
洋書は知らんけど本はほとんどないよね

540:デフォルトの名無しさん
17/12/12 22:23:51.41 /hFzA9NO.net
試しに学習させてみればいいやんけ
これはNTR、これは人妻、これはレ●プ、(以下略)
こんなデータを大量に与える
そして最後にテスト画像を見せて当てられるかどうか

541:デフォルトの名無しさん
17/12/12 22:24:07.38 +ghxhmVd.net
Webサービスを展開する話なら、言語がどうこうっつーより
サーバOSとか機器環境とかの話になっちゃうからなあ

542:デフォルトの名無しさん
17/12/12 22:24:09.98 CwRQgOlO.net
>>528
安定するの待ってるんだろうな
機械学習と言ったらコレって確定するの

543:デフォルトの名無しさん
17/12/12 22:40:24.36 NQyVP+w1.net
ディープラーニング、機械学習の本は最近ぼこぼこ出てるよ
内容は似たり寄ったり
地元の図書館にも充実とまではいかないけど今年だけで3冊ぐらい入った
雑誌もディープラーニング特集すると部数が伸びるらしいのでよく特集される

544:デフォルトの名無しさん
17/12/12 22:57:04.37 wz4D/2fS.net
いい加減クラウドじゃ稼げないからディープラーニングに換えただけだろう
出版しても売れなきゃ返本の山だしな

545:デフォルトの名無しさん
17/12/12 23:32:02.56 qioa7JjJ.net
AWSってどこまでガチなの?
書籍も少ないし様子見してた

546:デフォルトの名無しさん
17/12/12 23:36:49.62 mXOR9ERV.net
今更すぎるだろ
エンタープライズでも驚異的な勢いで伸びてて、あと5年もしたらオンプレサーバーなんかほぼ消滅するレベルだぞ

547:デフォルトの名無しさん
17/12/12 23:42:13.92 enzDDAPg.net
何を指標にガチってるのか分からんが
AWSだけで100億ドル超を売り上げるくらいには使われてるだろ

548:デフォルトの名無しさん
17/12/12 23:52:57.04 qioa7JjJ.net
まあ、企業向けのサーバーなんしょ?
閉じたネットワークの業務アプリばっかで今までもあんまり関わり無かったからなぁ

549:デフォルトの名無しさん
17/12/13 00:03:21.24 prgZVef7.net
>>537
イントラのクラウド移行も凄まじい勢いで進んでるぞ。
AWS上にプライベートクラウドを設定してVPNで接続するだけ。
慣れてりゃ一日ポチポチしたら出来上がり

550:デフォルトの名無しさん
17/12/13 00:14:37.13 7y6FaNAn.net
SIのインフラ屋でコード書けない奴はガチでやばいよ
従来のインフラ構築運用なんかクラウドじゃ全く商売にならん
インフラはもはや、アプリエンジニアや社内SEが片手間にポチポチやるもの

551:デフォルトの名無しさん
17/12/13 00:16:41.76 n4AZEwrx.net
テンプレ理解できないやつ何人いるの?

552:デフォルトの名無しさん
17/12/13 00:21:59.75 XGmIS6JF.net
ルールを無視する輩とは一緒に仕事したくないよな。ホント

553:デフォルトの名無しさん
17/12/13 02:36:04.24 celmGK9q.net
すぐに底辺の職業プログラマが談話始めやがる

554:デフォルトの名無しさん
17/12/13 03:35:29.20 Aa4rKi8+.net
馬鹿の相手する馬鹿とどっこいどっこいだわ
両方殺すにはどうしたらいいか質問していい


555:?



556:デフォルトの名無しさん
17/12/13 06:29:25.97 9AlYNlS9.net
>>534
C#erならazulemachinlearningだろw

557:デフォルトの名無しさん
17/12/13 06:31:08.15 9AlYNlS9.net
>>535
インフラ担当者は生き残れますか?

558:デフォルトの名無しさん
17/12/13 09:49:18.40 5hkNOkMK.net
勉強のために作ったアプリの単体テスト始めたけどテストコードすら書けない
やっぱコピペばっかで作れただけで何も身に付いてないんだなぁ
データベースから取ってきた値の比較とかどうやるんだよ…

559:デフォルトの名無しさん
17/12/13 09:57:31.43 WF2IXduz.net
>>546
データベース読むとこのテストはモック使うんだよ。

560:デフォルトの名無しさん
17/12/13 10:03:04.23 5hkNOkMK.net
>>547
モックってダミーみたいなやつのこと?
せっかく教えてもらったのに何が便利になるのか全然イメージ出来ない…

561:デフォルトの名無しさん
17/12/13 10:05:50.55 7X3tjs6V.net
>>548
用語教えてもらっただけだからわからなくても仕方がない
勉強するのなら自分で使うようなツール作れ。簡単なやつでいいぞ
少しずつ機能増やしていくようにしたらスキルが上がっていく

562:デフォルトの名無しさん
17/12/13 10:11:11.76 WF2IXduz.net
>>548
グーグル先生にMoqを教えて貰え

563:デフォルトの名無しさん
17/12/13 10:14:58.04 1Q6K9tEb.net
Aの値を求める

AとBが等しいか
1等しくないなら
Aの値を変更して初めに戻る
2等しくなくて3回Aの値を変えている
失敗で終了
3等しい
正常に終了

というプログラムを作りたいのですが
どう条件分岐や反復を使用していいかわかりません
Aの値の変更は他アプリへの入力で、Aの値を求めるというのは他アプリの状態です
アドバイスお願い致します

564:デフォルトの名無しさん
17/12/13 10:21:01.20 QhF+UxFg.net
>>551
3回ぐらいハードコーディングしろよ
んで同じところをループや関数にすればいい

565:デフォルトの名無しさん
17/12/13 10:24:58.47 7X3tjs6V.net
>>551
C#以前の質問だと思うしいろいろあるんだけど
int count=3;
while (count>0)
{
[Aの値をGet]
if (B==A) break; //正常に終了
count--;
}
if (count>0) {[正常に終了}]
if (count==0) {[3回とも失敗]}

566:デフォルトの名無しさん
17/12/13 10:29:29.60 1Q6K9tEb.net
>>553
ありがとうございます!
これでいきます!

567:デフォルトの名無しさん
17/12/13 12:09:08.61 zXzMZXIu.net
いやいや人の回答にケツつけるのもあれだけど、普通にforループ使った方が分かりやすいよw
だって要するに3回までリトライするってだけの話でしょw
const int rertryCount = 3;
A a;
for (int i = 0; i < retryCount; i++)
  if((a = GetA()) == B) return true; //成功
return false; //失敗

568:デフォルトの名無しさん
17/12/13 12:11:06.80 zXzMZXIu.net
const int rertryCount = 3;
これはちょとミスリーディングか。
こだわるなら
const int maxRetryCount = 3;
こっちの方がいいね

569:デフォルトの名無しさん
17/12/13 12:16:44.81 ubNNZos/.net
文末の無駄煽りwイラネ

570:デフォルトの名無しさん
17/12/13 12:21:20.67 WF2IXduz.net
宿題への解答はスルーで

571:デフォルトの名無しさん
17/12/13 12:22:42.84 xw1cKw2m.net
>>555
ところ構わずケツつけてくる奴やな
みんながみんなホモちゃうでしかしw

572:デフォルトの名無しさん
17/12/13 12:57:28.03 qPshWZUl.net
ケツつけるならAは要らない子

573:デフォルトの名無しさん
17/12/13 18:22:17.80 celmGK9q.net
getA()=Bじゃダメな理由は?

574:デフォルトの名無しさん
17/12/13 18:23:23.16 m+6YTdY7.net
>>560>>561
なんで勝手に質問者の要件作るの?

575:デフォルトの名無しさん
17/12/13 18:24:34.34 celmGK9q.net
>>562
何言ってるか分からん
ただの質問
ここ質問スレだろ?

576:デフォルトの名無しさん
17/12/13 18:26:58.52 m+6YTdY7.net
>>563
C#の質問じゃないな

577:デフォルトの名無しさん
17/12/13 18:31:40.81 celmGK9q.net
>>564
じゃあどこですんの?
言語に関係無いプログラマの談話は要らんが

578:デフォルトの名無しさん
17/12/13 18:51:30.28 Aix7CEXX.net
>>546
簡単にユニットテストできるようにSOLIDなコードを書かないとダメ
ただ漠然とユニットテストやればきっとうまくいくんや~などと考えてるようなら先はないぞ

579:デフォルトの名無しさん
17/12/13 19:17:20.81 48dLEnlz.net
VBですみません。下記のようなコードで印刷ジョブの数を取得すると
OSの印刷ジョブ一覧ウィンドウで見える数と違うのですが
なぜ違ってしまうのでしょうか?
'プリントサーバの情報取得
Dim prtSv As New LocalPrintServer()
'印刷キュー取得
Dim que As PrintQueue = prtSv.DefaultPrintQueue
msgbox que.NumberOfJobs

580:デフォルトの名無しさん
17/12/13 19:23:41.42 qPshWZUl.net
>>567
環境を詳細に書かないと解らない
エスパー得意だけどこれは無理w

581:デフォルトの名無しさん
17/12/13 19:25:11.30 qPshWZUl.net
>>561
俺に聞くなw
B == GetA()
で十分でないの

582:デフォルトの名無しさん
17/12/13 19:28:38.16 celmGK9q.net
>>567
OSのジョブ一覧は変更の反映が遅いから
ジョブ一覧の画面でF5押しまくれ

583:デフォルトの名無しさん
17/12/13 19:29:21.02 48dLEnlz.net
>>568
環境はWin7です。プリンタを一時停止にしてジョブを40個くらいためていくと
que.NumberOfJobsは35が返ってきたりします。
時間が経つと40が返ってきたりします。
時間差があるのでしょうか?印刷が成功したか知りたいのですが
そのジョブが見つからないのです。

584:デフォルトの名無しさん
17/12/13 19:29:55.45 JWALofvX.net
>>567
スレタイとテンプレ読め

585:デフォルトの名無しさん
17/12/13 19:33:48.02 48dLEnlz.net
>>570
そうなんですか。困りました。
下記のサイトのようなことがやりたかったのですがorz
URLリンク(jehupc.exblog.jp)

586:デフォルトの名無しさん
17/12/13 19:36:20.02 celmGK9q.net
>>573
読んでないからよくわからんけど反映が遅れるのはジョブ一覧の画面上の話で実際の内部のジョブ一覧はリアルタイムで変更されてるぞ
多分のおまえのやりたいことはできる

587:デフォルトの名無しさん
17/12/13 19:40:02.91 celmGK9q.net
>>571で言えば35の方が正しいってことな多分
知らんけど試してくれ

588:デフォルトの名無しさん
17/12/13 19:46:53.57 48dLEnlz.net
>>574
自分も認識としてはそうなんですが何故か想定と違う値が返ってきてしまい・・・
ちなみに.NETの問題かとも思いましたがAPIのEnumJobs()でも同じ値が返ってきました。
JOB一覧でF5を押しまくって40なのを確認してque.NumberOfJobsを取得しても
35なんですよね。で数分待つと40が返ってきたり。
直前にque.Refresh()はしています。

589:デフォルトの名無しさん
17/12/13 19:56:07.48 celmGK9q.net
>>576
マジか、すまんな

590:デフォルトの名無しさん
17/12/13 19:57:45.10 o6fkcoL6.net
>>576
数分待てば40返ってくんじゃん
解決

591:デフォルトの名無しさん
17/12/13 20:00:10.64 celmGK9q.net
質問ですがWPFでCommandからModelにアクセスするにはどうすればいいですか?
例えばボタンをクリックしたらModelのBuyNumプロパティをインクリメントしてそれをViewのLabelに反映させたりしたいときなどです。

592:デフォルトの名無しさん
17/12/13 20:01:32.95 48dLEnlz.net
>>577
わかりにくくてすみません。
>>578
なるほど!

593:デフォルトの名無しさん
17/12/13 20:55:52.96 6RipZ3Bg.net
>>579
VMにコマンドがあるんだったらVMのフィールドにModel持ってるはずだろ?
何の問題もなくアクセスできるはずだが一体何が分からないのか

594:デフォルトの名無しさん
17/12/13 21:45


595::44.50 ID:pl2NU6fI.net



596:デフォルトの名無しさん
17/12/13 21:56:15.26 i7QaIdVf.net
>>579
よくあるパターンだと、DIコンテナってのを使ったりします。モデルのインスタンスを管理するプログラムが有って
VMが起動されたときにModelのインスタンスをVMに渡すことが出来ます
Prism.Unityとか、MEFとかAutoFacなんてのがありますので興味があれば調べてくださいね

597:デフォルトの名無しさん
17/12/13 22:32:23.84 D2CxP1eV.net
コマンドバインディングとデータバインディングを一緒くたにするのは混乱の元
つかWPFスレの次スレ建ってないんだな

598:デフォルトの名無しさん
17/12/13 23:15:57.29 Aa4rKi8+.net
要るのか?

599:デフォルトの名無しさん
17/12/13 23:21:05.54 +hxIYt9g.net
こっちでうざい論争始められても困るし。

600:デフォルトの名無しさん
17/12/13 23:23:03.58 vLvUNPwO.net
EF Coreを使ってます
UpdateでWhereを指定するにはどうしたらいいでしょうか?
現在は以下のようになってます
ctx.Students.Update(student);
ctx.SaveChanges();
もしくは、行ロックのやり方を教えてください
レコードを更新する際に特定の条件下なら1度だけ更新をしたいです

601:デフォルトの名無しさん
17/12/13 23:31:04.98 celmGK9q.net
>>584
もう廃れてるからね
知らんけど

602:デフォルトの名無しさん
17/12/13 23:37:57.02 muTUiD7C.net
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22
スレリンク(tech板)

603:デフォルトの名無しさん
17/12/13 23:39:24.47 uYugybSh.net
>>551
こういったのプログラミングするときちゃんと書かれてる通りに作れって思う
仕様書の書き方がクソで勝手に直したくなるのは分かるけど
enum Hoge{最初から,失敗終了,成功終了}
private Hoge Func(A a,B b,Int changeCount){
bool 等しい a==b;
if(!等しい&&changeCount!=3)return Hoge.最初から;
else if(!等しい&&changeCount==3)return Hoge.失敗終了;
else if(等しい)return Hoge.成功終了;
throw new Exception("仕様書に書いてないけど?");
}

604:デフォルトの名無しさん
17/12/13 23:42:41.36 BxJ5qLxy.net
>>587
.Where(条件)追加すればいいんじゃないか?

605:デフォルトの名無しさん
17/12/14 00:09:23.47 AbaQzWBd.net
>>590
面白くない
星一つ★☆☆☆☆

606:デフォルトの名無しさん
17/12/14 06:07:27.62 tSpFRQdC.net
>>591
連結は出来ませんよね?定義には含まれてないので。
具体的にどのようなコードになりますか??

607:デフォルトの名無しさん
17/12/14 07:19:39.96 VVrew0Yx.net
amazon死んでる
AWSも逝った?

608:デフォルトの名無しさん
17/12/14 08:04:04.61 5Zp71Sbj.net
おまえらなんでアジュール使わないの?

609:デフォルトの名無しさん
17/12/14 08:28:56.13 VVrew0Yx.net
>>595
そういう仕事に遭遇しない
でもそんなレアだといざデスマになったときに追加人員が補充できないから人数が少ないってヤバそう

610:デフォルトの名無しさん
17/12/14 08:51:15.38 kupDQT+K.net
アジュールってクラウド鯖環境なだけだが

611:デフォルトの名無しさん
17/12/14 08:58:02.26 AMqoei3b.net
AWSの方が便利ですし

612:デフォルトの名無しさん
17/12/14 09:33:13.26 h0pJUyRR.net
>>597
嘘は良くない

613:デフォルトの名無しさん
17/12/14 09:33:48.37 6p67cfA3.net
アジュールAWSとVPSの違いは?

614:デフォルトの名無しさん
17/12/14 09:40:54.01 +GHlkdpq.net
try catchってどこで囲うのが基本?
メソッドの中身全部かなと思うんだけど

615:デフォルトの名無しさん
17/12/14 09:54:01.28 exEWR3q2.net
>>601
書くなって言われたよ
イベントログに出なくなっちゃうからだって

616:デフォルトの名無しさん
17/12/14 10:26:35.89 4QS0W6Tf.net
???

617:デフォルトの名無しさん
17/12/14 10:38:03.42 T38l1dnq.net
できるだけ狭く

618:デフォルトの名無しさん
17/12/14 11:00:13.42 VYyAdkca.net
>>601
全部でも良いけど
そのメソッド内でキャッチして例外に対応できる場合のみ

619:デフォルトの名無しさん
17/12/14 12:14:15.12 E4k7gbUw.net
どこに書いてもいいけど
} catch (Exception) { }
とかやんなよハゲ、それじゃどこで例外が発生したかわからんだろが、どうやってデバックすんだ
と怒鳴られたんだろう
事なかれ主義で育てられた子が面倒を起こすパターン
事なかれ例外と名付けよう

620:デフォルトの名無しさん
17/12/14 12:19:44.66 yn4+AjAE.net
>>606
だって、このメソッドで落ちると困るじゃん例外とも言う

621:デフォルトの名無しさん
17/12/14 12:33:59.88 PpIxqW4X.net
>>606
vsなら見れるだろ
知らんけど

622:デフォルトの名無しさん
17/12/14 12:52:43.26 h0pJUyRR.net
>>606
問題はそのあと
throw ex
とかしちゃうやつ

623:デフォルトの名無しさん
17/12/14 13:34:33.61 6p67cfA3.net
>>609
語るなら理由も書いてくれ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch