1 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 16:14:05.15 ID:I42JqLkf.net] ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part87 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/tech/1427558696/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。
435 名前:デフォルトの名無しさん mailto:sage [2015/08/11(火) 23:34:01.58 ID:HeaM7jtr.net] BCLでもNotSupportedExceptionを投げたりするのがあるけど、まあ仕方がないんだろうけど あんまり美しくないよなああいうの。
436 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:18:44.84 ID:6ZXtaURL.net] 基底クラス作るとか、制限する意味ないとか ここの人たちの話は良くわからないぞ… 前者は非現実的すぎるし、後者は公開用と実装で分けるとか結構ある話かと 面倒ってのがEclipse的な委譲の生成がないかって意味なら Reshaper(有料)使うか、諦めて無心に手書きするといいよ
437 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:33:12.62 ID:6ZXtaURL.net] あ、でもこの場合、1クラスの委譲のようだから、 制限インターフェース作って、欲しいクラスを継承+制限IFを実装、 そして制限IFにキャストして返すって手順でいいんでは?
438 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 02:40:22.65 ID:XD0FvRJl.net] 難しい事言うとまた質問者に勉強しろと言われちゃうよーん
439 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 03:14:27.59 ID:6lFy7xXj.net] 元の質問者はたぶん、型の弱い言語しか使ってないんだろ ダイナミック使えば良いと思うんだ
440 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 03:14:47.82 ID:4GoNFhR4.net] どんだけ俺の考えをきけぇ!!!!!なんだよ 寂しすぎだろw
441 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 07:59:58.15 ID:jWJqOcxH.net] >>430 後者は公開用と実装で分ける internalで十分じゃね?
442 名前:デフォルトの名無しさん mailto:sage [2015/08/12(水) 08:09:14.50 ID:6ZXtaURL.net] >>435 十分じゃないですよ 2者を分離できませんし、継承関係が欲しい訳じゃないですから
443 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 10:26:42.13 ID:yl8Mdqy/.net] MVVMでダイアログとかポップアップメニューとか画面遷移ってどう扱うんだ? VMにMessageBox.Showとか書きたくないよな
444 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 10:36:01.01 ID:JHO9AiGv.net] >>437 画面遷移サービスみたいなのを用意してインスタンスをアプリケーション全体で共有 ただしシングルトンはやめろ そういうサービスはVMからはインターフェースを通して扱うようにして、 VMには参照をプロパティやコンストラクタなどで渡す。DIを使ってもいい。 メッセージを使ってビュー経由でやる方法もあるがどこで何やってんのかわけわからなくなりやすいのでお勧めしない。
445 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 14:53:07.65 ID:ZQmwk96y.net] >>437 prismにTriggerActionって仕組みがあって、ビヘイビアのようなクラスを定義すればメッセージボックスをVMから操作できます メッセージボックスを開く程度をやるには可也面倒なんだけどね
446 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:47:02.81 ID:uEvY/8an.net] List<T>.Sort()ってなんで安定じゃないんですかね 安定なの作っといてくれりゃいいのに
447 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 20:52:06.72 ID:r6k8TIQq.net] >>440 LINQのOrderByは安定ソートだよ
448 名前:デフォルトの名無しさん mailto:sage [2015/08/13(木) 21:42:16.81 ID:uEvY/8an.net] >>441 なるほど……こんなん書いてみたけど、これってありですか? それとも自前の安定なソートメソッドを書きますか? public static void StableSort<T>( this IList<T> list ) { var temp = list.OrderBy( t => t ).ToList(); // 既定の比較でソート for( int i = 0; i < list.Count; i++ ) { list[i] = temp[i]; } } その前はこんなん書いてみたてたけどw public static void StableSort<T>( this IList<T> list ) { var wrapper = list.Select( ( t, i ) => new KeyValuePair<int, T>( i, t ) ).ToList(); wrapper.Sort( ( p1, p2 ) => { var result = Comparer<T>.Default.Compare( p1.Value, p2.Value ); if( result == 0 ) { result = p1.Key.CompareTo( p2.Key ); } return result; } ); for( int i = 0; i < list.Count; i++ ) { list[i] = wrapper[i].Value; } }
449 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 01:10:47.58 ID:u9bN4Lw8.net] >>442 ToListせずにforeachしたほうがいい
450 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 15:19:13.92 ID:Iycxx57M.net] >>442 馬鹿な俺には何がしたいんかわからん list.OrderBy( t => t ).ToList(); だけでええやん
451 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 15:21:03.68 ID:PBffULch.net] 破壊的ソートだろ
452 名前:デフォルトの名無しさん mailto:sage [2015/08/14(金) 22:12:21.62 ID:2p3m0KlY.net] >>444 ソートされた新しいインスタンスがほしい場合もあれば 元のインスタンスをソートしてほしいときもあるやん?
453 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 01:24:13.06 ID:xV4UISpz.net] >>442 これってプリミティブ以外の型でちゃんとソートされるの?
454 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 02:26:49.44 ID:j4iBQT2t.net] >ソートされた新しいインスタンスがほしい場合もあれば >元のインスタンスをソートしてほしいときもあるやん? list = temp;
455 名前:デフォルトの名無しさん [2015/08/15(土) 03:53:43.45 ID:QiO6I5ga.net] >>446 var listOrg = new List<int>(new int[] { 10, 23, 13, 4 }); var listTmp = listOrg.OrderBy((t) => t).ToArray(); listOrg.Clear(); listOrg.AddRange(listTmp); 遅いけど少し短いかも
456 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 07:25:58.35 ID:/RqnGk0/.net] >>447 TがIComparableを実装してないとソートできないけど、それは普通のSort()メソッドも同じじゃね? >>448 インスタンスを置き換えて返すつもり? 元のリストの参照もってたらソートされないままだろが……
457 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:11:59.71 ID:z64TKpL6.net] 初心者です。インターフェースの実装として抽象クラスを定義するコードを見かけたのですが、あえてそうするメリットって何かありますか?自分としとはインターフェース不要じゃないかと思ったのですが。
458 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:19:08.64 ID:dPBreRmq.net] Effective Java 18章 抽象クラスよりインタフェースを選ぶ を読んで、骨格実装について学んでください この項目はC#でも同じです
459 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 13:54:48.31 ID:gGc5tBdo.net] 出来る限り疎結合にするというのが大切だから外部との窓口をインターフェースにする。 それより内側の具体的な実装は、内部実装としての作りやすさからたまたま抽象クラスで行っているだけかと。
460 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 14:38:20.40 ID:OY/B/Wmp.net] 抽象クラスって使った事ないわ 使い道あるのかこれ
461 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:08:58.69 ID:2z51GaS1.net] 初心者なのでインターフェイスがあれば抽象クラスは別段いらないじゃないか って正直いつも思ってます・・・ 抽象クラスの使い方が分かってないからでしょうけど
462 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:14:23.51 ID:3TmrRaVz.net] vsの簡単フォームツール?のコンボボックスでSelectedIndexが見つかりません。 どこにありますか?
463 名前:デフォルトの名無しさん [2015/08/15(土) 15:47:22.93 ID:HxCw3c0C.net] >>455 インターフェースに雛形となる実装がついてるだけだよ。 インターフェースにテンプレートの実装持たせておければいいのに。
464 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:50:11.19 ID:2z51GaS1.net] >>457 よく分からないのですが、そもそも仕様と実装を分離して疎結合するためのもの だという認識なんですが、それに実装を持たせると分離の意味がなくなるんじゃないのかな と不思議に思ってます
465 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 15:58:03.56 ID:XFeAKEd8.net] 仕様と実装を分離して疎結合するためのもの=インターフェイス 仕様の中で規定の実装が部分的に定まっているもの=抽象
466 名前:デフォルトの名無しさん [2015/08/15(土) 15:
] [ここ壊れてます]
467 名前:59:17.62 ID:HxCw3c0C.net mailto: >>458 その通りです。 なので必要があれば抽象クラスとインターフェースをそれぞれ定義します。 抽象クラスはあくまで実装ですからね。 個人的には抽象クラスはいらないと思うが、実装を持たせられるのは挙動を保証できるし、やはり便利ということで使ってしまう。 拡張メソッドとかもあるけど、いちいちクラスとインターフェース作りたくねーし、インターフェースの定義の中でなんとかさせてくれという気持ち。 [] [ここ壊れてます]
468 名前:デフォルトの名無しさん [2015/08/15(土) 16:04:26.73 ID:HxCw3c0C.net] abstractにインターフェースつけると、インターフェースのデフォルト実装が適用されるとかよさそう
469 名前:456 mailto:sage [2015/08/15(土) 16:11:48.76 ID:3TmrRaVz.net] 編集不可コンボボックスだと初期値でTextプロパティが使えないのでindexで指定するように書いてあったのですができません・・・
470 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 16:50:16.42 ID:hcwFHcJB.net] 基底クラスが1つしか選べないのが抽象クラスと相性悪いと思う インターフェースに基底の実装を用意してもインターフェースを2つ実装しようとしただけでダメになる
471 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:19:23.51 ID:2z51GaS1.net] >>459-460 あーなるほど、なんとなく分かりました 共通した仕様だけでなく実装の一部までもが共通して決まっているなら そこまで定義しても問題ないし保証できるというわけですね ありがとうございました
472 名前:451 mailto:sage [2015/08/15(土) 17:57:59.98 ID:9FDdWcaw.net] >>452 ありがとうございます。読んでみます。 個人的には、少し冗長で読みにくい印象があったのでした。勉強してみます。
473 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 17:58:54.53 ID:/RqnGk0/.net] >>462 ふらっと行ったら?
474 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 20:49:36.11 ID:7Ge9P+Ci.net] 普通インターフェースを継承すると、全てのメソッドやプロバティーなどを実装しないといけないが 抽象クラスならば全て実装しなくて良くて、実際に使う派生クラスまでの何処かで実装すればいい 抽象クラスなのは派生クラスでインターフェースの一部機能を実装するからかもしれん
475 名前:デフォルトの名無しさん mailto:sage [2015/08/15(土) 21:07:44.19 ID:3TmrRaVz.net] >>466 分かりました
476 名前:デフォルトの名無しさん mailto:sage [2015/08/16(日) 22:37:33.66 ID:nZvb2qTm.net] TableLayoutPanelで20行準備してサイズを5%にすると最後の行だけ大きくなるんだけど・・・
477 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 07:33:43.50 ID:KTnE4+Ew.net] 高さが行の数で割り切れないと最後で調整する仕様みたいだね 高さ%行数==行数-1 のとき最後の行が最大になる模様w
478 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 10:57:45.12 ID:RAwbDv5U.net] TableLayoutPanelみたいなものが必要ならWPF使えよ WinForms使うなら古臭いWinFormsの流儀から外れてはいけない
479 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 11:34:00.62 ID:/53UNtSq.net] 何だよそのクソ仕様。全体で少しずつ調整しろよ・・・
480 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 11:38:02.93 ID:/53UNtSq.net] 本当だ。割り切れるサイズにしたら直ったw
481 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 14:13:40.06 ID:D7LX3aiM.net] WPFは使いたくないよな、何が嫌かっていうとそのうち廃れそうな空気が充満している所
482 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:51:23.84 ID:eAn+98gr.net] WinFormsも時代に取り残される一方でしょ 未来があるのはASP.NET MVCだけだよ デスクトップアプリがいいならMSもVS Code作るのに使ってるelectronがいいんじゃないかな
483 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:57:53.02 ID:Fj/4E2oI.net] Win32APIお勧め
484 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 15:58:11.51 ID:/53UNtSq.net] javaでGUI作るとかwって言われたからc#始めたのにc#もこれかよ…
485 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:16:36.52 ID:eXSE2CJH.net] そもそもGuiなどというものは流行り廃りが激しく再利用性も低い 使い捨てして乗り継いで行くイメージで作るべきもの この前提があるからみんな口を揃えてレイヤーを分けろって言うんだね
486 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:19:11.16 ID:eAn+98gr.net] デスクトップアプリという分野自体がもう終わったからね Web面白いよ? 俺もそうだったが、食わず嫌いしてたら後悔する
487 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 16:27:51.07 ID:w34N0MAp.net] 特定のブラウザ専用ならwebもGUIの道具の一つとしてありかなとも思うが、 各ブラウザの違いやバグ対策みたいなGUIの本質とかけ離れたところにばかり 時間を取られる非生産的な仕事ってイメージしかないね。 仕事でやりたいとは思わないなあ。ストレス大盛りって感じ。
488 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 19:35:09.97 ID:w9n3OemN.net] 最近のmsはインターフェースより 抽象クラスを推奨してるってなんかの本で 読んだんだけど・・・
489 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 19:45:34.88 ID:RAwbDv5U.net] んなことはない インターフェース大好きMSが書くソースコードは今も昔もどの言語でもインターフェースまみれ インターフェースが問題になるのはインターフェースを定義する側と実装する側の距離が離れているとき MSは内部では本当にインターフェース使いまくってる MSが一番最近作った新言語のTypeScriptだってインターフェースが基本
490 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:37:51.82 ID:FJuxg1JS.net] みんなHTA使おうよ
491 名前:デフォルトの名無しさん [2015/08/17(月) 22:43:25.40 ID:Wyfczv4M.net] シングルトンの作り方で、sataticクラスにしてstaticイニシャライザでstaticな変数に作るのと、 通常のクラスでコンストラクタでstaticな変数に自分をnewするのでは何か違いますか?
492 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 22:59:02.86 ID:+cUtloob.net] そもそもstaticクラスはインスタンスを作れないのでは?
493 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 23:00:29.54 ID:VtDZ2XCv.net] >>484 はい。 概念的に、そのシングルトンを持つ存在がシングルトンの実体と別なのか同一なのかという決定的な違いがあります。 形しか見ない低能には区別がつきませんが
494 名前:デフォルトの名無しさん [2015/08/17(月) 23:12:20.05 ID:q/emGwsq.net] VS2015のC#でForm1からForm2上のTextboxを変更したいのですがどうすればいいのでしょう detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1251572732 ここを参考に進めていったのですが、Form1でForm2のTextbox1.textを変更するよう記述したところ (Form2Obj.textBox1.Text = "こんにちは";のように) 『'object' に 'Text' の定義が含まれておらず、型 'object' の最初の引数を受け付ける拡張メソッド 'Text' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください。』 こんなエラーを返され、textbox1.に続く自動入力を見るになんだか読み取り専用になってるような気がします まだ駆け出しなので何か根本間違えてしまったりしてますか?
495 名前:デフォルトの名無しさん mailto:sage [2015/08/17(月) 23:18:08.90 ID:RAwbDv5U.net] >>484 シングルトンはこうやって使うんだよ class Hoge { private Hoge(IHage hage) { this.hage = hage; } public void method1() { hage.method2(); } } //Hogeクラスを使うとき new Hoge(Hage.GetInstance()).method(); // IHageの実装を注入 こういう設計にすればIHageの実装をダミーに入れ替えてHogeを単体テストできる こういうことを考慮せずにどこでもGetInstance呼んでるなら>>484 の疑問の通り実質的な違いはない
496 名前:デフォルトの名無しさん [2015/08/18(火) 00:09:30.31 ID:pnM0xe2/.net] >>1 デュエル・マスターズ的な非電源TCGの 《 オンラインTCGツクール系 》 ソフト(エディター)の企画。 例えば、ガチンコ・ジャッジを直ぐにでも導入できる機能を持っておりながら、 当面それを扱わず単純化させておいて、事後的に導入拡張する際に当該システムを ブロック構造の組み合わせで後付け挿入できるように予めシステム化してある制作ソフト。 既存の非電源TCGを劣らずに再現できるならば大概のニーズに応えられる筈。 バトスピ、ヴァンガ、バディ、ドレノ、フォースofウィル、ウィクロス、ポケカ、デジモン、ゼクス、モンコレ、ガンダム・ウォー、ディメンションゼロ、ライブオン、カードヒーローなど のシステムを完全再現できるように設計するけど、他に此のTCGの此のシステムは再現希望とか有ったら書いて。 マジック:ザ・ギャザリングの全システムを完全に再現するのは無理だから、此れだけは必用だ!って部分のみリクエストして。 WEB通信での対戦は、個vs個、多数乱戦、チームvsチーム、個vsチームを可能な仕様とする方針。 設計思想は 《 RPGツクール 》 が良いかな? 他に、優れたエディター有ったら挙げてみて。 個人や企業などのベンダーが提示する開発費(見積もり)で折り合えば、発注する。 ↓ エディタ系ソフト群から基本コンセプトを絞り込む(もちろんオリジナルで優れた新ネタが有れば導入する)。 ↓ 遊戯王OCGに関しては、タッグフォース、ADS、デュエルオンラインを発注先ベンダーに研究させる。 なるべく前述3つで可能な再現は全て実装させる方向を目指す。 まぁ努力する・・・ バトスピ、ヴァンガ、バディ、デュエマなど、発売済みゲームソフトの存在するケースはベンダーに研究させる。 ↓ TCGを再現するテストプレイ ⇒ 更に改良や修正。 ↓ 機能制限した下位版を5万円以上で発売 + デュエリーグ用に改造した上位版でサーバー稼動=営業開始。 ↑ 下位版の改造および商用利用には、別途で当社との契約が必要。 さ〜て、製作を受けてくれるベンダーが見つかるかな?ww(クス hayabusa6.2ch.net/test/read.cgi/gameama/1438617407/l50
497 名前:デフォルトの名無しさん [2015/08/18(火) 04:24:03.38 ID:pRZZzM/P.net] >>487 全体像が見えないのでなんともですが とりあえずForm2に配置されているtextboxのプロパティーを開いて Modifiersを private → public へ変更して、Form2クラス外からも見えるようにしてみる?とか
498 名前:デフォルトの名無しさん [2015/08/18(火) 04:38:39.80 ID:pRZZzM/P.net] >>479 WEBは面白いけど、eコマース、SNS、ゲームといった仕事をしない人にとっては用のない世界でもあったりする 公開されない用途では、多様な環境への対応は意味のない単なる負担でしかないからね 面白いという理由だけで意味のないコスト発生させても仕方がないのだ 自分がそうだけど
499 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 05:50:02.90 ID:EGG1pcbp.net] >>487 (Form2Obj.textBox1 as TextBox).Text = "こんにちは";
500 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 06:40:39.06 ID:ffkOBUQn.net] >>492 エラーが分かりにくくなるだけだからnullチェックしないならasは使うな
501 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 07:44:01.93 ID:EGG1pcbp.net] >>493 んな事知るかボケ
502 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:09:33.82 ID:JFS1mc9t.net] >>487 の回答者はよくもまあ長々と書くもんだなぁ こんなしょーもないことにあれだけ付き合うって素晴らしい人、もしくはひどい暇人 だけどForm2Obj というフィールド変数の名前はどうよ
503 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:10:48.65 ID:JFS1mc9t.net] >>492 型の問題じゃなくてスコープの問題だからその回答はマヌケ
504 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:21:27.56 ID:sLRvpB24.net] 夏休み今日までだから 明日からこの糞くだらない無駄話に参加できなくなって悲しいですわ
505 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:30:04.89 ID:O5wCO4NL.net] >>496 スコープ?まじで?長すぎて全然読んでなかったよ
506 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 08:38:29.36 ID:GgDcmGMQ.net] >>490 最終的にそれだろうけど エラーメッセージが違うんだよなー
507 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:05:35.08 ID:JFS1mc9t.net] >>498 あ、ごめん型の問題でもあったねw おれは知恵袋の方しか見てなくて>>487 のレス読んでなかったw >>487 Textbox1の型はどうなってんのよ うだうだ言っても始まらないからコード晒したら? ■コードを貼る場合はこちら ideone.com/
508 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:29:08.18 ID:O5wCO4NL.net] >>487 コード晒さないにしても一字一句正確に書いてよ >Form1でForm2のTextbox1.text >(Form2Obj.textBox1.Text = "こんにちは";のように) TextBox1が先頭小文字になってるから、 Form2.cs public object textBox1 { get; } を想像したんだけど
509 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:31:26.11 ID:C75F2sdQ.net] ゲッターやセッターの中でこういう事やるなって処理があれば教えて下さい
510 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:35:25.75 ID:O5wCO4NL.net] (set書き忘れた)
511 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 09:37:41.70 ID:JFS1mc9t.net] >>502 必要なことならなんでもやっていいのよ
512 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:04:42.64 ID:v9B/n+sr.net] セッターの中でゲッターをあまり呼ばないことぐらいかな? 意図的にやる場合はいいけど、無意識に使っているとバグの元になる
513 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 10:35:34.34 ID:A08QTc66.net] これをやっとくと便利だな というのはなるべく避ける これをやっとかないのはどう考えてもアホやろ というのをしぶしぶ入れる 無駄に何回も呼ばれても困らないようにする というかそもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計
514 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 12:17:05.48 ID:+z7OWFlW.net] 抽象的に言えばやるべきでないのは根拠がない教条主義だな セッターやゲッターでやってはいけないことがあるんだって発
515 名前:zそのものがよく分からない。 むしろ>>502 は何でこういう疑問を持ったんだろう。 [] [ここ壊れてます]
516 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 13:43:22.03 ID:sLRvpB24.net] ベストプラクティスベストプラクティスって糞カスがうるさいから
517 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 15:27:08.93 ID:5lg1jc8O.net] >>506 > そもそもゲッターセッターをむやみに作らない・露出しない のが美しいオブジェクト設計 こんなク○スレにもまともなやつはいたんだな ちなみに俺もそれが理由でプロパティみたいなもんは存在からして不要だと思ってる ゲッターセッターがむしろ書きにくく手間がかかる言語こそが本当に気の利いたOOPL
518 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 15:43:01.49 ID:+rFwHajx.net] いや、オブジェクトなんぞ元々どぎたなくて美しさの欠片もない代物
519 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:11:49.85 ID:IEGJFkcT.net] オブジェクト指向に美学を求めてもなぁ
520 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:19:58.26 ID:+rFwHajx.net] しかし、オブジェクトに美しさを求めるって、どんだけオブジェクトの事をわかってないんだ? という感じ、クラスやオブジェクトは元々どぎたないものを「隠す」というだけであって、 別に「美しくする」訳ではない(キリッ
521 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 16:55:22.43 ID:vgvX2pjS.net] 隠すのでも美しくするのでもないよw っていうかオブジェクトって何だよw OOの本質はクラスやインスタンスという一種の状態機械を データや機能の収納箱として利用する、分類や整理の手法だと思う。
522 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 17:26:54.71 ID:IEGJFkcT.net] OOの本質は、特にありません モナド則のような厳しいしきたりもありません 本質的に守らなければならないルールは、 リソースリークに気をつけるぐらいでしょうか みなさん自由にしましょう
523 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:17:06.72 ID:C+CrAcbu.net] この場合、美しさはカンタンに定義できると思うけどなw 「美しさ=汚さの逆」であり 美しくする=汚くしない(ドヤッ
524 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:25:58.85 ID:JFS1mc9t.net] ドヤッとかつけないで正々堂々とレスしようよ
525 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 18:31:45.16 ID:GgDcmGMQ.net] やっぱりコピペ指向
526 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:08:36.73 ID:MvA+WoyG.net] 昔OOの本質はマルチプルインスタンスだって書いてる人もいたけど、 それはOOPを使えば簡単にそれが出来るというだけの話で、 オブジェクト指向の本質ではないと思う。
527 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:22:37.20 ID:TP6OV89s.net] OOPの本質はモジュール化だよね OOP以前にあったものの小さい版 プロセスとスレッドの関係に似てる
528 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:42:27.95 ID:IEGJFkcT.net] 何かに似ているとか、たとえ話とか、そういうのいらないんで
529 名前:デフォルトの名無しさん mailto:sage [2015/08/18(火) 19:52:27.38 ID:JFS1mc9t.net] OOPの本質とか夏休みの宿題のネタくらいにしかならないだろ まじどうでもいい
530 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 02:06:12.07 ID:0nl1pVRH.net] DataGridViewがマウスのチルトで横スクロールしないのが不便なので 色々試行錯誤したんですがあと一歩のところでうまくいきません。 派生クラス作ってWM_MOUSEHWHEELを拾って HorizontalScrollBar.Value += 10; と書いたんですが、バーは動くけど中身のデータ表示部が微動だにしないんです。 ここからさらにバーの動きに連動して中身のグリッドも左右に動かすには どうしたらいいんでしょうか。
531 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 08:47:52.85 ID:/Qsn/PCA.net] DataGridView知らないけど 設定後に更新とか再描画させてみた? Javaだとそういう場合だいたい コンポーネントに対してrepaint()を手動で呼ぶ
532 名前:デフォルトの名無しさん mailto:sage [2015/08/19(水) 09:27:13.54 ID:9fa2/Guo.net] 俺も知らないけどHorizontalScrollingOffset使うって書いてあるよ
533 名前:522 mailto:sage [2015/08/20(木) 05:08:37.71 ID:IiHrtFdq.net] >>523 >>524 ありがとうございます HorizontalScrollingOffset += 10; これで思い通りの動きになりました。 再描画系は Refresh() Update() Invalidate() を試してみましたがどれもダメでした。 HorizontalScrollBar.Valueはあくまでバーの位置を指定するだけで グリッド部分には影響しないのかもしれません。
534 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 18:42:46.11 ID:YBnVLwK5.net] zip/rar ファイルを扱うために SevenZipSharp.DLL を使用しています。 スレッド内で SevenZip.SevenZipExtractor を作成し、展開はできるのですが、 スレッド外で SevenZip.SevenZipExtractor を作成し、スレッド内で展開しようとすると System.InvalidCastException の例外が出てしまいます。 ファイルのキャッシュ等をしたいのでスレッド外で SevenZip.SevenZipExtractor を 作成したいのですが、エラーにならずに展開できないでしょうか。 もしくは、それができる zip/rar 展開用(MemoryStreamに解凍できるもの)ライブラリ があれば教えてください。
535 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 18:48:48.63 ID:NPCxxztI.net] そもそもスレッド内外ってなんだ(哲学 UIスレッドの話なら非同期メソッドつかえ Begin〜の奴