[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/05 17:49 / Filesize : 232 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part88



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が建てる事。
建てられない場合は他を指定する事。

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〜の奴

536 名前:526 mailto:sage [2015/08/21(金) 20:14:20.47 ID:YBnVLwK5.net]
すみません、こんな感じです。

private void ok_tt()
{
SevenZip.SevenZipExtractor szExt1 = new SevenZip.SevenZipExtractor("test.zip");
MemoryStream ms = new MemoryStream();
szExt1.ExtractFile(0, ms); // OK
}

private void OK()
{
Thread tt = new Thread(new ThreadStart(ok_tt));
tt.Start();
}

private SevenZip.SevenZipExtractor szExt2;

private void ng_tt()
{
MemoryStream ms = new MemoryStream();
szExt2.ExtractFile(0, ms); // Exception
}

private void NG()
{
szExt2 = new SevenZip.SevenZipExtractor("test.zip");
Thread tt = new Thread(new ThreadStart(ng_tt));
tt.Start();
}

NG() の形でやりたいのですが例外が発生してしまいます。

537 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:04:36.41 ID:n472Qw2U.net]
ネイティブDLLの仕様だろ
Cならそういうのはよくあること
SevenZipExtractorのコンストラクタはStreamを引数に取るオーバーロードもあるんだから、
Streamだけスレッド外で作っとくとかでファイルのキャッシュくらいどうとでもなるだろ

538 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 21:53:16.84 ID:+BYzVuol.net]
BeginExtractFile使えば例外は飛ばないけど
FileExtractionFinishedでMemoryStreamとれないから、どうにかしないといけない

private void ng_tt() {
 MemoryStream ms = new MemoryStream();
 szExt2.FileExtractionFinished += SzExt2_FileExtractionFinished;
 szExt2.BeginExtractFile(0, ms);
}

private void SzExt2_FileExtractionFinished(object sender, SevenZip.FileInfoEventArgs e) {
   //eからはMemoryStreamとれない
}

539 名前:526 mailto:sage [2015/08/21(金) 22:36:17.52 ID:YBnVLwK5.net]
>>529
FileStreamで組んでみましたが、SevenZipExtractorを閉じる時にストリームも一緒に閉じられてしまうようで、
毎回MemoryStreamにコピーしなければなりません。
そうすると遅延軽減のための処理が余計な時間をくってしまいそうです。

アドバイスありがとうございました。

>>530
ストリームがとれないと厳しいですね・・・

540 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:13:26.69 ID:+BYzVuol.net]
ArchiveFileInfoをキーにしてMemoryStreamをDictionaryにでも突っ込んどいて
FileExtractionFinishedのe.FileInfoでMemoryStreamを取り出すとかじゃだめなんかね
いや、まぁてきとーに思いついただけだから・・・



541 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:31:20.10 ID:YNgc8We+.net]
akabeko.me/blog/tag/%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F/page/2/
こちらのサイトで"MeteringStream というクラスは NAudioDemo のものを流用している。"と書いてあったのですがNAudioDemoをダウンロードしたのですがどのファイルを参照についかすればいいか分かりません。
どれを追加すればいいのでしょうか?

542 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:36:45.66 ID:Je5mj4J0.net]
>>533
ふらっとで叱られた子じゃん

351 名前:デフォルトの名無しさん[sage] 投稿日:2015/08/18(火) 19:50:36.75 ID:JFS1mc9t
NAudioでぐぐって懇切丁寧に説明してくれてるサイトが見つかるのにそれ見ないでグダグダ言ってたりしないよな?

543 名前:デフォルトの名無しさん mailto:sage [2015/08/21(金) 23:39:42.47 ID:n472Qw2U.net]
>>533
そのレベルでの試行錯誤は時間の無駄だからちゃんと本読んで出直してきなさい

544 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:12:23.71 ID:/ddVcb/Z.net]
javadocのような物が乗ってるサイトはないのでしょうか?
サンプルソースばかりでクラスの継承関係やメソッド、引数、戻り値などが分からないので。
できれば日本語でお願いします。

545 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:15:34.86 ID:5hyMMp2f.net]
C#相談室(相談に答えるとは言ってない)

546 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:16:33.52 ID:u4KBIQ2T.net]
え、一体どこのサイトを見てんの?
MSDN見てる?

547 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:22:31.03 ID:6V9DEjWD.net]
どぼんでも見てんじゃねえの

548 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:41:51.73 ID:/ddVcb/Z.net]
ここ
akabeko.me/blog/2009/12/c-%E3%81%A7%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F-1/

549 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:54:00.36 ID:oxql1dUV.net]
なんだNAudio君か
ID変わったら分かるわけねえだろ

で、リファレンスは無いらしいよ
ましてやこんなマイナーライブラリで日本語でなんて夢のまた夢だね
諦めて畑でも耕してろよ田子作君

550 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 01:01:47.13 ID:KIpdc5GT.net]
>>541
これNAudio 本体のソースあるだろ・・・何が解らないのかマジで意味が判らない



551 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:19:12.99 ID:/ddVcb/Z.net]
色々調べたら.NETはHTMLではなくXMLでドキュメントを出力すると書いてあったのですが付属のXMLはどうやってみればいいのでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:22:26.90 ID:ixHtKeVz.net]
>>539
ドボンわかりやすくて好きなんだけど評判悪いの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef