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
577 名前:デフォルトの名無しさん [2017/12/13(水) 18:31:40.81 ID:celmGK9q.net] >>564 じゃあどこですんの? 言語に関係無いプログラマの談話は要らんが
578 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 18:51:30.28 ID:Aix7CEXX.net] >>546 簡単にユニットテストできるようにSOLIDなコードを書かないとダメ ただ漠然とユニットテストやればきっとうまくいくんや〜などと考えてるようなら先はないぞ
579 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:17:20.81 ID:48dLEnlz.net] VBですみません。下記のようなコードで印刷ジョブの数を取得すると OSの印刷ジョブ一覧ウィンドウで見える数と違うのですが なぜ違ってしまうのでしょうか? 'プリントサーバの情報取得 Dim prtSv As New LocalPrintServer() '印刷キュー取得 Dim que As PrintQueue = prtSv.DefaultPrintQueue msgbox que.NumberOfJobs
580 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:23:41.42 ID:qPshWZUl.net] >>567 環境を詳細に書かないと解らない エスパー得意だけどこれは無理w
581 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:25:11.30 ID:qPshWZUl.net] >>561 俺に聞くなw B == GetA() で十分でないの
582 名前:デフォルトの名無しさん [2017/12/13(水) 19:28:38.16 ID:celmGK9q.net] >>567 OSのジョブ一覧は変更の反映が遅いから ジョブ一覧の画面でF5押しまくれ
583 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:29:21.02 ID:48dLEnlz.net] >>568 環境はWin7です。プリンタを一時停止にしてジョブを40個くらいためていくと que.NumberOfJobsは35が返ってきたりします。 時間が経つと40が返ってきたりします。 時間差があるのでしょうか?印刷が成功したか知りたいのですが そのジョブが見つからないのです。
584 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:29:55.45 ID:JWALofvX.net] >>567 スレタイとテンプレ読め
585 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:33:48.02 ID:48dLEnlz.net] >>570 そうなんですか。困りました。 下記のサイトのようなことがやりたかったのですがorz jehupc.exblog.jp/8603528/
586 名前:デフォルトの名無しさん [2017/12/13(水) 19:36:20.02 ID:celmGK9q.net] >>573 読んでないからよくわからんけど反映が遅れるのはジョブ一覧の画面上の話で実際の内部のジョブ一覧はリアルタイムで変更されてるぞ 多分のおまえのやりたいことはできる
587 名前:デフォルトの名無しさん [2017/12/13(水) 19:40:02.91 ID:celmGK9q.net] >>571 で言えば35の方が正しいってことな多分 知らんけど試してくれ
588 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:46:53.57 ID:48dLEnlz.net] >>574 自分も認識としてはそうなんですが何故か想定と違う値が返ってきてしまい・・・ ちなみに.NETの問題かとも思いましたがAPIのEnumJobs()でも同じ値が返ってきました。 JOB一覧でF5を押しまくって40なのを確認してque.NumberOfJobsを取得しても 35なんですよね。で数分待つと40が返ってきたり。 直前にque.Refresh()はしています。
589 名前:デフォルトの名無しさん [2017/12/13(水) 19:56:07.48 ID:celmGK9q.net] >>576 マジか、すまんな
590 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 19:57:45.10 ID:o6fkcoL6.net] >>576 数分待てば40返ってくんじゃん 解決
591 名前:デフォルトの名無しさん [2017/12/13(水) 20:00:10.64 ID:celmGK9q.net] 質問ですがWPFでCommandからModelにアクセスするにはどうすればいいですか? 例えばボタンをクリックしたらModelのBuyNumプロパティをインクリメントしてそれをViewのLabelに反映させたりしたいときなどです。
592 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 20:01:32.95 ID:48dLEnlz.net] >>577 わかりにくくてすみません。 >>578 なるほど!
593 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 20:55:52.96 ID:6RipZ3Bg.net] >>579 VMにコマンドがあるんだったらVMのフィールドにModel持ってるはずだろ? 何の問題もなくアクセスできるはずだが一体何が分からないのか
594 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 21:45
] [ここ壊れてます]
595 名前::44.50 ID:pl2NU6fI.net mailto: >>579 command生成時にVMのメソッドかVMのインスタンスをcommandに渡す つかICommandなんて使わずにコードビハインドのコールバックからVMのメソッド呼び出す方が分かりやすいよ [] [ここ壊れてます]
596 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 21:56:15.26 ID:i7QaIdVf.net] >>579 よくあるパターンだと、DIコンテナってのを使ったりします。モデルのインスタンスを管理するプログラムが有って VMが起動されたときにModelのインスタンスをVMに渡すことが出来ます Prism.Unityとか、MEFとかAutoFacなんてのがありますので興味があれば調べてくださいね
597 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 22:32:23.84 ID:D2CxP1eV.net] コマンドバインディングとデータバインディングを一緒くたにするのは混乱の元 つかWPFスレの次スレ建ってないんだな
598 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:15:57.29 ID:Aa4rKi8+.net] 要るのか?
599 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:21:05.54 ID:+hxIYt9g.net] こっちでうざい論争始められても困るし。
600 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:23:03.58 ID:vLvUNPwO.net] EF Coreを使ってます UpdateでWhereを指定するにはどうしたらいいでしょうか? 現在は以下のようになってます ctx.Students.Update(student); ctx.SaveChanges(); もしくは、行ロックのやり方を教えてください レコードを更新する際に特定の条件下なら1度だけ更新をしたいです
601 名前:デフォルトの名無しさん [2017/12/13(水) 23:31:04.98 ID:celmGK9q.net] >>584 もう廃れてるからね 知らんけど
602 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:37:57.02 ID:muTUiD7C.net] WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22 mevius.2ch.net/test/read.cgi/tech/1513175747/
603 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:39:24.47 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 23:42:41.36 ID:BxJ5qLxy.net] >>587 .Where(条件)追加すればいいんじゃないか?
605 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:09:23.47 ID:AbaQzWBd.net] >>590 面白くない 星一つ★☆☆☆☆
606 名前:デフォルトの名無しさん [2017/12/14(木) 06:07:27.62 ID:tSpFRQdC.net] >>591 連結は出来ませんよね?定義には含まれてないので。 具体的にどのようなコードになりますか??
607 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 07:19:39.96 ID:VVrew0Yx.net] amazon死んでる AWSも逝った?
608 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:04:04.61 ID:5Zp71Sbj.net] おまえらなんでアジュール使わないの?
609 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:28:56.13 ID:VVrew0Yx.net] >>595 そういう仕事に遭遇しない でもそんなレアだといざデスマになったときに追加人員が補充できないから人数が少ないってヤバそう
610 名前:デフォルトの名無しさん [2017/12/14(木) 08:51:15.38 ID:kupDQT+K.net] アジュールってクラウド鯖環境なだけだが
611 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:58:02.26 ID:AMqoei3b.net] AWSの方が便利ですし
612 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:33:13.26 ID:h0pJUyRR.net] >>597 嘘は良くない
613 名前:デフォルトの名無しさん [2017/12/14(木) 09:33:48.37 ID:6p67cfA3.net] アジュールAWSとVPSの違いは?
614 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:40:54.01 ID:+GHlkdpq.net] try catchってどこで囲うのが基本? メソッドの中身全部かなと思うんだけど
615 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 09:54:01.28 ID:exEWR3q2.net] >>601 書くなって言われたよ イベントログに出なくなっちゃうからだって
616 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:26:35.89 ID:4QS0W6Tf.net] ???
617 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:38:03.42 ID:T38l1dnq.net] できるだけ狭く
618 名前:デフォルトの名無しさん [2017/12/14(木) 11:00:13.42 ID:VYyAdkca.net] >>601 全部でも良いけど そのメソッド内でキャッチして例外に対応できる場合のみ
619 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:14:15.12 ID:E4k7gbUw.net] どこに書いてもいいけど } catch (Exception) { } とかやんなよハゲ、それじゃどこで例外が発生したかわからんだろが、どうやってデバックすんだ と怒鳴られたんだろう 事なかれ主義で育てられた子が面倒を起こすパターン 事なかれ例外と名付けよう
620 名前:デフォルトの名無しさん [2017/12/14(木) 12:19:44.66 ID:yn4+AjAE.net] >>606 だって、このメソッドで落ちると困るじゃん例外とも言う
621 名前:デフォルトの名無しさん [2017/12/14(木) 12:33:59.88 ID:PpIxqW4X.net] >>606 vsなら見れるだろ 知らんけど
622 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:52:43.26 ID:h0pJUyRR.net] >>606 問題はそのあと throw ex とかしちゃうやつ
623 名前:デフォルトの名無しさん [2017/12/14(木) 13:34:33.61 ID:6p67cfA3.net] >>609 語るなら理由も書いてくれ
624 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 13:37:11.31 ID:exEWR3q2.net] >>606 一律で書かないことになっちゃったけど 本当は何書いて欲しいの?
625 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 14:07:14.43 ID:h0pJUyRR.net] >>610 >どこで例外が発生したかわからん に対する補足。Java上がりがよくやるポカ。
626 名前:デフォルトの名無しさん [2017/12/14(木) 14:13:12.44 ID:yn4+AjAE.net] >>611 一律で書かないと言うのは集中キャッチハンドラーがあるからでしょ
627 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 15:27:07.73 ID:exEWR3q2.net] >>613 なんもない 自分で書いた場所にtry catchがそもそもない
628 名前:デフォルトの名無しさん [2017/12/14(木) 15:39:34.55 ID:yn4+AjAE.net] >>614 自分で書いてない所にあるんだよ。
629 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 17:00:13.09 ID:exEWR3q2.net] >>615 ないっす
630 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 17:32:02.14 ID:us8b95/8.net] 何のスレだよここ
631 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 18:09:08.31 ID:oUWqnTgP.net] IO系とかエラーが発生する可能性のある一帯だけ囲んで、こんなとこじゃエラー出ないよね? ってとこは囲わないかな 万一そういう所でエラー発生したら、そのエラー箇所を特定しやすいように 売り物のソフトだと、好ましくないやり方かもしんないけどな
632 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:49:00.77 ID:COokNIga.net] 復旧可能かつ復旧を試みる事が要件で明示されてればそこでキャッチする それ以外は基本的に全てキャッチしてはならない グローバル例外ハンドラに任せてログ出力やユーザー通知を行う
633 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 20:51:54.39 ID:COokNIga.net] リソースの解放は原則IDisposableとusingで行うこと(try finallyは使わない)
634 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 22:00:38.77 ID:7SAvsilk.net] >>620 usingはtry finallyに展開されるという・・・
635 名前:デフォルトの名無しさん [2017/12/14(木) 22:01:50.75 ID:NV/46Hd7.net] >>621 自分で書いてミスるのを防ぐため
636 名前:デフォルトの名無しさん [2017/12/14(木) 22:42:27.89 ID:83z5th3I.net] なんで? Finallyあると開放されないん?
637 名前:デフォルトの名無しさん [2017/12/14(木) 22:52:02.96 ID:6p67cfA3.net] https://qiita.com/mik_claire/items/8f36d143639cd538a980
638 名前:デフォルトの名無しさん [2017/12/14(木) 22:58:02.78 ID:6p67cfA3.net] hensa40.cutegirl.jp/archives/1428
639 名前:デフォルトの名無しさん [2017/12/15(金) 02:32:16.25 ID:6xqAElZe.net] 1234.5678 => 1,234.5678 1234.56 => 1,234.56 123.456 => 123.456 というように、 数値を3桁区切り+小数点を含める(0埋めしない)文字列を出力するにはどうしたら良いでしょうか?
640 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 02:43:42.30 ID:OGT2pKSi.net] >>626
641 名前:複合書式指定 https://msdn.microsoft.com/ja-jp/library/txafckwd(v=vs.110).aspx でできそうにないものは整数部分と小数点以下に分けて文字列作って合わせるしかない [] [ここ壊れてます]
642 名前:デフォルトの名無しさん [2017/12/15(金) 02:45:25.60 ID:6xqAElZe.net] >>627 C#ってわざわざ面倒臭いことしないといけないんですね・・・
643 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 02:53:08.52 ID:OGT2pKSi.net] >>628 他の言語でできることならフォーマット用意してあるかもしれないから調べたら? そこまで見ていないから
644 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 03:21:16.28 ID:IbhaoRnF.net] >>626 ちょっと格好悪いけど、 ToString( "###,###,###,###,###.########" ); とでもしとけば。
645 名前:デフォルトの名無しさん [2017/12/15(金) 09:01:04.44 ID:BaW7Km5G.net] >>626 ggrks www.atmarkit.co.jp/ait/articles/0707/19/news143.html
646 名前:デフォルトの名無しさん [2017/12/15(金) 09:05:36.73 ID:BaW7Km5G.net] Console.WriteLine("{0:#,0} ", 数値); こんだけな
647 名前:デフォルトの名無しさん [2017/12/15(金) 09:14:42.49 ID:BaW7Km5G.net] それかコレな Console.WriteLine("{0:N}", 数値);
648 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:33:12.63 ID:WmAzWj4RE] >>631-633 小数点以下の桁数が>>626 の要望を満たしてない
649 名前:デフォルトの名無しさん [2017/12/15(金) 12:48:50.32 ID:6xqAElZe.net] >>631-633 頭悪いレスは必要ないです 質問をよく読んでから答えてください
650 名前:デフォルトの名無しさん [2017/12/15(金) 13:08:51.68 ID:BaW7Km5G.net] ググる知能もない低脳に説教されちゃったよ..(^^;
651 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 14:03:20.57 ID:s/91E6Oz.net] 一度でもやってからしゃべってんだろうかこのアホ ID:6xqAElZe は
652 名前:デフォルトの名無しさん [2017/12/15(金) 16:15:56.95 ID:M7F98+kf.net] VB.netのクラスの中身の大半をC#に移動したいんだが、Partialしたらいいだろか?
653 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:32:35.38 ID:aCy2oimY.net] vb.netのコードをc#に一発変換してくれるツールがあった気がする
654 名前:デフォルトの名無しさん [2017/12/15(金) 16:42:28.20 ID:M7F98+kf.net] Formは無理じゃない。 コードは変換できるのを見たことがある。なのでコード部とか ライブラリクラスをC#にしようと思う。
655 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:10:02.32 ID:aCy2oimY.net] >>640 https://dobon.net/vb/dotnet/links/convertcs2vb.html sharpdevelopとかいうのでできた気がすんだよ ちょっとやってみてよ 試す価値はあるでしょ? ただ、動作までは知らんから変換出来てもテスト工数は減らせないぞ
656 名前:デフォルトの名無しさん [2017/12/15(金) 17:28:02.50 ID:M7F98+kf.net] >>641 ありがとう。やってみてまた報告するよ。
657 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 17:51:54.84 ID:m9RnQpi/.net] プロジェクト分ければVBとC#共存できるんだから 循環参照が必要じゃないなら無理に変換することもないんじゃないかと
658 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 18:41:41.68 ID:Rbo0n5z7.net] >>643 VBerがそんな綺麗なコード書くわけ無いでしょ
659 名前:デフォルトの名無しさん [2017/12/15(金) 18:43:49.15 ID:M7F98+kf.net] 心が綺麗だとコードも綺麗。
660 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 18:47:39.84 ID:Sbz3X1/O.net] VisualBasicがなかったら ファイルをゴミ箱入れたいとき困るじゃないですか
661 名前:デフォルトの名無しさん [2017/12/15(金) 20:59:15.61 ID:6xqAElZe.net] >>636 >>637 せめてテストくらいしてからレスしてくださいね^^; C#
662 名前:erレベル低すぎ [] [ここ壊れてます]
663 名前:デフォルトの名無しさん mailto:sage釣 [2017/12/15(金) 21:11:29.58 ID:Hv9P7iJ4.net] >>641 バージョンによるな。こけるパターンが特徴的なので 慣れれば機械的に直していける
664 名前:デフォルトの名無しさん [2017/12/15(金) 21:29:12.26 ID:GAdh6qIc.net] >>647 はいキチガイ
665 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 21:30:37.92 ID:wB/Paoxt.net] >>646 Microsoft.VisualBasic.dllだけあればいいよ
666 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 22:02:04.42 ID:JZUrtsL7.net] >>626 Console.WriteLine("{0:#,#.##########}", 1234.5678);
667 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 23:04:45.15 ID:ZiMYN4DZ.net] >>648 すんなりは行かんかった? Formは行けた?
668 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 08:46:52.59 ID:2xEHZCIG.net] vb formからc# formへctl-aで全選択してコピペできるよ。 ちゃんと言語の変換をしてくれる。
669 名前:デフォルトの名無しさん [2017/12/16(土) 09:10:07.48 ID:HogLmiIR.net] デザインは変換できる?
670 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 09:54:00.60 ID:ghluEyaB.net] あれぇ? なんかボタンで一発変換だった記憶があるんだけど?
671 名前:デフォルトの名無しさん [2017/12/16(土) 10:37:27.38 ID:HogLmiIR.net] クラスAでクラスBをインスタンス化する クラスCでクラスBのメソッドを実行する。 クラスAでクラスBをインスタンス化する。クラスCでクラスBのメソッドを実行する。 クラスAのインスタンス名は未定の時に、clsCからB.bm()を呼び出す方法? こういう時にどうすればいい? なんかスマートにできる方法はない? public class clsA { public clsB B = new clsB; public clsC C = new clsC(B); } public class clsB { public void bm() { } } public class clsC { clsB B; private clsC(clsB bb) { B = bb; } private void doc() { B.bm(); } } 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
672 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 10:52:11.94 ID:2xEHZCIG.net] >>655 それって vb6 ⇒ vb.net じゃないの?
673 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 10:54:04.95 ID:VgVQwchc.net] >>656 それでできてるだろ。何が分からないのか全く伝わらない。 あと、そのレベルならAだのBだのと話を一般化しないでズバリ何がしたいのかを書いたほうが適切な回答が得られる可能性が高いと思う。
674 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 10:56:52.96 ID:ghluEyaB.net] まあ、最悪ベタで組めばいいじゃん
675 名前:デフォルトの名無しさん [2017/12/16(土) 11:55:33.53 ID:8tD9WB4W.net] 関数をreturn する直前で実行したい処理があるのですが、 try catch finallyを使うとできますが、finally だけ使いたいのですが、そう言うのは無いですか?
676 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:03:55.12 ID:8r44i3VV.net] ないですね
677 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:07:33.63 ID:EDRAYm5f.net] >>660 複数のreturnの前の同一処理ならreturnの代わりにgotoでその処理へ飛ばせばいいだろ
678 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:08:12.20 ID:VgVQwchc.net] try { return; } finally { } でいいだろ
679 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:08:20.45 ID:2xEHZCIG.net] >>660 try, finallyだけもあるけど
680 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 12:14:22.30 ID:oPhsj9qx.net] >>660 finallyだけじゃどこを抜けたらか分からないよ、ちゃんとそれぞれ有ります https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/try-finally
681 名前:デフォルトの名無しさん [2017/12/16(土) 12:51:36.41 ID:8tD9WB4W.net] >>665 ああ、出来るじゃない! 今日は気分がいい。さんきゅ
682 名前:デフォルトの名無しさん [2017/12/16(土) 16:35:16.86 ID:gJhjPx+L.net] C#初心者の頃(いまもかわらんけど)、一番悩んだのは インターフェースが分からない。 何がわからないかというと、インタフェースって、自分で一から定義するような ことが書かれていたが、既存のプログラムで使用しているインタフェースって 何かやってる。 何か定義しないと何もやらないはずなのに・・・・・めちゃ気持ち悪いしわからない。 システムで処理を記述したものも、インターフェースとそのまま呼んでいるから、 わけわからなくてさ〜。 なんだ、処理が記述されているものがあるのねと、理解するのにひと月かかったアホ出した。 まあ今も変わらんんけど。
683 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 16:39:09.26 ID:ghluEyaB.net] 設計書も書かないくせに インターフェース定義するやつがこれまたわからん 馬鹿だろお前 って素で聞いてしまった
684 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 16:42:29.58 ID:6gulH/Qw.net] インターフェースを機械とか現実の何かで例えたらなんですか?
685 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 16:45:05.86 ID:ghluEyaB.net] 強いて言えば型 100Vコンセントって型=インターフェース
686 名前:デフォルトの名無しさん [2017/12/16(土) 16:53:14.91 ID:DOHaPC3l.net] backgroundWorkerにおいて、ある関数を実行していて その関数内である条件になった時にbackgroundWorkerを停止したいのですが 何か簡単な方法はないでしょうか? backgroundWorkerで無限ループで関数を実行していて、関数の中の関数でエラーが発生した時にbackgroundWorkerを緊急停止する様に プログラムが組みたいのです。
687 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 16:56:31.41 ID:ghluEyaB.net] >>671 今どうなるの? エラー出ると死んじゃう?
688 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 16:59:30.93 ID:Ul/CFAof.net] >>671 マイクロソフトの方針でできなくなってます
689 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:03:29.56 ID:ghluEyaB.net] 普通に無限ループ抜ければええんちゃうのん?
690 名前:デフォルトの名無しさん [2017/12/16(土) 17:05:51.65 ID:DOHaPC3l.net] backgroundWorker内でAという関数を無限ループ実行していて Aの中ではB、Cという関数が続けて実行されていて Bである条件(エラー)になった時、ここで全ての動きを停止したいです。 現在はエラーが発生してそのままBと処理が続いていって死にはしませんが意図しない動きをしている感じです 戻り値と条件分岐で場合分けしていけばいいのかなとも思いましたが関数が大量にあり複雑で何か簡単な手段はないものかとお聞きしてみました
691 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:06:41.02 ID:na0PR4/Y.net] >>671 https://dobon.net/vb/dotnet/programing/progressdialogbw.html CancelAsync()でだめな理由があるの? 関数の中でエラー検出できないとかじゃないよね
692 名前:デフォルトの名無しさん [2017/12/16(土) 17:13:01.57 ID:DOHaPC3l.net] >>676 キャンセルボタンは一応ついていまして Aの実行後にボタンが押されていればCancelAsync()を使っています AやBの関数中でもCancelAsync()と書いて一発で止められればいいのに…という感じです
693 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:14:42.73 ID:na0PR4/Y.net] >>675 通常のスレッドで実行するにしても考え方おかしいと思う 下流で発生したエラーを捕捉できない設計になっています、って言っているのと同じ C#の問題じゃないんじゃないかな
694 名前:デフォルトの名無しさん [2017/12/16(土) 17:19:57.99 ID:DOHaPC3l.net] >>678 そんな気もします…
695 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:31:29.65 ID:na0PR4/Y.net] >>679 同じような質問でTaskの場合 https://stackoverflow.com/questions/4359910/is-it-possible-to-abort-a-task-like-aborting-a-thread-thread-abort-method Henk Holtermanさんは「そういうことを(安全に)したいのならその部分を別アプリにしろ」と言っている
696 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:41:39.84 ID:qA7A9B95.net] >>680 それ、スレッドでタスクのようにキャンセルしたいって話だぞ。
697 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:48:31.95 ID:ghluEyaB.net] 普通にstaticのフラグ作って強引に無限ループ抜けちゃうのは?
698 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:50:37.53 ID:oGvDk6LW.net] >>677 まず「止める」って発想がおかしい。 各メソッドが「止まる」ように設計しなきゃ。 各メソッドの引数に処理がキャンセルされたかどうかを返すFunc<bool>を追加して void A(Func<bool> canceled) {...} 呼び出すときに A(() => backgroundWorker1.CancellationPending); とかすればいいんじゃないか
699 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:52:34.38 ID:qA7A9B95.net] >>675 Bでエラーが発生したら例外投げて、backgroundWorker.DoWork内のループでその例外を補足してe.Cancel=trueにするようにすれば。
700 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 17:58:55.94 ID:qA7A9B95.net] >>680 ごめん。 >>681 は全くの間違い。ぼけてた。 ただ、今回はワーカーメソッドの中から中断したいって話なので、外から強引に中断する話とは違う。
701 名前:デフォルトの名無しさん [2017/12/16(土) 18:12:53.74 ID:DOHaPC3l.net] >>683 () =>この書き方がよくわからないので とりあえず今のメソッドを全てvoidからboolに変え、エラー時にfalseを返して if(メソッド==true)の時だけその後の処理を実行する様にしてみます >>684 例外を投げるっていう方法がわかりません…調べてみます みなさん色々ありがとうございました
702 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 18:22:29.26 ID:cphXnYZp.net] >>668 何言ってんだこいつ?
703 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:04:01.72 ID:ghluEyaB.net] >>687 じゃあ俺が作った 「USBちんぽん」って 使ってくれる?
704 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:11:54.53 ID:FKHtpILn.net] >>688 うん、ほしい
705 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:14:12.13 ID:ghluEyaB.net] >>689 やったぜ 頭悪いんだねw
706 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:15:20.72 ID:FKHtpILn.net] >>690 はやくちょーだい?
707 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:18:34.13 ID:cphXnYZp.net] >>688 疲れてるのか? 日曜日は10時に寝るといいぞ
708 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 19:19:38.55 ID:ghluEyaB.net] >>692 お前は「USBちんぽん」使ってくれるの?
709 名前:デフォルトの名無しさん mailto:sage [2017/12/16(土) 21:53:57.13 ID:B4/eWtrI.net] >>691 https://dotup.org/uploda/dotup.org1414162.exe
710 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:36:39.71 ID:hpnS8mLh.net] Chartを2個置いているのですが、このフォームを最大化した際にこの比率のままChartをフォームに合わせてリサイズするにはどのように設定すればいいのでしょうか? Anchorを上下左右全てオンにした場合、自動的にリサイズした際に右側のChartが隠れてしまいます https://i.imgur.com/53dfVWo.jpg
711 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:40:47.18 ID:hpnS8mLh.net] >>695 補足です 直撮りで申し訳ないですが、1枚目が正常な場合です これを最大化した時もそのままにしたいのですがanchorを全部設定するだけだと2枚目のように手前側の設定が反映されて被ってしまいます https://i.imgur.com/ZQsJtG4.jpg https://i.imgur.com/lR2CXSU.jpg
712 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:41:46.33 ID:CSXOgBDh.net] >>695 わかる 俺も知りたい
713 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 01:50:14.52 ID:CSXOgBDh.net] でもanchorでは多分できないということもなんとなくわかる 比率を自分で計算して位置サイズ合わせするしかないんじゃないかと
714 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 02:03:32.25 ID:hpnS8mLh.net] >>698 どもです 検索ワード少し変えて探したらこんなのが出てきました https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/44b83f8c-7ac1-463f-9153-3d1a67197a8d?forum=csharpgeneralja 少しこの辺りの試そうと思います 回答通り、標準ではそういう機能無いみたいですね ありがとうございました
715 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:39:32.44 ID:hpnS8mLh.net] >>699 自己解決できました 今さっき使い方少し調べて試したら TableLayoutPanelで無事目的達成できました https://i.imgur.com/SkP2OHD.jpg
716 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:05:55.48 ID:4m+VWQn4.net] >>667 あえて書くけど 個人で小規模なアプリの場合はインターフェースなんて不要 商用大規模アプリでも使って
717 名前:ネいところが多いくらいw [] [ここ壊れてます]
718 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:08:11.46 ID:opp+Hz1N.net] >>701 なわけないでしょ
719 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:08:27.63 ID:4m+VWQn4.net] >>675 Task使え
720 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:12:30.50 ID:ILWlCk8x.net] >>701 これは恥ずかしい
721 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:49:56.01 ID:gfqG1JvG.net] 基底クラスとインターフェースって何が違うんですか?
722 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:55:53.21 ID:OwhBw4on.net] >>705 そこは基底じゃなくてabstractの抽象クラスじゃね 違いは実装の有無と多重継承かなあ?
723 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:27:27.54 ID:sFu7AEYs.net] >>701 大規模とかそういう問題じゃない あえて100Vコンセントにする仕様がないとインターフェースは役に立たない USBちんぽんを採用する理由がプロジェクトにないと意味がない
724 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:51:02.99 ID:RNTbc2+q.net] 意味の共有ができない喩えいいかげんやめたら
725 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 15:33:24.95 ID:sFu7AEYs.net] >>708 君が普段やってることじゃんw USBちんぽんの使用の押し付け やられて嫌ならやめるべきだねw
726 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 20:19:06.53 ID:6F/MtA/p.net] >>701 またテメエか 公害は死ねっていったろ
727 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 21:06:17.16 ID:8SWMSnGu.net] static な関数を複数のスレッドから利用するのは危険ですか? 具体的に言うと、データベースを読み書きするような処理です。 注意事項など教えて下さい。
728 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 21:44:44.79 ID:sFu7AEYs.net] >>711 トランザクションどうなってるの?
729 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 22:21:15.29 ID:qS3H4jkn.net] >>712 何もしてません。と言うかトランザクションってよく分かっていません。 どうすべきでしょうか?
730 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 22:22:18.95 ID:sFu7AEYs.net] >>713 いい機会なのでトランザクションについて調べてみるでFA
731 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 22:25:31.50 ID:ZCl426tV.net] なんがどうなれば危険なのかしらんが、そんなものはその関数の実装によるわ
732 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 22:27:39.83 ID:sFu7AEYs.net] >>713 序盤の入金出金の説明がわかり易かった itpro.nikkeibp.co.jp/article/COLUMN/20080123/291846/?ST=spleaf
733 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 09:06:05.17 ID:325qmzym.net] >>711 ef噛まして楽観的排他制御でfa
734 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 09:47:39.52 ID:BBY2VQE+.net] 排他制御なんて自分でやらなくてもDB側で勝手にやってくれるんじゃないのか?
735 名前:デフォルトの名無しさん [2017/12/18(月) 09:50:45.06 ID:/wskk4Cx.net] public static double keisuu(string mojiretu) { switch (mojiretu) { case "aaa": return 1.2; break; case "bbb": return 1.6; break; default: return 0; break; } } 全てのbreakのとこで到達できないコードが検出されました と出るのですが何がいけないのでしょうか
736 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 09:53:30.03 ID:I3I0Txu7.net] >>719 returnしたらbreakに到達出来ないからbreakは要らない
737 名前:デフォルトの名無しさん [2017/12/18(月) 09:58:58.14 ID:/wskk4Cx.net] ありがとうございます!
738 名前:デフォルトの名無しさん [2017/12/18(月) 10:05:08.96 ID:/wskk4Cx.net] break消してもフォールスル―とかにはなりませんよね?
739 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 10:19:47.17 ID:I3I0Txu7.net] なりません
740 名前:デフォルトの名無しさん [2017/12/18(月) 11:01:50.77 ID:/wskk4Cx.net] ありがとうございます!
741 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 20:04:12.41 ID:+/hEAeWc.net] >>718 楽観的に考えるとやってくれないが悲観的に考えるとやってくれる。
742 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 20:15:27.26 ID:pniu1iMQ.net] 上手いこと言ってる場合ですか
743 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:09:49.51 ID:ce0jsCws.net] >>711 状態を持っていない関数なら安全 フツーのstatic関数はこれなハズ immutableな状態を持つ関数も安全 mutableな状態を持つ関数ならそれを作った人を処刑すべきw
744 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:33:23.50 ID:6wmobrlb.net] それは甘い 例えばConsole.Writeは当然状態と持たないが、 何か適当な文字列(πでも聖書でも何でもいい)を少しずつ標準出力に 書き出すメソッドを2つのスレッドで実行したらどうなる
745 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:40:21.06 ID:+HXT0ym6.net] パソコンが爆発する
746 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:42:12.35 ID:YSeGcmGL.net] Consoleクラスってスレッドセーフじゃなかったっけ
747 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:54:40.33 ID:aYaUR9Gg.net] コンボボックスで中身を設定するときコードを書いてロード時に呼び出す方法以外に、visualstadioでコードを書かずに中身を設定するような機能はないのでしょうか? そういうコントロールなどないでしょうか?
748 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:56:53.79 ID:z1EessDi.net] >>731 画面編集モードのプロパティウィンドウから設定できるじゃん
749 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 21:57:37.55 ID:ce0jsCws.net] >>728 残念ながら「コンソール」と言う外部IOを持っているんだよ
750 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 22:15:16.76 ID:ce0jsCws.net] >>730 せやね
751 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 22:18:38.50 ID:aYaUR9Gg.net] >>732 助かりました感謝します
752 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 22:53:45.36 ID:kRxIzXOP.net] https://ideone.com/eFQ05c 上のようなjson形式があった場合にTestのcount,pageは問題なくデシリアライズできるのですがPersonのname,ageは下のように書いてみてもまったくできません var Test = JsonConvert.DeserializeObject<Test>(Json); foreach (var r in Test.status) { Console.WriteLine(r.name); } Json.netを使っているのですがどのようにしたらいいでしょうか?
753 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 23:11:52.12 ID:3CP1/jFn.net] >>736 beachside.hatenablog.com/entry/2016/08/30/190000 これ参考にJsonConverterを継承すりゃいいんじゃねーの?
754 名前:デフォルトの名無しさん [2017/12/18(月) 23:28:28.84 ID:pniu1iMQ.net] >>736 ワシの環境だとこれで成功したんだがどこがやりたいことと違うんやろう https://ideone.com/4MqfUE
755 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:49:42.79 ID:aZpIRKJe.net] >>737 その2 JsonConverterを使ってデシリアライズの10行目p.nameでnameが見えずエラーになります… >>738 デバックを行うと foreach (var r in Test.status { Console.WriteLine(r.name); } のrの部分がnullになり結果が何も表示されません cvrl + spaceでr.name自体は出るのですが…
756 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 00:53:59.81 ID:ySpyuYdG.net] >>739 変数名Testを違うのに変えてもダメですか?
757 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 01:03:43.75 ID:aZpIRKJe.net] >>740 deserializeに変えてみても駄目ですね とりあえず今日は寝て明日先輩にも聞いてみます
758 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 07:59:35.15 ID:ChgNtW7Q.net] c#にレクトトラッカーってないですか?
759 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:27:59.60 ID:JkA1xsmg.net] 非同期な複数のスレッドから、staticクラスの中のstreamwriterでcsvにログを書いてます タイミングにより、ファイル競合?ロック?するようで、一つのスレッドからしかログが出力されません ロック解除を待機するみたいなことはどうやるのでしょうか?
760 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:36:09.07 ID:ChgNtW7Q.net] >>743 俺、そういうログ一生懸命作ろうとしたらスレッド毎にログ出してよって言われたよ 結局待ちが発生すると ログの発生タイミングっていうか順序が全くの嘘っぱちになっちゃうじゃん そんなゴミいらねーって言われたぜ 上司がいるならちょっと仕様確認オススメ
761 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 08:44:00.33 ID:LhTNVyY+.net] Queue使えば
762 名前:よくね ログ出力メソッドはエンキューするだけ ログ出力はワーカスレッドでのんびりやればいい [] [ここ壊れてます]
763 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:13:04.87 ID:nH54/Jdj.net] 素直にLoggingライブラリ使う メンテナンスする人の気持ちも考えなきゃ
764 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:18:25.50 ID:yH1cU4+B.net] いつも思うけど、やっぱAutoRrsetとかのイベント付きキューなんてないの?
765 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 09:53:23.28 ID:33gf6qei.net] >>747 BlockingQueueのコンストラクタにConcurrentQueueを渡す
766 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 10:25:11.81 ID:OVvTmQOX.net] BlockingCollectionだな ちなみにコンストラクタに基になるコレクション渡さなかったら既定でConcurrentQueueが使われる
767 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 10:28:02.49 ID:gf33i/87.net] >>743 SeriLogの実装みてみ
768 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 10:32:13.69 ID:NMj9FFtI.net] やってみた感じぶっちゃけ難しい 片方のスレッドが超忙しいとき待ちが発生すると他のスレッドが全く動かなくなっちゃう
769 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 11:33:40.95 ID:Ck77l9Yv.net] もう書いてる人がいるけど、前後関係が重要なら文字通りバッファーを設けるだけだよね ライブラリのQueueは使いづらいからたぶん自作することになるけど、そんな難しくない
770 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 11:52:48.64 ID:VR9xxmjw.net] Nlogじゃないの?
771 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:08:45.23 ID:K2Dj0raT.net] C#特有というわけでは無いですが、例えば抽象クラス「費用」を作った後、費用合計を求めたい場合、費用の各サブクラスから値を取得し合算するのと「費用合計」クラスを作って、そこだけに問い合わせるの、どちらが良い作りでしょうか
772 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:10:26.76 ID:yH1cU4+B.net] >>748 >>749 へーそうかい!? 調査してみるよ。 ありがとうね
773 名前:741 mailto:sage [2017/12/19(火) 12:37:26.95 ID:JkA1xsmg.net] 順序は気にしません 2つのスレッドそれぞれから1回/秒ずつ出力されるだけです
774 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:43:08.19 ID:tMFeAU0g.net] >>754 サンプルコードを見せてよ
775 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:22:15.69 ID:Ck77l9Yv.net] >>754 何を聞きたいのかよく分からないw たぶん俺だけじゃないと思う とりあえず「費用合計」クラスは普通に考えればない 合計を求める費用を集約しているオブジェクトがあるなら、そのオブジェクトに 合計させる(LINQのSum使ってもいいし自分でメソッドかプロパティを書いてもいい)のが普通 そんなものなくても配列にでもぶち込んでLINQ使うだけじゃないの?
776 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:32:35.77 ID:f0pyN6AV.net] いやなかなかいい質問だと思うよ 初心者でそこに気付けるのはいい視点だと思う 素質がある 中級者でもそこに全然思いが至らない人がいて困る 素質のない人だ Sumを呼ぶとその時点で計算が行われるのことが困る場合がある 10個スレッドがあってそれぞれでSUM呼ばれて値が一致しないとか そのつどDB読んじゃって負荷がかかりすぎるとか
777 名前:デフォルトの名無しさん [2017/12/19(火) 14:44:56.70 ID:/RoT047O.net] >>754 費用クラスが合って費目毎にインスタンスを作るとか 費用合計クラスとか 何かを大きく勘違いしている
778 名前:デフォルトの名無しさん [2017/12/19(火) 14:45:53.04 ID:/RoT047O.net] 才能なし最下位確定じゃ
779 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:47:19.61 ID:RU/P54BS.net] 費用合計の仕様次第じゃん
780 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:53:12.54 ID:m20tEW6J.net] >>761 おまえ顔にハナクソ付いてんぞ
781 名前:デフォルトの名無しさん [2017/12/19(火) 14:55:25.58 ID:/RoT047O.net] ウンコ確定
782 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:57:42.73 ID:RU/P54BS.net] >>763 NG ハナクソに顔が付いてる可能性を除外できてない
783 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 14:57:48.67 ID:vDUVA/Ha.net] >>764 おじいちゃん口臭いですよ^^
784 名前:デフォルトの名無しさん [2017/12/19(火) 15:02:05.90 ID:/RoT047O.net] それケツだ
785 名前:デフォルトの名無しさん [2017/12/19(火) 15:58:21.40 ID:f0lLnGqp.net] ASP.NET MVCのControllerの処理で、そこだけでちょちょっと利用する 関数などが沢山増えて来てコードが数千行になって来たのだが、 そう言う関数はどこに置けばいいの? MVPクラスの人の回答をお願いします。
786 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 16:10:19.74 ID:RU/P54BS.net] partialだな(by一般兵)
787 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 16:37:05.61 ID:EJrHySC4.net] partialとかブッコイて一般兵気取りかよw 見習いもいいとこだぜ。入隊前じゃねぇの?
788 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 16:41:36.67 ID:0zOqWbHM.net] >>768 初心者スレにMVPクラスの人はいない regionとTODOで整理したらいいだけじゃね
789 名前:デフォルトの名無しさん [2017/12/19(火) 16:53:03.26 ID:8WX8gLVn.net] Controllerに何でも詰め込むからだろ Modelにやらせればええのだ
790 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 17:05:55.38 ID:RU/P54BS.net] >>770 代案を出せよMVP
791 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 17:48:31.52 ID:TOTUMgYQ.net] 俺が呼ばれた気がした
792 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 17:52:51.22 ID:VU3/qJii.net] 昔は相談室とこのスレにあの人が住んでたんだけどね 今もいるんだろうか?
793 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 18:37:30.91 ID:ayXhJHgO.net] >>768 決まった答えはない 責務に応じて分割するだけ
794 名前:デフォルトの名無しさん [2017/12/19(火) 18:40:59.36 ID:J+VWEpvK.net] 「決まった答えはない」とか言うの決まった答えしかできない奴よくいるよねw
795 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 18:53:48.71 ID:JM38580+.net] >>777 日本語www
796 名前:デフォルトの名無しさん [2017/12/19(火) 21:56:50.83 ID:cjNZWQaj.net] 費用合計クラスの者ですが、以下のようなクラス設計をしました(実装は一応英語です) public abstract class 費用 { public abstract int 金額(); } public class 支払家賃 : 費用 { public override int 金額() { return 100; } } class 水道光熱費 : 費用 { public override int 金額() { return 200; } } 費目が増えても多態で対応できるのでオブジェクト指向しているなと思ったのですが 費用合計を出すのに都度インスタンスを作るのがなんだか野暮ったく 一般的なやり方をしているのか気になり投稿しました このような書き方は、何か問題があるでしょうか?
797 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:01:25.18 ID:vSkEKb16.net] データベース使いなさい
798 名前:752 [2017/12/19(火) 22:02:23.97 ID:cjNZWQaj.net] ちなみに、費用クラスで各費目を管理し 費用合計や各費目の値を返すメソッドを作ろうと思ったのですが 抽象クラスに「費目」という名前を使ってしまったので テンパっています OOは命名が難しいなと
799 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:05:19.18 ID:N/VqY3nf.net] ありがちな形にこだわるタイプか 継承しなきゃならないほど金額()が込みいっているのかは置いておいて「動けばいいんだよ」
800 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:06:13.10 ID:MJol/7NU.net] 全体見てないからなんとも言えんけど その粒度でクラス作るとクラス図ってどうなるの? 2000項目あったら2000クラス作るの? って心配になった あとは動けばいいよ
801 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:12:15.71 ID:7vxZYYFe.net] >>781 だから悪いけど結局何が聞きたいのか伝わってないと思うよw public static class 費用 { public const int 支払家賃 = 100; public const int 水道光熱費 = 200; public const int 総費用 = 支払家賃 + 水道光熱費 ; } なんかこれで問題ないようにも聞こえるけどこれじゃダメなの?
802 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:12:45.55 ID:XIiNWcV9.net] >>779 才能無し、問題外 以上
803 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:13:51.01 ID:ySpyuYdG.net] >>785 クッサw 死ねよハゲ^^
804 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:15:56.11 ID:XIiNWcV9.net] >>786 センスの欠片もない キミにプログラム開発は無理
805 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:17:09.67 ID:ySpyuYdG.net] >>787 口臭いです^^ 歯磨きサボらないで下さい・・・
806 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:20:34.71 ID:XIiNWcV9.net] >>788 ここまで酷いのは見たことがない 誰かが適切なアドバイスをしたとしてもキミは斜め45度下へぶっとぶだろう 上ではなく下だwww
807 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:21:50.93 ID:Li3fAhD+.net] どうやったらこんなつまんないレスを返せるんだよ... 重症やな w
808 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:24:47.20 ID:ySpyuYdG.net] >>789 顔赤くなってますよ^^ もっとクールなキャラだったような気がします・・・
809 名前:デフォルトの名無しさん [2017/12/19(火) 22:29:22.36 ID:f0lLnGqp.net] MVPクラスの人は居ますか?
810 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:30:42.82 ID:MJol/7NU.net] >>792 >>779 をエントリーしといた
811 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:30:56.03 ID:XIiNWcV9.net] >>791 余りにも寒いコードを見たものでなw
812 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:32:05.29 ID:7vxZYYFe.net] VIP患者なら大勢いるねw
813 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:35:08.57 ID:ySpyuYdG.net] >>794 誰と勘違いしているのでしょう・・・ IDはちゃんとチェックしましょうね^^
814 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:38:19.96 ID:XIiNWcV9.net] >>796 >>779 の同類だろwww
815 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:41:32.93 ID:ySpyuYdG.net] >>797 おやおや・・・ とても都合の良い解釈ですね^^ 右も左も分からない初心者に「センス無し、問題外」なんて冷たい言葉をかけるのはやめましょうね・・・
816 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 22:50:03.39 ID:z/JS3u8x.net] まあ、自分が駆け出しの頃に上司にそう言われたことの腹いせにここで鬱憤晴らしてるんだろうなぁ....
817 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 23:01:26.33 ID:MJol/7NU.net] 別にどう組んでも動くし 正解はないのかもな ただ、この言語で表現できる中規模のまとまりをそんなプロパティレベルのもんに使われると粒度の把握がし難いなと 結局設計の良し悪しなんてソイツの気分だからね
818 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 23:48:04.54 ID:QDUgEa5j.net] 例が例だから粒度的におかしいけどこんなこともできますよ的な… Addで費用つっこんで使える Removeとか全部略 public class 費用リスト { long sum = 0; public long 合計 => sum; List<費用> list = new List<費用>(); public ReadOnlyCollection<費用> 品目 { get;} public 費用リスト() { 品目 = new ReadOnlyCollection<費用>(list); } public void Add(費用 hiyo) { if (hiyo == null) { return; } sum += hiyo.金額; list.Add(hiyo); } }
819 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:00:42.82 ID:+SxGwy2+.net] わざわざ費目をクラスで分けている理由のことじゃないの? >>801 だけなら別に必要ないかと。
820 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 05:02:03.39 ID:/+M3aR4Y.net] >>779 例として固定値を返していると仮定 金額が費用の状態によって複雑になるなら有な考え方だと思う
821 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 05:27:10.69 ID:uEdWuAdp.net] ねーな 業務上3000とか4000とか値扱ってる奴のが多いだろ こういう組み方見るだけでうげっとする じゃあ、構造を把握するためにクラス図でも見てみよーかって 資料開いた瞬間閉じるわ
822 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 06:24:16.03 ID:w7lpXa1y.net] プログラムセンスのあるヤツなら最初からやらない間違いで 残念ながら矯正不能なんだわ
823 名前:752 mailto:sage [2017/12/20(水) 07:08:03.81 ID:FojWkfgf.net] 費目が8個なのでサブクラスに各費目クラスを作ったのですが。。。 サブクラスは何個くらいが適当なのでしょうか 10個超えるとアウトでしょうか
824 名前:752 mailto:sage [2017/12/20(水) 07:15:48.78 ID:FojWkfgf.net] ちなみに費目をクラスで分けた理由は、費目ご
825 名前:とにちょっと込み入った算出処理をするので、それぞれを閉じ込めておきたいと思いました でも、費用が最小の粒度の方が一般的な雰囲気ですね 急遽プログラムをやれと言われた人間なのでセンスとか言われると厳しいです [] [ここ壊れてます]
826 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 07:35:47.88 ID:+xQghQuB.net] >>807 ならサブクラスでいいよ ここの連中は単純な家計簿みたいなツールを前提に話してる そうじゃなく対象が複雑なら話は変わる
827 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 07:42:10.14 ID:uEdWuAdp.net] >>808 変わるかなぁ? 日○とか三○でもそんなの見たことないよ ちなみにそこだと項目数が10万とか超えちゃってるかんね それ全部クラス作ったらw
828 名前:752 mailto:sage [2017/12/20(水) 07:53:51.41 ID:JgbCLwPB.net] >>808 クラス分けしても悪くはないですか ありがとうございます ただ、費用の抽象クラスを費用クラスにしてメソッドを各費目算出とすると、メソッドに「費用合計算出」を作っても違和感が無いかなとも思い プログラムは難しいとしみじみ思いました
829 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 07:59:44.59 ID:+xQghQuB.net] >>809 対象としてるドメインが違うだろ 呆れるわ
830 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:14:04.00 ID:XFxcCwxD.net] 業務アプリの設計なんかDFD描いてトランザクションスクリプトでいいよ 開発者全員が相当慣れてない限り、まともなオブジェクト指向でスケールさせるのは現実的に無理
831 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:17:09.42 ID:dzFn8RAE.net] 費目の数が10万!? ないわー w
832 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:20:29.69 ID:dzFn8RAE.net] >>810 > ただ、費用の抽象クラスを費用クラスにしてメソッドを各費目算出とすると、メソッドに「費用合計算出」を作っても違和感が無いかなとも思い 個々の費目で合計なんて求めようがないと思うが... 合計の算出は費目を束ねるクラスでやるべき話じゃね?
833 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:23:01.94 ID:TnQp+4qQ.net] それ以前に、費用の集計なんかSQLでいいよ
834 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:44:12.56 ID:uEdWuAdp.net] >>813 余裕っしょ 設定数100個の部品が100個あっただけでもう一万よ でかい機械で部品数たった100個とかありえないから10万は確実に超える もっとあるだろうなぁ
835 名前:デフォルトの名無しさん [2017/12/20(水) 08:44:55.30 ID:apLR0/3w.net] >>807 にわかプログラマーならオブジェクト指向に拘るより もっと単純な仕組みでやったほうが良いね 目的がオブジェクト指向になって簡単なものを複雑にしてる気がする
836 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 09:24:55.44 ID:CxRyWMoc.net] 急遽プログラムやれと言われてこれだけオブジェクト指向理解したならすごいな
837 名前:デフォルトの名無しさん [2017/12/20(水) 09:30:51.88 ID:apLR0/3w.net] 費目毎のクラス分けは目眩がするけど
838 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 09:30:52.50 ID:gjQwmCKz.net] >>806 ケースバイケース
839 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 09:33:53.14 ID:gjQwmCKz.net] >>810 非常にセンスが良い 自信持って良い 注意点はおかしな現場(こっちの方が多数派だったりするがw)へ行った時に絶望しないことかな
840 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:12:49.94 ID:IdA1DVd/.net] 授業でC言語ちょっとやっただけでオブジェクト思考はちっとも理解してないから>>779 がそんなに悪いのかわからない 費用ってクラスを使って家賃、光熱費のインスタンスを作るようにしたらいいのか?
841 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:28:45.17 ID:GdnGy9ZB.net] >>801 sum += hiyo.金額; エラー CS0019 演算子 '+=' を 'long' と 'メソッド グループ' 型のオペランドに適用することはできません と出るのですが、正解を教えて下さい。
842 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:30:50.20 ID:irahYJNV.net] 元の奴が金額がメソッドになってるけど それはプロパティになってる というか金額をメソッドにしちゃだめ 元のコードがダメ
843 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:36:11.97 ID:GdnGy9ZB.net] >>824 このエラーが出ている行を エラーが出ないように修正する方法を教えて下さい。
844 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:38:08.67 ID:irahYJNV.net] >>779 の
845 名前:@金額をメソッドからプロパティに書き直す [] [ここ壊れてます]
846 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:44:45.87 ID:N4PPX6u2.net] どーせ()忘れ
847 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:47:18.91 ID:GdnGy9ZB.net] >>826 >>827 文章で説明して頂いても理解出来ないので 完全版のコードを掲載して頂けると有難いです。
848 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:50:33.77 ID:irahYJNV.net] プロパティが自分で書けないならここからコード書いてても無駄だよ 早く勉強しろよ
849 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 10:53:01.07 ID:hctoYabD.net] >>828 hiyo.金額()
850 名前:デフォルトの名無しさん [2017/12/20(水) 11:01:57.32 ID:GdnGy9ZB.net] >>830 ありがとうございました。
851 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:04:38.98 ID:irahYJNV.net] 煽りでも何でもなく プロパティが自分で書けないならここからコード書いてても無駄だよ
852 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:11:07.65 ID:hctoYabD.net] あ、そすか。
853 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:19:04.73 ID:fz4ulcZ2.net] >>824 金額をメソッドにしちゃダメな理由を3行で
854 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:44:22.53 ID:EHvPlft0.net] まあ普通に考えればメソッドなら金額計算みたいに動詞的にしろよとは思うな 日本語メンバ名だと曖昧だけど
855 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:48:55.09 ID:884JsNpl.net] まだやっていたんだ、簡単なことを難しくするバカのお手本
856 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:50:57.09 ID:Wpgvy9KL.net] そうですか^^
857 名前:デフォルトの名無しさん [2017/12/20(水) 11:55:45.07 ID:yB/d6H1Y.net] >>836 同意する
858 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 11:57:47.91 ID:uig5CTB+.net] 初心者に説教するアホ多過ぎ 弱いものイジメはイクナイ(´・ω・`)
859 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:04:02.26 ID:Cxfy3ZNg.net] >>754 の人はたぶんネタなんだろうね。 結局何が聞きたいのか明確にしろって言っても答えないし ネタのつもりなら何が面白いのかさっぱり分からんが こんな曖昧な質問に曖昧なまま答える奴も頭どうかしてると思うけど
860 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:05:42.91 ID:MbxWSbMs.net] マジでネタと思ってる奴って頭どうにかしてるよね
861 名前:752 mailto:sage [2017/12/20(水) 12:15:20.79 ID:qNzSCdz1.net] >>840 費用のようなものを費目単位でクラス化したのですが、一般的にはどうなのでしょうかと質問したつもりですが、意図が伝わらなかったみたいですみません 結論としては、費用をクラスとし、費目メソッドを数分作る方が一般的なのかなという結論に辿り着きました 色々と参考になりました
862 名前:752 mailto:sage [2017/12/20(水) 12:20:38.93 ID:qNzSCdz1.net] >>840 モデリングの対象次第で答えが変わるもの、答えようが無いということなのでしょうね 最近やっと覚えた抽象クラスを使いたかっただけかもと言われたらそうかも知れません 反省しています
863 名前:752 mailto:sage [2017/12/20(水) 12:41:55.46 ID:qNzSCdz1.net] 最後にすみません。ある条件で作業時間×レートが費用になるので、費用クラスと作業時間クラスを費用算出メソッドを持つインターフェースで継承させようと思うのですが、インターフェース名が「費用算出」はセンスが無いでしょうか? インターフェースを使えばコードが仕様を語ってくれるのではと期待しているのですが基本情報資格も持っていない自分にはこれで良いのか解らず 実務経験豊富な諸兄にお尋ねしたい次第です
864 名前:デフォルトの名無しさん [2017/12/20(水) 12:45:22.87 ID:yB/d6H1Y.net] レートクラスは無いのん?
865 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:49:20.00 ID:dzFn8RAE.net] >>816 お前は費目の意味わかってないだろ... 部品一個一個に異なる費目がつくんじゃねーぞ w クラスとインスタンスの違いも理解してないと見た
866 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:51:34.80 ID:dzFn8RAE.net] >>839 てか、説教してるつもりの奴の方がレベル低いし w
867 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:53:14.86 ID:dzFn8RAE.net] >>844 俺は算出って用語をあまり見ないから少し違和感あるけどまあそれで違和感ないならいいんじゃね
868 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:49:49.11 ID:bqoc1RuE.net] >>846 違うよ こんな細かい項目クラスにしちゃって全体の粒度はどうなるの?って話
869 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:51:39.57 ID:bqoc1RuE.net] やっぱり設計のときにクラス図書かせるべきだな あまりにも小さい項目いちいちクラスで構えるつもりならそれも全部 クラス図として書いてもらおう
870 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 17:45:30.12 ID:dzFn8RAE.net] >>849 だから費目が10万とかはあり得んだろって話 うちの会社はそこそこの規模で結構色々手掛けてるけどそれでも経理関係の費目コードは50ぐらいしかない 当然大分類、中分類、小分類と階層化されてるからそれに合わせて継承させればいい まあうちの会社の情シスはそこまでやってなくて費目コードを見て分岐してそうだけど w
871 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 17:53:32.28 ID:kZMVhJ0h.net] >>851 じゃそれでもいいけど それだけで50個クラスできるんでしょ? クラス図どうなるの?クラス50個作るん? って言いたいわけよ 結局設計ってさ わかりやすいか わかりにくいか だけなんだよね 上下のわからんクラスって粒度を そんなちっぽけなもんに使うと 全体が見えなくなっちゃうんだよ 費目は少なくてってそれお前の環境がそうってだけの偶然でしょ? この方針はオススメできないね俺は まあ、どう組んでも動けばよいのであくまでオススメの域
872 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 17:57:31.91 ID:0mbmAU0+.net] 50個のクラスができるものをクラス使わずにごちゃ混ぜにしたら余計にわけわからんだろ こういう話題で数が増えたらどうするの?って反論するやつが必ず現れるけどそれ墓穴掘ってるだけだぞ
873 名前:752 mailto:sage [2017/12/20(水) 18:12:27.89 ID:PXZlLTCM.net] >>845 レートクラスは必要かも知れないですね まだまだ考慮不足でした
874 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 18:25:24.19 ID:AIjICjtT.net] データが構造を持ってしまうと、別の使い方をする時に手間が増えるだけなんだよ データはデータでクラスにする必要なんかまったく無い
875 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 18:31:13.93 ID:dzFn8RAE.net] >>852 > クラス図どうなるの?クラス50個作るん? 必要なら作るだけだろ > 上下のわからんクラスって粒度を > そんなちっぽけなもんに使うと > 全体が見えなくなっちゃうんだよ それお前さんの管理能力の問題... > 費目は少なくてってそれお前の環境がそうってだけの偶然でしょ? 世の中の会計ソフトとか見てみな もしくは自分の会社の経理担当者に聞けばわかると思うよ > この方針はオススメできないね俺は 別にお前もそうしろなんて言ってないから勝手にやってなよ
876 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 18:47:00.16 ID:n3mgdNKt.net] >>855 別の使い方する時点で分析設計ミス
877 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 18:56:33.13 ID:R/x04Nlq.net] >>856 残念ながら、世の中の会計ソフトなんかほぼ100%トランザクションスクリプトだよ
878 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:01:31.53 ID:6oreCn9e.net] >>853 好きなようにすればいいよ ただ、お前のクラス図に50個のクラスが並ぶだけ
879 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:08:20.84 ID:dzFn8RAE.net] >>858 なんの話をしてるんだよ w
880 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:13:04.16 ID:w7lpXa1y.net] 費目、時間単価、時間がそれぞれ独立したクラスか めまいを禁じ得ない
881 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:35:42.09 ID:n3mgdNKt.net] それらが同じクラスに混在する方が目眩するわ
882 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:59:30.76 ID:+lUILV8P.net] で、最終顧客がのぞむ要求に答えられるアプリケーションなのかと
883 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 20:00:24.04 ID:1pJRigF6.net] 全体を把握しないと作業に取り掛かれないなら 既にクラス設計として破綻してるとしか
884 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 20:45:21.17 ID:QInM5P3Y.net] 結局要件があいまいだから何とも言えんけど普通に考えれば費目ごとに派生するのはないね。 せっかくC#にはデリゲートがあるんだから、費目で違う処理はコンストラクタで デリゲート食わせて対応できるし、その上でプロトタイプパターン適用した方が分かりやすいと思うよ。 もちろん費目ごとの固有の処理が費目固有のプロパティに依存するような場合は
885 名前:継承を使うしかないけどね [] [ここ壊れてます]
886 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:00:51.80 ID:D80mgGFK.net] 費目はクラスじゃなくてデータにするべきものでは在るが、初心者が「そう言われたから」って理由でやるより 何故そうなのかを理解してやるのは悪いことじゃない 自分で考える人を挫くスタイルはあまり感心しないな
887 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:05:35.30 ID:n3mgdNKt.net] 種類によって振る舞いが違うって要件なのにデータで扱うとか呆れるわ どんだけswitchする気だよ
888 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:15:55.31 ID:dxH3+214.net] > 自分で考える人を挫くスタイルはあまり感心しないな マウントしたいだけやろ 今回は質問者の方がレベル高いからアホみたいなことになってるけど w
889 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:16:44.49 ID:R/x04Nlq.net] >>867 アホ 全く別のデータ項目をどうやったら混同できるんだ
890 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:22:03.45 ID:n3mgdNKt.net] >>869 全く別のものを混同して同じデータ構造でごちゃ混ぜに扱おうとしてるのがデータフロー派だぞ 俺や質問者は異なる物は異なるクラスにしろっていうオブジェクト指向派な むしろ真逆だわ
891 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:33:44.71 ID:6oreCn9e.net] >>870 何でこんなくだらないものいちいちクラスにするんだ クラス図書かないからこんな蜘蛛の巣みたいなクラス図作って平気な面してんだろお前
892 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:35:40.32 ID:R/x04Nlq.net] >>870 混ぜて使いたいからクラスにするんだと思ってたんだが違うのか? 全く別物として区別して扱うんなら行全体を1クラスにして複数のフィールドで持つのと大差ないと思うけど?
893 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 21:49:04.68 ID:ie4nb91k.net] 費用と言っても材料費、人件費、、減価償却費、貸倒引当金など性格や扱いの異なるものを同じ基底から派生させるのはどだい無理がある 集計したいだけなら金額を取得するインターフェイスを実装する方が賢い
894 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:10:01.13 ID:n3mgdNKt.net] >>871 アホほど条件分岐書いて平気な顔してるやつに言われたくない きみさクラス図どころかオブジェクト指向すらしたことないだろ? >>872 同じ規約で異なるものを集めるのと 異なるものをただひとつのものとするのと 全く違うことだ 混ぜるという言葉の使い方を見極めろ
895 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:10:03.47 ID:WriG98aZ.net] List〈string[]〉の型をstring[]の特定の列をキーにしてソートしたいんですけど List.Sort(x => x[1]); のような書き方はできないのでしょうか? List〈class〉を用意するしかないのでしょうか?多分Listの中の配列にもLINQ使えそうなんですが・・・ テストで試しに動かしたいだけなのにわざわざclassを書くのが大変なので・・・
896 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:18:17.41 ID:gjQwmCKz.net] >>875 Sortは過去の遺物 OrderBy使っときなさい
897 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:26:57.08 ID:6oreCn9e.net] >>874 でもさ クラス図書いたら君のはこんなくだらない処理でクラスが50個も並んでるんだぜ どの辺がいいプログラムなの? 他のも合わせれば5-600は行くんじゃない? 正しいクラス図なんて一度も書いたことないっしょ? おそらく資料見てもこのクラスは記述があるけどこのクラスは記述がないなぁ ってもんを平気で作っちゃうでしょ?
898 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:31:22.52 ID:n3mgdNKt.net] >>877 そのドメインがそういうものなら何百クラスだろうがクラスで書くのが正しい それがそのドメインでは最も簡潔で正しい姿なんだよ そこを曲げてデータ区分や条件分岐で雑なコードを書いたら クラス数は増えないかもしれないがコードの複雑度が爆発的に高まるだけ なぜなら数百クラスが個々に持つべき振る舞いが同じクラスに区別なく同居してしまうんだぜ? ろくなことにならないよ
899 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:32:30.67 ID:WriG98aZ.net] >>876 OrderByも試したんですがこのラム
900 名前:_式だと意図した動作にならないです とりあえずList〈class〉で素直に書いてみますが、ラムダ式のキーに配列やListのインデックス指定して使うのは無理なんでしょうか? [] [ここ壊れてます]
901 名前:デフォルトの名無しさん [2017/12/20(水) 22:33:13.38 ID:GdnGy9ZB.net] >>875 >型をstring[]の特定の列をキーにしてソートしたいん ってどういう事ですか? 型をソートするの意味が分かりません。 初心者なので詳しく教えて下さい。
902 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:35:03.12 ID:QInM5P3Y.net] 意図した動作にならないのをバグっていうんだと思いますw
903 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:36:47.64 ID:6oreCn9e.net] >>878 そもそも設計書で四角で囲って強調すべき単位なの?費目って オブジェクト指向も自分解釈でおおよそ一般人がオブジェクトなんてしない単位でオブジェクトを作ってるよね?
904 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:40:38.82 ID:D80mgGFK.net] >>878 結局DBに入れて永続化しなくちゃいかんわけで、その用途考えると数百のクラスとかありえんのさ EFで扱える範囲で物を考えたほうが良いよ
905 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:42:06.35 ID:WriG98aZ.net] >>880 ちょっと説明不足してたので補足 List〈string[]〉 { {"1", "aa", "1個目"}, {"2", "bbb", "2個目"}, {"3", "abc", "3個目"}, {"4", "dddd", "4個目"} } の形があった場合、string[1]のところを基準にソートさせたいってことですね public class test { public string id{get; set;} public string text{get; set;} public string discription{get; set;} } みたいな形式だった場合 list.OrderBy(x => x.text); と同じ動作にしたいということです
906 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:54:00.94 ID:QInM5P3Y.net] >>884 そこが分からない人はいないと思うよw 逆に何が難しいの list.OrderBy(x => Integer.Parse(x[0])); とか、 list.Sort((x, y) => Integer.Parse(x[0]) - IntegerParse(y[0])); ではダメなんですか?
907 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:55:43.46 ID:QInM5P3Y.net] あ、やってもーたw IntegerじゃなくてInt32ね
908 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 22:59:37.49 ID:WriG98aZ.net] >>885 classでも試してだめでした それで動かなかったので質問したのですが、classもソートされなかったのでデータ側の問題かもです さっきのダミーデータでちゃんと挙動するか試します
909 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:03:12.47 ID:n3mgdNKt.net] >>882 質問者のドメインでは書くべきものだよ 振る舞いが異なる別のものだからね それが数百種類でそれぞれ異なるような複雑なドメインなら書くんだよ 無理やり1つのレコードに押し付けちゃダメ 逆にドメインそのものがシンプルで1つのクラスで表現すべきならそうする きみのおかしな点は質問者のドメインを無視してきみの頭の中にあるシンプルなドメインを前提に話を進めようとするところだな 独りよがりってこと >>883 実装はどうとでもなる RDBにこだわる必要もない
910 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:06:38.88 ID:QInM5P3Y.net] >>887 classってのが何のことかよくわからないけど、OrderByの方使ってる? LINQのメソッドはコレクションをのものを並び替えるのではなくて 並び替えた列挙オブジェクトを返すんだけど、そこを誤解してるなんてオチではなくて?
911 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:17:47.14 ID:dFGD4M7x.net] >>887 https://ideone.com/5Vgtw7 できたよ
912 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:21:21.55 ID:lugKio2h.net] 書き方がわかりませんということだから並び替え方法とは違うように読めたけどな list = list.OrderBy(x => x[1]).ToList(); もしくは list.Sort((x, y) => x[1].CompareTo(y[1])); とかだろ OrderByはシーケンスが返ってくるからListにしたい場合はToListが要る Sortは直接並び替えてるので前の状態も欲しい場合は事前にコピーしておくかな
913 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:23:23.48 ID:WriG98aZ.net] >>890 ありがとうございます var a = 〜 って感じで受け取っててVSで中身無いけどどうなってるの?? IOrderedEnumerabel〈〜〉型ってなんだ?ってなってましたけどforeachに直接入れないとダメなんですね 使い方間違えてました >>889 これでした、すいません
914 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:26:14.46 ID:WriG98aZ.net] >>891 あぁToList()を忘れてました あやふやな記憶で使っててToList()使うって教わったのにすっかり忘れてました 型の返り方の説明見て、正しい扱い方覚えないといけないですねすいません ICollectionみたいなやつとか、抽象化されてるからToListでListに明示的に変換しないとあかんやつでした
915 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:29:58.52 ID:Xe3ly/H6.net] >>892 てかその構造のデータをstring[]で扱わなきゃいけない理由が何かあんの?
916 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:31:09.24 ID:Xe3ly/H6.net] あ、ごめん書いてたね
917 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:35:13.47 ID:WriG98aZ.net] >>894 試しにデータ群扱う時にclass宣言したり、大量のデータを型分けするのがめんどいからこういう扱い方できると楽ってだけですね この使い方ならcsv形式にsplitでListぶち込むだけでやれるので宣言項目少なくてテストするなら楽ってだけです DBから持って来るときは文字列型じゃなければToStringかけたりとかありそうですが 最近はEF使ってるので楽ですけどね
918 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:38:15.25 ID:nn3v7K50.net] Kotlin では、ある列の値で、レコードをソートするのは以下。 年齢・名前でソートする https://mevius.5ch.net/test/read.cgi/tech/1509462463/18
919 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:44:31.66 ID:Xe3ly/H6.net] >>896 Visual Studioならjsonからクラスを自動生成できるからクラスの方が扱いやすいけどね。stringとHashtableまみれのコードとか絶対メンテできない…
920 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 23:49:35.45 ID:WriG98aZ.net] >>898 こんな機能あるんですね! interfaceのメソッド自動実装ぐらいしか知らなかったのでこういうの積極的に使いたいです
921 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:47:58.94 ID:HdSqx1Ax.net] yossk.hatenablog.com/entry/2015/02/23/070546 ここの「4-3散在する情報」のサンプルコード 川俣晶の本からのコピーなんだけど Runメソッド内で値設定したあと CalcDistメソッド先頭で値をリセットしてるから 常に計算結果0になるように見えるんだけど なんか俺読み間違えてる?
922 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 00:54:31.04 ID:h7wsiOnr.net] たしかに
923 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 03:28:09.32 ID:3KOuKcBo.net] >>888 はぁ?人件費がクラスに? センス悪いじゃん
924 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 05:44:12.11 ID:/dR3YALD.net] >>902 人件費と光熱費が異なる振る舞いをするなら別のクラスにするのが正しい センスの問題じゃない常識の問題
925 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 06:04:58.06 ID:gZ1XcqWP.net] >>903 はぁ? どう組んでも動きますが?
926 名前:デフォルトの名無しさん [2017/12/21(木) 06:50:24.48 ID:/eYbpg/S.net] オブジェクト指向は物事を複雑にするためにあるモノじゃ無いぞ。 オブジェクト指向を目的にしてどうするwww
927 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 06:50:56.44 ID:c0/BZHI9.net] 動く動かないとセンスの有無は別の話 理解力無さすぎだろ w
928 名前:デフォルトの名無しさん [2017/12/21(木) 06:56:56.39 ID:/eYbpg/S.net] どの世界でも原理主義者は物事を複雑にするw
929 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 06:57:03.08 ID:gZ1XcqWP.net] >>906 正しいとかおかしいよな どう組んでも動くし
930 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 07:00:31.05 ID:gZ1XcqWP.net] クラス図書かないやつは客観的に自分の設計を見ることができない だからこんなプロパティ単位のものクラスにして クラス図を蜘蛛の巣にしちゃっても それを汚いと反省する機会がない ただし、どう組んでも動くのであくまで俺の持論
931 名前:752 mailto:sage [2017/12/21(木) 07:13:38.51 ID:RBSPw/d+.net] 費用クラスの者ですが、色々なアドバイスありがとうございます 参考になります >>904 どう組んでも動くの精神で、前任のパートさんが凄いの組んでくれたので、オブジェクト指向を意識し始めました クラスどころかイベントリスナーのメソッドというのでしょうか? そこから共通関数すらなく処理されているので、なんとかしたかったのです ドメイン層とアプリ層とインフラ層が渾然一体となっていると、どう手を付けて良いのやら
932 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 07:25:44.67 ID:Mqu0aN7Q.net] 必要最低限だけ修正しろ コードのきれいさは主観 他人のコードはすべて糞コード
933 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 07:27:47.47 ID:gZ1XcqWP.net] >>910 お前のはプロパティ単位もクラスになってるからさらにカオスだな 初見で見た人間がそのたくさんあるクラスの依存関係がわかるといいな
934 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 07:42:54.80 ID:iiESRPBo.net] と、プロパティ単位とか意味不明のことをつぶやいており当局は措置入院の必要性があると判断している模様です
935 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 07:56:29.75 ID:h7wsiOnr.net] >>910 おまえ本当に未経験者かよwww
936 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:08:25.86 ID:gZ1XcqWP.net] 残念なのはおそらくこいつはコードレビューとかしたことないね クラス図と基本設計書との不一致とか設計書のレビューもやったことない このレベルでクラス図なんて書いたらごちゃごちゃしてなんだかわからないだろ 見難いよって誰からも指摘されたことないから当然伸びない 修正が聞かないまま今に至る
937 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:09:15.38 ID:gYUruymP.net] (キリッ
938 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:17:58.61 ID:81J6Ca8t.net] 新参だがここで聞くのは無駄だってことは分かった
939 名前:デフォルトの名無しさん [2017/12/21(木) 08:37:19.47 ID:VQD1Tiju.net] >>910 え〜、今更オブジェクト指向なの? c#はマルチパラダイム言語なのに
940 名前:デフォルトの名無しさん [2017/12/21(木) 08:40:09.55 ID:VQD1Tiju.net] >>917 ちゃんとした質問ならまともな答えが帰って来る。 トンデモ質問はスルーされるかネタにされて遊ばれるw
941 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 08:54:24.69 ID:upKQQwHx.net] 最近クラス図キチガイが湧いてるな
942 名前:デフォルトの名無しさん [2017/12/21(木) 09:04:04.27 ID:VQD1Tiju.net] >>914 素人だろうね。 ギョーミーなアプリ開発の経験者に費目毎のクラス化なんて発想はない。 社内のパソコンマニアに白羽の矢が立っただけ。
943 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 10:15:36.99 ID:VXvVb2gy.net] >>921 俺が言ったのは本当にプログラミング初体験なのかよってことな。
944 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 10:19:43.29 ID:iwfbZ4kw.net] javaの匂いが消えない
945 名前:デフォルトの名無しさん [2017/12/21(木) 10:33:22.61 ID:VQD1Tiju.net] >>922 大学出てりゃプログラミング初体験なんてことは無いだろうな。 プログラミング教育義務化なのでプログラミング初体験者ゼロの世の中になるw
946 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 10:41:24.50 ID:VXvVb2gy.net] >>807 >急遽プログラムをやれと言われた人間なのでセンスとか言われると厳しいです
947 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 12:03:45.23 ID:Q/EvmKMe.net] >>910 昨日も書いた((>>865 )けど、費目ごとに派生クラス作れ、なんて話は真に受けない方がいいと思うよw 処理の委譲はデリゲートでもできる。
948 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 12:50:57.69 ID:iiESRPBo.net] >>920 自称上級者なんだろ 今度はデリゲートとか言い出しちゃってるし 自分の知ってる単語ならべてるって感じ w
949 名前:752 mailto:sage [2017/12/21(木) 12:55:56.30 ID:Bs03k3IZ.net] >>925 急遽と言っても半年以上OJTの形で作っているので、変数、関数、クラスが何なのか程度は理解しています で、費用と費目は抽象クラスを使うのに絶好の課題ではと初めて使ってみて、世間様ではどう思われるか聞いてみたら、そんな関係には使わないと指摘された次第です
950 名前:752 mailto:sage [2017/12/21(木) 13:00:11.33 ID:Bs03k3IZ.net] ズブの素人でも手続き型プログラムを一ヶ月で作れるようになったのは、visual studioの支援とC#の解りやすさのおかげだと感謝してます ゆえに急遽突っ込まれたのかも知りませんが
951 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 13:29:10.16 ID:WNlCIVzg.net] >>928 結局ね、データってのはDBに保存したり手で入力したりするものなので データごとにクラスが変わったりすると破綻するんですよ クラス分けは集計には便利かもしれんが、全ての工程でどうなるか考えて設計しないとね
952 名前:デフォルトの名無しさん [2017/12/21(木) 13:38:55.98 ID:xinkvf3y.net] >>929 ズブの素人が1ヶ月でc#をそれなりにマスターするなんて凄いわ。 オレは無理だ (ーー;)
953 名前:752 mailto:sage [2017/12/21(木) 17:30:18.01 ID:68OBjHX8.net] >>931 最初の二ヶ月は前任の人が引き継ぎ兼トレーニングしてくれたのでブートは早かったと思います そこから半年でやっと継承を触ったので、成長曲線はそこまで急では無いかと 比較が解らないですが仮に成長が早いとするとC#が非常に取っ付きやすかったのが大きいと思います 基本情報試験のアルゴリズムとかさっぱり解らないので、プログラム能力は経験相応に低いと思います
954 名前:752 mailto:sage [2017/12/21(木) 17:42:42.42 ID:68OBjHX8.net] >>915 PM交え前任者とコードレビューをしましたが、三項演算子とLINQは見難いと指摘されました 手続き型より宣言型のが良いとネットで見たのですが 逆に前任者が書いた4重ネストのfor文にifelseが連ねてあるコードはいくら頭をひねっても理解できず 数字の動きはステップ実行で見れるのですが、だから何って感じになります ゆえに知識を整理したくなり初めて抽象クラスを意識した次第です
955 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 17:50:29.58 ID:c4/lwFQU.net] 優秀だね ここにくると馬鹿になるからもう来ない方がいいよ
956 名前:752 mailto:sage [2017/12/21(木) 17:56:25.54 ID:68OBjHX8.net] >>909 素朴な疑問ですがプロパティが大量に並ぶのとクラスが大量に並ぶのはどちらが好まれるのでしょうか 個人的には、クラス内にプロパティがギッシリという光景も凄いなと思うのですが 私の知らないテクニックで隠蔽できるのかも知れないので解りませんが なおデリケートはイベントリスナとして使われてる程度の理解しかなく使いどころがピンと来ていません 精進します
957 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:05:03.28 ID:Tz1RNGN4.net] プログラミングしたので評価してください archive.isに定期的にアーカイブさせるプログラムです https://dotup.org/uploda/dotup.org1417700.zip.html 👀 Rock54: Caution(BBR-MD5:1322b9cf791dd10729e510ca36a73322)
958 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:12:09.40 ID:Tz1RNGN4.net] 間違えてプログラムだけ上げてしまいました こっちはプロジェクトです https://www.axfc.net/u/3872901
959 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:14:54.74 ID:upKQQwHx.net] GitHubにあげてくれ
960 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 18:56:17.83 ID:VaR9+Vl3.net] ギフハブ?
961 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:01:00.92 ID:YYEMhcfN.net] >>935 そんなのトレードオフに決まってんじゃん
962 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:04:17.37 ID:Q/EvmKMe.net] >>935 何べんも言うけどさ、結局要件の詳細が分からないとどういう実装方法が ベストかなんて何とも言えんよ 妄想込みの印象論としては費目ごとに派生クラス作るなんて筋悪に感じるなとは言えるけど
963 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:09:52.65 ID:Tz1RNGN4.net] (´・ω・`) https://github.com/as123414/AutoArchiver
964 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:21:07.79 ID:iwfbZ4kw.net] md書け
965 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:22:33.42 ID:Ym9/Pn+0.net] いつから「評価してもらうスレ」になったんだよ せめて相談室でやれよ
966 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:37:28.56 ID:iwfbZ4kw.net] ちょっとだけ見たけどやはり初心者ですねとまだ短いにも関わらず読みづらいコードになりそうですねということかな 一行が長いところは絶対ダメとはいわないけど大体クソコード
967 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:41:21.29 ID:Ate4yeHH.net] >>935 もう手続き型の組み方で良いんじゃないの? オブジェクト指向はプログラムを分かりやすく保守しやすくするために出来たもの。 変なオブジェクト指向に拘って物事を複雑にするのは本末転倒。
968 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:46:25.90 ID:iwfbZ4kw.net] 意味なく一行が長いのを見るとどんなエディタで書いてるんだろうかと思う あとは一行でつなぎまくってるのを見るとデバッグがめんどくさいだろうなと思う
969 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:47:38.41 ID:Tz1RNGN4.net] >>947 120行目のことでしょうか それとも出だしのメッセージボックスでしょうか
970 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:52:03.68 ID:iwfbZ4kw.net] もう見るつもりはないから忘れたけど後ろの方にあったメソッドは内容をもっと見直したらいいと思う けど初心者はこんなもんだろ
971 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:52:34.81 ID:Tz1RNGN4.net] (´・ω・`)
972 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:57:53.60 ID:iwfbZ4kw.net] >>948 メソッドの結果を受ける段で概念的にわかりやすい名前で一度受けたほうがいいと思う 何々Textとか何々uriとか あとは個人的な感想として成功じゃなくて失敗をbool値で受ければいいんではないか bool 失敗=false catchで失敗=true >>950 まあこんなところで聞くやつが悪い
973 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 19:58:12.75 ID:HqNyhY75.net] >>935 小さなクラスが大量に並ぶのがオブジェクト指向の正解
974 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:10:11.41 ID:YYEMhcfN.net] >>952 俺はトレードオフがオススメ ちょっとした修正でクラス図まで書き直す必要ありますはお客に印象悪い どういう設計してんの?って聞かれる
975 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:12:10.78 ID:Mqu0aN7Q.net] クラス図なんて成果物にいれるからだ
976 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:16:53.37 ID:HqNyhY75.net] >>953 コードが変わるならドキュメントも同期させるって当たり前のことだよ ちょっとした修正だからドキュメントは変えなくていいって、それは本来ドキュメントに書かれてなければならない事が書いてないだけ 手続き型の設計ではそういう手抜きがよくあるけどね
977 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:17:38.91 ID:Tz1RNGN4.net] ここで頼まれて作ったよ(´・ω・`) hebi.5ch.net/test/read.cgi/news4vip/1513837259/
978 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:21:08.11 ID:YYEMhcfN.net] >>955 じゃあそうやって客に言えば? 俺とお前の資料を比べたときに 同じ修正量でもお前はセコセコ動いてなんだか余裕が無さそうに見えるから
979 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:21:36.24 ID:wimnqGen.net] 他人に誉めてもらわないと張り合いが出ないのはわかるが ここは初心者しかいないんだからレビューがまともに帰ってくるわけがない
980 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:23:37.18 ID:Tz1RNGN4.net] いまソースコードにコメント付けたので評価してください
981 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:32:06.58 ID:HqNyhY75.net] >>957 余裕がなさそうに見えるからwww わらっちゃった 余裕を演出するためにやるべきことをやらずに自分を追い込んで最後には余裕なくすんだろうなキミは
982 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:33:40.96 ID:YYEMhcfN.net] >>960 実際お前のやり方だと ほんのちょっとの変更でもう クラス図から手を入れなきゃじゃん これって変更に弱いってことじゃないの?
983 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:41:22.00 ID:YYEMhcfN.net] >>960 それでいいんだよ コードの綺麗さは人間の主観だろ だったら自分のコードじゃなくて人間を見なければ成長はしないよ
984 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:46:30.90 ID:HqNyhY75.net] >>961 手間がかかるから変更に弱いという考え方しかないのか? ショートコーディングが至高ならC#じゃなくてスクリプト言語やった方がいいぞ コード修正におけるOOPのメリットはタイプ量や作業量の少なさじゃ断じてない わかりやすく整理されたコードをわかりやすさを維持したまま変更できることがメリットな そりゃこだわらなきゃ手短に修正することは簡単だよ 例えばちょっとしたフラグ変数やif文を追加すればクラス構成を変えずに素早く修正して目の前の問題を解決することはできる ローカルな修正だからドキュメントの修正も軽微で済むかもしれん でもそれを積み重ねていくと気が付いた時にはもう手に負えなくなってしまうんだよ
985 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:51:53.83 ID:HqNyhY75.net] >>962 コードの綺麗さは計量可能 常識的なことだぜ 人間を見なければ成長しない(キリッ)なんて意識高いっぽいけど意味不明な戯言を言う前に まずは君の仕事を人並みにこなせるように基本的なことを勉強しなよ
986 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:52:40.67 ID:Mqu0aN7Q.net] そんなことはない オブジェクト指向はケースによって処理ががらっと変わるような場合の対処は得意だが 細部が細かいルールでちょこちょこ変わるようなのは大の苦手だ おとなしくIF文使ったほうがいいケースはたくさんある、というかそっちが普通 あとフラグ変数まみれになるのはたぶんOOP以前に構造化プログラムができてない
987 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:56:35.39 ID:Mqu0aN7Q.net] 計量可能とかうそだ
988 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 20:59:34.57 ID:iByWYmKo.net] >>879 んなこたあない
989 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:00:51.75 ID:Ate4yeHH.net] >>964 計量可能なのはコードの複雑さだろ。 将来的にはディープラーニングでカラオケマシン並みの採点ができるかもだが。
990 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:05:03.60 ID:iByWYmKo.net] >>929 あなたのレベルはこのスレを遥かに越えてる 汚物に汚染されない方が良いよ
991 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:06:20.65 ID:HqNyhY75.net] >>965 細部の修正はOOPの場合、メソッド内とかクラス内で完結するから、非常にやりやすい 苦手どころかむしろ得意な分野 手続き型だと逆に、同じ処理があちこちに分散する傾向があるから、些細な修正が思ったよりも広範囲で大規模な修正になることが少なくないね つうかまるでOOPではif文を全く使わないように聞こえるのが気になったな クラス内では普通に使うぞ
992 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:08:30.80 ID:HqNyhY75.net] >>966 コードメトリクスと言って割とポピュラーな分野だよ
993 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:09:04.02 ID:iByWYmKo.net] >>933 向上心の無い「おじいちゃん」達とは程々に付き合うのが吉
994 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:17:01.86 ID:YYEMhcfN.net] >>963 いや、変更に弱いじゃん クラスぶっ壊して組み直さなきゃいけないんだし
995 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:22:17.04 ID:HqNyhY75.net] >>973 クラスをぶっ壊すほどの変更ならなおさらだよ 今あるモデルが根本的におかしいという現状把握 新しいモデルへ推移するための道筋 オブジェクト指向ならこれがはっきり見える クラスがなかったらモデルもないのだから現状が正しいのかそうじゃないかの判断すらおぼつかない 新しいモデルもないからどうやって変更すればいいのかもぼんやりとしか見えない 現在地点も目標地点もよく認識できないんじゃこわくて動けんよ
996 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:30:04.52 ID:Y3l0yz+N.net] 今時こんなにオブジェクト指向を信仰してるやつも珍しいな
997 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:33:07.91 ID:VaR9+Vl3.net] 大昔はCだけでゴリゴリ書いてたんだけどなー
998 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:34:32.41 ID:YYEMhcfN.net] >>974 だってお前1メンバ変数1クラスの勢いでクラス作るじゃん 人件費なんてクラスにしねーだろ こんなことしてっからちょっと変更があったらもうクラス図書き直しじゃん 設計が悪いよ
999 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:43:02.15 ID:giWx2kxQ.net] >>935 > 素朴な疑問ですがプロパティが大量に並ぶのとクラスが大量に並ぶのはどちらが好まれるのでしょうか そもそもプロパティとクラスって全然違うものだからどっちがいいとかはない クラスとインスタンスの違いがわかってない奴の戯れ言だからそう言うのは無視でいいよ > なおデリケートはイベントリスナとして使われてる程度の理解しかなく使いどころがピンと来ていません デリケートは一部の処理を動的に変えたりしたい時や外部から必要な処理を与えたい時に使うものだから必要になるまで覚える必要はない >>865 とかは自称上級者のうぬぼれテクなので真似しなくていい > 精進します 今のままでいいから頑張ってね
1000 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:48:19.96 ID:giWx2kxQ.net] >>976 アセンブラガー って話になるからほどほどにしときなよ
1001 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:52:35.91 ID:Q/EvmKMe.net] >>978 いろいろ語るに落ちてるね。 こういう人ってARGBの組み合わせの数だけクラス作るのかなw 処理もデータと同じで変数に代入して柔軟に交換可能であるなんて 発想はCの時代からあるし、高度なテクニックでも何でもないけど、 この程度のことを理解してないから「自称上級者のうぬぼれテク」に見えちゃうんだろうね
1002 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:56:22.73 ID:HqNyhY75.net] >>977 そりゃするよ 1変数のクラスは超重要なものだ オブジェクト指向では絶対に欠かせないツール 1つの文字列変数を持った注文番号クラス 1つの数値変数を持った金額クラス 1つの日付変更を持った出荷予定日クラス などなど 僕たちがプログラムで扱うものはただの文字列や数値や日付じゃあないんだ そこをしっかりと認識してほしいね
1003 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 21:56:29.51 ID:VaR9+Vl3.net] char *p; p = 0; *p = 0;
1004 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 22:01:14.12 ID:h7wsiOnr.net] >>982 次スレよろ
1005 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 22:01:31.28 ID:Mqu0aN7Q.net] この上っ面だけのの現実とリンクしてない理解 主張をいうだけで論拠もへったくれもない態度 雑談スレで暴れてたやつか
1006 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 22:05:56.61 ID:h7wsiOnr.net] これでいいっぽいな ふらっと C#,C♯,C#(初心者用) Part134 mevius.5ch.net/test/read.cgi/tech/1511951038/
1007 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 23:30:24.92 ID:oDUVChgl.net] 大学入試程度の数学をよく理解できない人がいるのと同じように オブジェクト指向を理解できない人ってどうしてもいるわけで それはしかたがないことなのかもしれないね
1008 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 23:38:52.52 ID:HqNyhY75.net] >>984 現実から目をそらさず複雑性に立ち向かうためにOOPを使う 現実とリンクしてないなのはプリミティブタイプ
1009 名前:を使う人たちだな [] [ここ壊れてます]
1010 名前:デフォルトの名無しさん mailto:sage [2017/12/21(木) 23:52:44.06 ID:+ZpzqfgR.net] ワードサラダとあんまり変わらんな
1011 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 00:24:55.67 ID:sp7ymsVp.net] >>980 > こういう人ってARGBの組み合わせの数だけクラス作るのかなw 意味わからん > この程度のことを理解してないから「自称上級者のうぬぼれテク」に見えちゃうんだろうね いや、必要もないのにドヤッてるから自称上級者とかバカにされてるだけ w
1012 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 00:30:23.73 ID:SpQ4O+yi.net] >>989 1を聞いて10を知る人間もいれば、0にしかならない君みたいな人もいるわけで。 君はデータと処理はまったく別物だと思い込んでるから「意味わからん」わけ
1013 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 00:37:51.40 ID:H1xj7tcO.net] いや誰が見ても意味不明
1014 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 00:46:44.98 ID:mdOvvC+t.net] 何で争ってるのかもわからないし 間に読み飛ばされた人がいたらかわいそうだな
1015 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:07:14.36 ID:sp7ymsVp.net] 質問者は理解してるっぽいから大丈夫でしょ 一部の自称上級者様が頓珍漢なネタでドヤッてるだけ w
1016 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:29:42.45 ID:agnD/jLF.net] >>981 馬鹿みたい 構造も変わってないのに クラス図を変更しなきゃいけない お前の組み方は無駄に変更に弱えーんだよ ただ、それだけじゃん
1017 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:33:36.39 ID:agnD/jLF.net] なんかメリットあるのかよと 単にプログラム記述上のお前の勝手な都合だけだろw
1018 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:35:03.42 ID:YbdIgSB6.net] classを使うメリットって入出力を共通化する為って意識が強かったんだけど違うのかしら・・・ 整理してないところで追加項目を一つ増やしたら他の関係ない場所にも追加項目を処理する機構を作らないといけなくなるみたいな
1019 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:38:59.75 ID:YbdIgSB6.net] >>996 入力は追加するけど出力や処理はそのままでも動きますよって変更に対して修正しないと動かなくなるようなのを防ぐ意味合いで考えてた 追加した入力に対してはメソッド新しく作ったりして対応や既存のところに付け足すとか色々やり方はあるだろうけど
1020 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 01:52:53.80 ID:SpQ4O+yi.net] 何度も言うけど、要件の詳細が明らかになってないから断定はできないが、 普通費目って聞いたら費目ごとに異なる処理(具体的な価格を計算するメソッド?) はせいぜい1つ程度だろうと想像する。 たった一つのメソッドの動作を上書きするために派生させるなんて愚の骨頂。 アホかと。ありえない。 そんなのOOPでも多態でも何でもないよ
1021 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 02:30:17.88 ID:FmyxrnYE.net] うめ
1022 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 02:30:29.41 ID:FmyxrnYE.net] うめ
1023 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 02:30:41.94 ID:FmyxrnYE.net] うめ
1024 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 02:30:49.17 ID:FmyxrnYE.net] うめ
1025 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 23日 5時間 0分 1秒
1026 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています