ふらっとC#,C♯,C#(初心者用) Part23
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/01/11(金) 15:41:00「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
ふらっとC#,C♯,C#(初心者用) Part22
http://pc11.2ch.net/test/read.cgi/tech/1197802312/
0002デフォルトの名無しさん
2008/01/11(金) 15:42:43http://pc11.2ch.net/test/read.cgi/tech/1194956418/
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
http://pc11.2ch.net/test/read.cgi/tech/1162950198/
Windows Live プログラミング
http://pc11.2ch.net/test/read.cgi/tech/1188112572/
初心者のためのプログラミング言語ガイド Part6
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
0003デフォルトの名無しさん
2008/01/11(金) 15:44:260004デフォルトの名無しさん
2008/01/11(金) 18:00:44乙
0005デフォルトの名無しさん
2008/01/11(金) 19:26:59ブラウザ(IE)上に表示されたテキストボックスからテキスト取得ってできるんですかね?
サイトはJAVAアプレットで書かれているものです
参考サイト、ググるキーワードなどあればご教示下さい
宜しくお願いします
0006デフォルトの名無しさん
2008/01/11(金) 19:39:32まともな方法じゃ無理、やれたとしてもC#の範疇じゃないからWin32スレにでもど〜ぞ。
0007デフォルトの名無しさん
2008/01/11(金) 19:51:21そうですか・・・。
ではWin32スレに行ってきます。
ありがとうございました
0008デフォルトの名無しさん
2008/01/11(金) 20:20:37IDEでプロジェクト作ってというのはちょっと大げさです。
軽めでC#のメソッドの補完をしてくれるテキストエディタってないですか?
0009デフォルトの名無しさん
2008/01/11(金) 20:25:490010デフォルトの名無しさん
2008/01/11(金) 20:26:26たぶんC#やるんならVSが一番いいと思うけど
0011デフォルトの名無しさん
2008/01/11(金) 20:29:500012デフォルトの名無しさん
2008/01/11(金) 22:40:10の値を初期状態にしてデバッグ開始する方法ってないの?
0013デフォルトの名無しさん
2008/01/11(金) 22:42:130014デフォルトの名無しさん
2008/01/11(金) 22:50:310015デフォルトの名無しさん
2008/01/12(土) 01:36:32こいつのデータベースマネージャからでも、ソースコードからでもよいので
MySQLサーバにアクセスしたいと考えております
ぐぐってみたのですが、VC#2005EEではMSSQLかアクセスしか選べないと書いてあるところもありました
やっぱフリーではアクセスできないんでしょうか?
0016デフォルトの名無しさん
2008/01/12(土) 01:39:01ttp://www.mysql.com/products/connector/net/
0017デフォルトの名無しさん
2008/01/12(土) 01:42:34ここ初心者スレなんだしもうちょっと丁寧に書いてあげれば?
0018デフォルトの名無しさん
2008/01/12(土) 01:43:050019デフォルトの名無しさん
2008/01/12(土) 01:45:47わからないなら何が判らないか聞けよ
002015
2008/01/12(土) 01:53:31けどこのあと結局どうやって接続していいかわかりません
VSのデータベースマネージャとかからできるのかーとか思っていますが・・・
0021デフォルトの名無しさん
2008/01/12(土) 02:16:00>ソースコードからでもよいので
>VSのデータベースマネージャとかからできるのかーとか思っていますが・・・
どっちだよw
「Visual C# 2005 Express MySQL」、「C# MySQL」でググってみた?
前者はアドイン、後者は接続方法が先頭付近にあるよ?
0022デフォルトの名無しさん
2008/01/12(土) 10:20:140023デフォルトの名無しさん
2008/01/12(土) 10:55:36ADO.netデータアダプターを利用した
002423
2008/01/12(土) 10:58:44今練習でデータベースを扱うプログラムを組んでいるのですが
da.update(dt);
でデータのアップデートをする場合 トランザクションは自動的に内部処理されて
エラーはロールバックされると考えていいのでしょうか?
それとも確実に行うにはすべて手動で設定していった方が良いのでしょうか?
0025デフォルトの名無しさん
2008/01/12(土) 12:09:20ぐぐってみました
前者のアドインは有料なのね・・・
後者の接続方法でやってみます
もっと簡単に接続できればいいんだけどなー
0026デフォルトの名無しさん
2008/01/12(土) 13:01:29まあMySQL Connector/Netあたりでいいべ
0027デフォルトの名無しさん
2008/01/12(土) 13:09:350028デフォルトの名無しさん
2008/01/12(土) 13:52:120029デフォルトの名無しさん
2008/01/12(土) 13:55:01トランザクションは使われていない。
System.Data.Common.DbTransactionか
System.Transactions.TransactionScopeを合わせて使う。
0030デフォルトの名無しさん
2008/01/12(土) 16:36:16開発に関してお聞きしたいのですが、フォーム(Form)上にテキストボックス(TextBox)
が配置されていて、あるタイミングでクラス(Woker)のメソッド(Method)を呼び出します。
この時、UIをフリーズさせないようにMethodはデリゲートとBeginInvokeを使用した
非同期呼び出しで呼び出され、処理終了後にコールバック(MethodDoneEvent)を使用してTextBoxに
取得した内容を表示します。
Methodでは「任意のWebサーバにHTTPで接続しファイルをダウンロードしてくる」
といった処理が行われているのですが、その際Methodの中で
1.通信の準備
2.Webサーバへの接続
3.ヘッダの取得
4.ファイルの取得
5.通信の後始末
と5つのステップの処理が行われています。
この時1〜5の処理の実行と結果を、逐一Form上のTextBoxに表示したいのですが
MethodDoneEventが呼ばれる時には既に5までの処理が完了しているので
リアルタイム表示にはなりません。
1〜5までの処理をリアルタイムでTextBoxに表示させたい場合、1〜5の各処理を分割し
それぞれを非同期呼び出し・コールバックからの結果取得・反映を行う必要があるのでしょうか?
それとも他に呼出元のFormに対して情報を通知する手段は存在するのでしょうか?
単純にWorkerにFormのインスタンスを保持させて、Method内で直接Form上のTextBoxを更新させれば
早いのですが.NET Frameworkの設計で「フォームメソッド以外にフォームの要素を変更させるのは好ましくない」
といった感じのことを聞いた事があるので・・・・
0031デフォルトの名無しさん
2008/01/12(土) 16:42:49BackgroundWorker
0032デフォルトの名無しさん
2008/01/12(土) 16:46:19BackgroundWorker使って
その度にReportProgressでProgressChangedイベント起こせば簡単だけど
0033デフォルトの名無しさん
2008/01/12(土) 16:58:40即レスありがとう御座います!
BackgroundWorker・・・こんな便利なものがあったんですね・・・
早速使ってみたいと思います
0034デフォルトの名無しさん
2008/01/12(土) 19:05:30ファイルをコピーするユーティリティを作ってみていたのですが、少ないファイルなら良いのですが
それが大量だったり大容量だったりするとすごく時間がかかってしまいます。
それとファイルのコピー中はフォーム上のボタンやラベル等々はenable=falseとして操作できないようにしています。
それで肝心のエラーなのですが、同じ処理をさせても出てくれませんorz
確かポンプだとかメッセージがないとか長時間だかとかといった具合の言葉があったのは覚えています。
なのでこういった時間のかかる処理をするときの作法というかベターな方法みたいのはないでしょうか?
0035デフォルトの名無しさん
2008/01/12(土) 19:07:12003634
2008/01/12(土) 20:00:34マネージ デバッグ アシスタント 'ContextSwitchDeadlock' では '(ファイルへのパス)' に問題を検出しました。
追加情報: CLR は、COM コンテキスト 0x1b08b8 から COM コンテキスト 0x1b0a28 へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、
ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、
アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、
CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。
こいつです、警告っぽいです
0037デフォルトの名無しさん
2008/01/12(土) 20:02:09>それで肝心のエラーなのですが、
突然話が出てくるんだな。
話の上の部分書き忘れたのか、ゆとりなのか?
0038デフォルトの名無しさん
2008/01/12(土) 20:07:07何をしたくて
何をしたら
何が起きたのか
をちゃんと書けよ
0039デフォルトの名無しさん
2008/01/12(土) 20:07:17004034
2008/01/12(土) 20:07:50ええっとどこが突然なのか・・質問の原因を前におけということなら質問の原因がわからないので後に置きました
それで、という接続詞の話ならば間違いなく正しいです、1つ意味を進める意味合いです
0041デフォルトの名無しさん
2008/01/12(土) 20:09:18(なにをしたら)
ファイルをコピーするユーティリティを作ってみていたのですが、少ないファイルなら良いのですが
それが大量だったり大容量だったりするとすごく時間がかかってしまいます。
それとファイルのコピー中はフォーム上のボタンやラベル等々はenable=falseとして操作できないようにしています。
(なにがおきた(+後述))
それで肝心のエラーなのですが、同じ処理をさせても出てくれませんorz
確かポンプだとかメッセージがないとか長時間だかとかといった具合の言葉があったのは覚えています。
(なにをしたくて)
なのでこういった時間のかかる処理をするときの作法というかベターな方法みたいのはないでしょうか?
こうしてやらないとわからないか
0042デフォルトの名無しさん
2008/01/12(土) 20:10:17いきなりエラーの説明されても・・・
どこで出たエラーなんだ?
0043デフォルトの名無しさん
2008/01/12(土) 20:11:37肝心のエラーとか言われても、それまでにエラーの話なんて一言もないじゃないか。
0044デフォルトの名無しさん
2008/01/12(土) 20:15:020045デフォルトの名無しさん
2008/01/12(土) 20:16:09BackgroundWorkerを使えばいいみたいだな
0046デフォルトの名無しさん
2008/01/12(土) 20:29:34いきなりMSDNなんて引いちゃだめだ
004737
2008/01/12(土) 20:31:36>>34を放置しろ。
内容を適当に書き換えてやろうか?
どこが変わったか読んでみ。
ファイルをコピーするユーティリティを作ったのですが、大量のファイルや大容量のファイルを
コピーすると処理にかなり時間がかかって、途中でエラーが出ます。
それで肝心のエラーなのですが、同じ処理をさせても出たり出なかったりしますorz
内容は(中略)
こういった時間のかかる処理をするベターな方法はないでしょうか?
0048デフォルトの名無しさん
2008/01/12(土) 20:37:410049デフォルトの名無しさん
2008/01/12(土) 20:39:430050デフォルトの名無しさん
2008/01/12(土) 20:44:03> 内容は(中略)
> 内容は(中略)
> 内容は(中略)
> 内容は(中略)
0051デフォルトの名無しさん
2008/01/12(土) 20:49:26ListVewにバインドしてツリーを作る方法ありますかね
やっぱコード書いてツリー作るしかない?
0052デフォルトの名無しさん
2008/01/12(土) 21:13:50ListView?
0053デフォルトの名無しさん
2008/01/12(土) 21:44:20IEその他だとなんともない
「ふらっとC#@`C♯@`C#(初心者用) Part23」
となっている
0054デフォルトの名無しさん
2008/01/12(土) 21:45:44"," が@と`になる
0055デフォルトの名無しさん
2008/01/12(土) 21:47:330056デフォルトの名無しさん
2008/01/12(土) 22:04:14TreeViewでした(;´д`)
0057デフォルトの名無しさん
2008/01/12(土) 23:03:11マウスカーソルの位置でメッセージ内容を変えてます
Popupイベントでメッセージを変えてるんだけど
ただ、これだどPictureBoxの中でマウスカーソルが移動した場合に
ToolTipが再度表示されなくて悩んでます
同じコントロール上でマウスカーソルを移動したときに
ToolTipを再表示する設定ってできますか?
0058デフォルトの名無しさん
2008/01/13(日) 02:07:30また、Form1から子フォーム(クラス FormOption)を呼び出せるようになっています。
ここで子フォームのボタン(btnOK)を押されたときに、裏処理を中断させたいんですが、どうしたらいいでしょうか。。。
親フォームからだったらクラスが同じなのでbgw.CancelAsync();で良いと思うんですが、クラスが違うので使えません・・・
//まだクラスとかインスタンスとかの概念がよく理解してないのが問題だと思います(´・ω・)
//とりあえず似たようなケースで、異なるクラス間で変数いじったりするならstaticにすればいいってことは分かったんですが・・・
0059デフォルトの名無しさん
2008/01/13(日) 02:18:13Showでキャンセルした時に閉じるなら、子フォームにIsCancelledプロパティ用意して子フォームのClosedイベントでチェック。
一般的には子フォームにCancelledイベントを作ってキャンセルボタン押されたら発生、親フォームはイベントにキャンセル処理を設定。
0060デフォルトの名無しさん
2008/01/13(日) 02:18:20どのようにすればよろしいのでしょうか?
0061デフォルトの名無しさん
2008/01/13(日) 02:21:26log4net
0062デフォルトの名無しさん
2008/01/13(日) 02:26:470063デフォルトの名無しさん
2008/01/13(日) 02:35:51内部に取り込む?
0064デフォルトの名無しさん
2008/01/13(日) 02:39:23自分でやる。定番のルーチンだと思うけど。
以前の領域かどうか判別して、同じなら何もしない。
違ったらtoolTip.Active をいったんfalse にしといてSetToolTip設定、
Active をtrueに。
0065デフォルトの名無しさん
2008/01/13(日) 02:42:15ユーティリティクラスの静的メソッドで書けばよかろうもん
0066デフォルトの名無しさん
2008/01/13(日) 04:52:46右クリックメニューに独自処理を追加したいけど難しそうなので、独自処理+標準のコピーペーストとかをもつ
メニューを作りたいと思っています。
0067デフォルトの名無しさん
2008/01/13(日) 04:57:15http://bbs.wankuma.com/index.cgi?mode=al2&namber=9353&KLOG=22
さんざん探してから書いたのに、書き込み後、一発目の検索で発見。
しかも、普通にメソッドで用意されてた。
0068デフォルトの名無しさん
2008/01/13(日) 06:30:260069デフォルトの名無しさん
2008/01/13(日) 07:19:16ttp://msdn2.microsoft.com/ja-jp/library/default.aspx
0070デフォルトの名無しさん
2008/01/13(日) 11:04:34普通にTraceかTraceSource使えば?
0071デフォルトの名無しさん
2008/01/13(日) 12:02:17GripStyle=hiddenです。
ロックかけてもお構いなし。なにか良い回避策ありませんか?
C# 2008 Express Editionです。
0072デフォルトの名無しさん
2008/01/13(日) 13:05:39Itemには、No1〜No5までの5つの文字があって
ComBoBoxのテキストには(選択してください)
という文字列が入っています
この時、プルダウンメニューからアイテムを選択しなかった時は
ComboBox.Textには(選択してください)が入ってしまうのでしょうか?
またアイテムが選択されてる状態の時は、ComboBox.Textで取得できるのでしょうか?
0073デフォルトの名無しさん
2008/01/13(日) 13:30:080074デフォルトの名無しさん
2008/01/13(日) 15:03:010075デフォルトの名無しさん
2008/01/13(日) 17:13:08foreach中に配列の要素を消したい時、一番スマートなやり方としてはどんな物が有るでしょうか?
どうしてもforeachが2回以上必要な気がします。
プログラミングがうまい人ならもっとマシな方法をしていませんでしょうか?
下に目的の代換えソースを書いてみました。
//あまり綺麗では無いと思う例---
/*
「予期しない動作を防ぐため、コレクション内容の変更には使用しないでください。」という制限の為
削除する要素へのキーを別途用意した配列に入れてその配列を"又"foreachしています。
*/
foreach(OBJ val in table)
{
if (val.needDel) delArray.Add(val.key);
}
foreach(key key in delArray) //
{
table.Remove(key)
}
delArray.Clear()
0076デフォルトの名無しさん
2008/01/13(日) 17:21:010077デフォルトの名無しさん
2008/01/13(日) 17:24:07つ RemoveAll()
0078デフォルトの名無しさん
2008/01/13(日) 17:24:55元がListBoxだったのにそれそっちのけでなんやかややってたなw
0079デフォルトの名無しさん
2008/01/13(日) 17:28:20名前ばっかり気になるw
0080デフォルトの名無しさん
2008/01/13(日) 17:29:350081デフォルトの名無しさん
2008/01/13(日) 17:34:54アイテムで削除すると同じキーが複数存在した場合にうまくいかんぞ。
0082デフォルトの名無しさん
2008/01/13(日) 17:35:17そもそも配列はAddもRemoveもできない
0083デフォルトの名無しさん
2008/01/13(日) 17:36:01>76 >78
前スレ見てきました。 C#では
ToList().ForEach(index => listBox1.Items.RemoveAt(index) );
あたりが使えそうですね。 これはつまり匿名メソッド?
>79 >80
borland (Pascal?)から来ました。 var,valとalignはテキストエディタで色分けしています。
0084デフォルトの名無しさん
2008/01/13(日) 17:38:43たしかにあのメソッド名は大変紛らわしいが、アイテムごとに条件を見て
削除するという目的にまさにぴったりなんだが。
0085デフォルトの名無しさん
2008/01/13(日) 17:38:50for (i = list.Count - 1; i >= 0; i--)
{
if (...)
{
list.RemoveAt(i);
}
}
こんな感じかな。
008685
2008/01/13(日) 17:42:130087デフォルトの名無しさん
2008/01/13(日) 17:43:220088デフォルトの名無しさん
2008/01/13(日) 17:54:26ヘルプが2割も理解できてませんが、List<T>::RemoveAllが良いのですね?
Delegateを返す関数を作ってvalueに入れる??
どうでも良い話。自分が一昔前にborlandつかってた頃のソースは小文字のみでした。
何処で聞いたんだっけな?
0089デフォルトの名無しさん
2008/01/13(日) 17:54:26table.RemoveAll(x => x.needDel)
といったところか
0090デフォルトの名無しさん
2008/01/13(日) 17:55:27ありがとう。 まとまりました。
0091デフォルトの名無しさん
2008/01/13(日) 18:17:250092デフォルトの名無しさん
2008/01/13(日) 18:25:380093デフォルトの名無しさん
2008/01/13(日) 18:28:060094デフォルトの名無しさん
2008/01/13(日) 18:28:590095デフォルトの名無しさん
2008/01/13(日) 18:33:320096デフォルトの名無しさん
2008/01/13(日) 18:49:220097デフォルトの名無しさん
2008/01/13(日) 18:57:390098デフォルトの名無しさん
2008/01/13(日) 19:00:000099デフォルトの名無しさん
2008/01/13(日) 20:25:32.NETのライブラリを探してもないようです。
Win32APIを使うしかないのでしょうか?
0100デフォルトの名無しさん
2008/01/13(日) 20:32:46まあちょっと検索すりゃC#ラッパとかすぐ見つかるだろうけど
0102デフォルトの名無しさん
2008/01/13(日) 21:43:330103デフォルトの名無しさん
2008/01/13(日) 22:10:57Form.Show();
とかってことじゃなくて?もうちょっと具体的に言ってもらえればアドバイスもしやすいと思うよ
0104デフォルトの名無しさん
2008/01/13(日) 22:44:180105デフォルトの名無しさん
2008/01/13(日) 23:07:42C# 2005 Express Editionを使っているのですが、
フォームのAcceptButtonに設定されているボタンの
クリックイベントをキャンセルするには、
どうしたらよいのでしょうか?
private void buttonOK_Click(object sender, EventArgs e)
{
if (エラーチェック)
{
エラーならキャンセル
}
以下略
というようなことがやりたいのですが、
フォームのAcceptButtonに設定されているため、
ウィンドウが消えてしまいます。
AcceptButtonに設定するのをあきらめるしかないのでしょうか?
0106デフォルトの名無しさん
2008/01/13(日) 23:20:250107デフォルトの名無しさん
2008/01/13(日) 23:25:55コントロールが配置しやすくなる設定はできないんでしょうか?
0108デフォルトの名無しさん
2008/01/13(日) 23:34:01formのプロパティーにあるよ。
0109デフォルトの名無しさん
2008/01/13(日) 23:41:20public void myReceive (){
remoteEP = null;
udp.BeginReceive(new AsyncCallback(ReceiveCallback), null);
}
private void ReceiveCallback (IAsyncResult ar){
byte[] ReceivedBytes = udp.EndReceive(ar, ref remoteEP);
}
udpはUDPClient型
remoteEPはIPEndPoint型
こんなかんじでバックグラウンドでUDPの受信待機&受信をするコードを書いてみたんですが、受信待機状態を中断するにはどうしたらいいんでしょうか・・・良い感じのメソッドとかも見つからなくて困ってます。。。
0110デフォルトの名無しさん
2008/01/13(日) 23:42:40むう。。。
ありがとうございます。
0111デフォルトの名無しさん
2008/01/14(月) 00:04:36ツール→オプション→Windowsフォームデザイナ→レイアウト設定でできました
0112デフォルトの名無しさん
2008/01/14(月) 08:02:02x86を明示してビルドすると動くのですが
0113デフォルトの名無しさん
2008/01/14(月) 09:21:2364bit環境ではIntPtrが64ビットになるから、これが影響してないか?
0114デフォルトの名無しさん
2008/01/14(月) 15:33:00こういう時でも律儀に100万バイト分のデータを読み込まないと取得できないのですか?
0115デフォルトの名無しさん
2008/01/14(月) 15:36:57Seekがあるよ。
0117デフォルトの名無しさん
2008/01/14(月) 16:57:24このメソッドを利用して、色々とコピーしてみていると、たまにエラーが出ます。
アクセス権の問題だったりするのですが、例えば
File.Copy(From, To);
このFromを読み込み可能に、Toを読み書き可能にする、というのは無理なんでしょうか?
0118デフォルトの名無しさん
2008/01/14(月) 17:00:24そんな質問してると「日本語でおk」って書かれちゃうと思うぞw
0119117
2008/01/14(月) 17:04:24File.Copy(From,To);
この時、FromとToのアクセス権の設定の問題でエラーが出るのを回避したいです。
どうすれば良いでしょうか?
0120デフォルトの名無しさん
2008/01/14(月) 17:07:31それともアクセス権を回避して無理やり書き込みたいってことか?
0121デフォルトの名無しさん
2008/01/14(月) 17:10:00そんなものに意味などないと思うんですが間違ってるでしょうか……
0122デフォルトの名無しさん
2008/01/14(月) 17:11:100123デフォルトの名無しさん
2008/01/14(月) 17:13:19同じことだと思いますが……
設定して「無理に」横車を押したい、と
0124デフォルトの名無しさん
2008/01/14(月) 17:16:07どう考えても設定間違ってるだろw
0125デフォルトの名無しさん
2008/01/14(月) 17:16:29設定を変えるのは無理そうですね、ファイルアクセス権に限ってというよりファイルアクセス権だからなのかな
世のバックアップソフトは一体どうなってるんだろう
0126デフォルトの名無しさん
2008/01/14(月) 17:16:29それも反応早いし、このスレもういらないだろ正直
0127デフォルトの名無しさん
2008/01/14(月) 17:17:23なるほど。拡張子がいかなるものであろうと、テキストファイルやHTMLファイルみたいな
テキスト主体のデータをファイルに保存するにはテキスト形式で書き出し、
画像ファイルや音楽、動画ファイルといったデータを保存するにはバイナリ形式で書き出せば良かったのですね。
あとは書き出したい内容を然る場所に書けば、と。
その節は大変お騒がせして、お恥ずかしい(*^ ^*;
(報告したかっただけなので、流してくださって構いません)
0128デフォルトの名無しさん
2008/01/14(月) 17:19:27揚げ足取りってw
俺はそうは思わないけど、君がそう思うのなら自分の言葉に責任持てよ。
つまり揚げ足取りではない(繰り返すけど揚げ足とってるつもりないぞ)、
真面目な回答をぜひ頼むよ。
それとも自分棚上げ野郎なのか君は。
0129デフォルトの名無しさん
2008/01/14(月) 17:25:46円の内側は塗りつぶしができるのですが,
円の外側を塗りつぶしたい時はどうしたらいいでしょうか
0130デフォルトの名無しさん
2008/01/14(月) 17:31:12アクセス権の存在意義について考えろ。
アクセス権をオーバーライドできたらアクセス権の意味がないだろ。
バックアップソフトは普通はアドミン権限で実行する。
>>129
円の形でクリッピングして塗りつぶせばいいんじゃね?
0131デフォルトの名無しさん
2008/01/14(月) 17:38:45解決しました。
ありがとうございます。
勉強になりました。
0132デフォルトの名無しさん
2008/01/14(月) 17:44:37個々のkyedownイベントでとる方法とPreviewKeyDownのどちらが良いのでしょうか?
ふつうにkeydownで所得できるようなイベントの時はどっちでも同じ?
0133デフォルトの名無しさん
2008/01/14(月) 18:49:210134デフォルトの名無しさん
2008/01/14(月) 19:31:44スクロールを操作してキャプチャを試みています。
コントロールを指定して画像を取得することができたのですが
スクロールは制御すらできません。
なにかよい助言をしていただけませんか?
0135デフォルトの名無しさん
2008/01/14(月) 20:31:46また揚げ足かよ!と思ったら、その上も所得と書いてる・・・
たぶん132はガチでずっと、取得を所得と思って使ってきたんだろねw
>>132
2.0以降なら、PreviewKeyDownで取得すべき。
KeyDownは発生しないキーがある(IsInputKeyプロパティで発生可になるけど)
0136デフォルトの名無しさん
2008/01/14(月) 20:49:19揚げ足を取られるのは、アホな質問をした場合に限られる。
まともな質問であればまともな回答が返ってくる。
とられた場合はまずは自分がアホなことを言っていないかを振り返ってみよう。
0137134
2008/01/14(月) 21:19:13いろいろ調べてみましたが,具体的にどのようにしたらいいのか
さっぱり分かりませんでした。
0138デフォルトの名無しさん
2008/01/14(月) 21:21:430139デフォルトの名無しさん
2008/01/14(月) 21:21:44Opacityオプションで半透明にすると、Form上のLabelなどの文字やButtonまで半透明になってしまいます。
0140デフォルトの名無しさん
2008/01/14(月) 21:25:58TransparencyKey
0141デフォルトの名無しさん
2008/01/14(月) 21:27:47TransparencyKeyでは完全に透明になってしまうのですが…
0142デフォルトの名無しさん
2008/01/14(月) 21:31:160143デフォルトの名無しさん
2008/01/14(月) 21:38:53DeflateStream はRFC1951、GZipStream はRFC1952を使ってるらしくてうまく解凍できない。
他にzlibに関わるクラスも見当たらないし、もしかしてC#じゃできない?
0144デフォルトの名無しさん
2008/01/14(月) 21:40:27CでできるんだったらC#でもDllImport使えばできる
0145デフォルトの名無しさん
2008/01/14(月) 22:21:360146デフォルトの名無しさん
2008/01/14(月) 22:51:160148デフォルトの名無しさん
2008/01/14(月) 23:26:390149109
2008/01/15(火) 00:09:52ありがとうございます。
具体的には、ボタンが押された時にポートを解放(?)してudpを破棄したいということです。
実装としては
udp=new UdpClient(port);としているんですが、ユーザの入力でポートを変更することも出来るようにしたいんです。
とりあえず今日いろいろ考えた末、
ポートを変更するときに呼ばれるメソッドを
public void ChangePort () {
udp.Close();
udp = new UdpClient(port);
myReceive;
}
として、無理矢理破棄して、ReceiveCallback内をtry〜catchで起こった例外を全て無視するようにして一応動いたんですが、あまりにも邪道すぎる気がします。。。
0150デフォルトの名無しさん
2008/01/15(火) 00:14:11いやもそれでほぼオケじゃね?
例外を全て無視じゃなくて外からClose()された時の例外だけ無視するようにすれば。
0151109
2008/01/15(火) 00:36:04あ゛・・・
これでよかったんですね。例外は基本的に全て処理するべきなのかなぁって思い込みがありました(´・ω・)
とりあえずArgumentExceptionと、タイミングによってはObjectDisposedExceptionがスローされるみたいなんで、これらを無視するようにしておきました。
ありがとうございました。
0152デフォルトの名無しさん
2008/01/15(火) 00:53:30C#で文法のことはいいとしてライブラリのことが知りたいんだけど
いい情報源教えてください。
http://dobon.net/
は読みました。
とりあえず
プログラミングMicrosoft .NET Framework 第2版 (マイクロソフト公式解説書) (単行本)
は買ってみようと思います、
よろしくお願いします。
0153デフォルトの名無しさん
2008/01/15(火) 01:15:19MSDN
0154デフォルトの名無しさん
2008/01/15(火) 02:33:43したらいいかわからないものが出てきた(ファイルとか)ので、ゴミ箱クラス作って
そこで一括管理しようと思ったのですが、対象となる変数の参照カウンタって
取得できないのでしょうか?
やっぱり自分で皮をかぶせるしかないですかね?
0155デフォルトの名無しさん
2008/01/15(火) 02:40:28LRのガーベジコレクタは参照カウント方式じゃないぞ
0156デフォルトの名無しさん
2008/01/15(火) 02:40:590157デフォルトの名無しさん
2008/01/15(火) 02:48:42ありゃ、そうなんですか… orz
今ざっと調べたところ、Finalize()を積んでおけばGCが勝手に実行
してくれるみたいなんですが、どうしてもDispose出来ないときは
それでいいんですかね?
0158デフォルトの名無しさん
2008/01/15(火) 04:03:32ところで 「やり直し等の機能」 って何?
0159デフォルトの名無しさん
2008/01/15(火) 06:24:53アンマネージリソースを扱うなら、必ず適切なタイミングで
Disposeを呼ぶような設計しなきゃ駄目だよ。
細かい話が多いので割愛するけど、
ファイナライザに頼るスタイルは色々問題があるのヨ。
ぶっちゃけマネージドな世界では、例えばC++において参照カウンタ式スマートポインタで
自動化できてたリソース管理の一部は使えなくなると思っていた方が良いかと。
0160デフォルトの名無しさん
2008/01/15(火) 06:30:02Label1.Text = DirectCast(Me.PreviousPage.FindControl( _
"TextBox1"), TextBox).Text
をC#で書くにはどうしたらいいですか?
0161デフォルトの名無しさん
2008/01/15(火) 07:42:540162デフォルトの名無しさん
2008/01/15(火) 08:30:22ペイントなどに良くあるやり直し・元に戻す操作です。
>>159
やっぱり自前でDisposeしなきゃだめなんですね…
ちょっと基本設計見直してきます orz
0163デフォルトの名無しさん
2008/01/15(火) 14:07:03Form1内で
Form2 f2 = new Form2();
f2.ShowDialog();
でForm2を呼び出した後にf2内のbutton_Clickイベント処理内でf2の中のテキストボックスや、コンボボックスの値をForm1で取得したいのですが
どうしたらよいでしょうか?
0164デフォルトの名無しさん
2008/01/15(火) 15:56:14イベントデリゲート自分で定義してテキストやコンボボックスの値をEventArgsにつっこむか
またはプロパティで公開しとく
0165デフォルトの名無しさん
2008/01/15(火) 16:31:400166デフォルトの名無しさん
2008/01/15(火) 16:39:14//Form2.cs
public event EventHandler HogeEvent;
private void button_Click( object sender, EventArgs e )
{
if( this.HogeEvent != nul )
this.HogeEvent( this, EventArgs.Empty ); // ← ココ
}
-------------------------------------------
//Form1.cs
...
Form2 f2 = new Form2();
f2.HogeEvent += new EventHandler( f2_HogeEvent );
...
private void f2_HogeEvent( object sender, EventArgs e )
{
//ココが呼ばれる
}
0167デフォルトの名無しさん
2008/01/15(火) 18:47:13これは何をしているのでしょうか?
form1では
private void button_add_Click(object sender, EventArgs e)
{
Addition add = new Addition();
add.ShowDialog();
}
でform2(Addition)を呼び出し、手動で、form2内のテキストエリアやコンボボックスに入力してOKボタンを押す
そのとき、したのイベントに遷移して、このメソッド内で、form1内のデータグリッドを更新できないか?ということなんですが。
private void button_OK_Click(object sender, EventArgs e)
{
}
0168デフォルトの名無しさん
2008/01/15(火) 18:52:380169デフォルトの名無しさん
2008/01/15(火) 19:03:28初めてコンソールアプリを作ろうとしているのですが、
エクスプローラーからコマンドプロンプトにディレクトリパスをD&Dで使わせようと思っています。
そのとき、長いフォルダ名を含む場合、絶対パスを表す文字列がダブルクォーテーションで囲まれてしまいます。
そのため、"入力文字列補正処理"を入れるようにしましたが、なんだかスッキリしません。
皆様どうやってやってますか?
以下にソースを書きます。宜しくお願いいたします。
0170169
2008/01/15(火) 19:04:04{
string[] str; //検証用変数
string Input, Output; //フォルダパス
Console.WriteLine("入力フォルダパスを入力して下さい");
//入力文字列補正
str = Console.ReadLine().Split(new char[] {'\"'});
if (str.Length == 3) { Input = str[1]; }
else { Input = str[0]; }
Console.WriteLine("出力フォルダパスを入力して下さい");
//入力文字列補正
str = Console.ReadLine().Split(new char[] { '\"' });
if (str.Length == 3) { Output = str[1]; }
else { Output = str[0]; }
if (Directory.Exists(Input) & Directory.Exists(Output))
{
Console.WriteLine("valid");
Console.ReadLine();
}
else
{
Console.WriteLine("invalid");
Console.ReadLine();
}
}
0171デフォルトの名無しさん
2008/01/15(火) 19:07:37form2でセットするんじゃなくて、form2はセットさせたい項目をpublicなプロパティで返すようにする
form1でDialogResultをチェックしてform2のプロパティからセットするのが正解
0172デフォルトの名無しさん
2008/01/15(火) 19:07:400173デフォルトの名無しさん
2008/01/15(火) 19:18:45個人で作ってるだけでプロパティ作るのが面倒くさかったら、
form2の該当の入力フィールド(textBoxとか)のModifiersをPublicにするのも手だけど
0174デフォルトの名無しさん
2008/01/15(火) 19:22:07丁寧にありがとうございます。
>>セットさせたい項目をpublicなプロパティで返すようにする
というのがいまいちわかりません。
ソース載せます。
//form1(Main)
public partial class Main : Form
{
public Main(){
InitializeComponent();
}
private void button_add_Click(object sender, EventArgs e) {
Addition add = new Addition();
add.ShowDialog();
}
}
//form2(Additon)
public partial class Addition : Form
{
public Addition() {
InitializeComponent();
}
private void button_OK_Click(object sender, EventArgs e) {
//MessageBox.Show(textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text);
}
}
0175デフォルトの名無しさん
2008/01/15(火) 19:24:50{
public string 結果 { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; }
}
0176デフォルトの名無しさん
2008/01/15(火) 19:24:57publicにしたら、Form1.csの補完機能からform2のコントロールが見えました!
ありがとうございます!
0177175
2008/01/15(火) 19:25:16public string 結果 { get { return textBox_name.Text+"\n"+ comboBox1.Text+"\n"+textBox1.Text; } }
0178デフォルトの名無しさん
2008/01/15(火) 19:37:02まことに簡単な質問で恐縮なのですが、DataGridViewのculomnsのプロパティで
オートインクリメントをしたい列があるのですが、どうすればよいでしょうか?
よろしくお願いいたします。
0179デフォルトの名無しさん
2008/01/15(火) 20:33:34な、何を言ってるのかね?
0180デフォルトの名無しさん
2008/01/15(火) 20:53:51ただファイルを開くとかくらいなら、
ダブルクォーテーションがあっても問題なかった気がするけど。
0181デフォルトの名無しさん
2008/01/16(水) 10:43:24dos窓でドロップやったことないのか?
スペース含むパス取り込むためにデフォルトで""囲みになるのが普通だよー
0182デフォルトの名無しさん
2008/01/16(水) 11:16:560183デフォルトの名無しさん
2008/01/16(水) 11:40:31情報しか見つける事ができませんでした。
何か参考になる本やサイトなど知っていたら紹介して貰えませんか?
0184デフォルトの名無しさん
2008/01/16(水) 12:33:030185169
2008/01/16(水) 13:21:32そうだと思ったんですが、パスを変数に格納した後にフォルダの存在確認を>>170の下の方で
行っているんですが、""つきのパスだと存在しないよって言われちゃうんですよ。
>>182
調べてみます
0186デフォルトの名無しさん
2008/01/16(水) 13:51:480187デフォルトの名無しさん
2008/01/16(水) 14:00:080188デフォルトの名無しさん
2008/01/16(水) 14:38:39質問なのですが、テキストファイルに
1 200
2 356
3 1250
4 870
5 692
といったような行列があり、それをC#のプログラムで読み込み
1000以上の値を持つものだけピックアップすることはできるでしょうか。
ピックアップした後に計算もしたいので、変数にその値を代入したいのです。
よろしくお願いします。
0189デフォルトの名無しさん
2008/01/16(水) 15:00:03ReadLineして
パースすればいい
0190デフォルトの名無しさん
2008/01/16(水) 15:01:21from line in File.ReadAllLines(@"...")
from str in line.Split(' ')
let value = Int32.Parse(str)
where value >= 1000
select value;
0191デフォルトの名無しさん
2008/01/16(水) 15:05:510192169
2008/01/16(水) 15:46:16StreamReader sr = new StreamReader(filepath);
List<int[]> list = new List<int[]>();
do
{
string str = sr.ReadLine();
if (str != "")
{
string[] ary = str.Split(new char[] { ' ' });
int n1 = int.Parse(ary[0]);
int n2 = int.Parse(ary[1]);
if (n2 > 999)
{
list.Add(new int[] { n1, n2 });
}
}
}
while (sr.Peek() != -1);
0193169
2008/01/16(水) 15:51:20splitを使って面倒なことをしてましたが、
Trim(もしくはReplaceでも可)を使って少しコードがすっきりしました。
ありがとうございました。
Console.WriteLine("入力フォルダパスを入力して下さい");
Input = Console.ReadLine().Trim(new char[] { '\"' });
Console.WriteLine("出力フォルダパスを入力して下さい");
Output = Console.ReadLine().Trim(new char[] { '\"' });
if (Directory.Exists(Input) & Directory.Exists(Output))
{
Console.WriteLine("valid");
Console.ReadLine();
}
else
{
Console.WriteLine("入力したフォルダパスが不正です");
Console.ReadLine();
}
0194デフォルトの名無しさん
2008/01/16(水) 21:00:020195デフォルトの名無しさん
2008/01/16(水) 21:20:34VS2005 .netでプログラムしていますが、HOMEPATHの取得法はあるのでしょうか?
もしあるならば方法をご教授ください。
よろしくお願いします
0196デフォルトの名無しさん
2008/01/16(水) 21:23:02Environment.GetEnvironmentVariable( "HOMEPATH" );
0197デフォルトの名無しさん
2008/01/16(水) 21:27:22どっちも改行するわけだが動違うの?
0198デフォルトの名無しさん
2008/01/16(水) 21:31:50サイズが違う。
0199デフォルトの名無しさん
2008/01/16(水) 21:38:14Unix:\n
Windows:\r\n
Mac:\r
ってか基本だと思うけど。
0200デフォルトの名無しさん
2008/01/16(水) 21:40:24トンクス
Cとかだと\nが改行だから\r\nって何かと思ってたんだが
Windowsなら\r\nでいいってことでつね
0201デフォルトの名無しさん
2008/01/16(水) 21:46:35Cは、テキストモードだと、\nは\r\nに変換される。(winでは)
0202デフォルトの名無しさん
2008/01/16(水) 21:52:10ありがとうございました。無事解決です
0203デフォルトの名無しさん
2008/01/16(水) 22:09:14どうでもいい話ではあるんだが意味的に言うとWinがたぶん正しい
なのでhttpとかも\r\n。この辺はCRとLFを調べてみれ
0204デフォルトの名無しさん
2008/01/16(水) 22:28:130205デフォルトの名無しさん
2008/01/16(水) 22:57:060206デフォルトの名無しさん
2008/01/16(水) 23:00:210207デフォルトの名無しさん
2008/01/16(水) 23:16:31ラインフィニッシュ?
0208デフォルトの名無しさん
2008/01/16(水) 23:20:380209デフォルトの名無しさん
2008/01/16(水) 23:21:27LF=ラインフィード=紙送り。
0210デフォルトの名無しさん
2008/01/17(木) 00:53:22たとえば、こういうコードがあったとします。
if (Result == null) {
transaction.Rollback();
MessageBox.Show("エラー0です。");
return false;
}
if ((int)Result == 1) {
transaction.Rollback();
MessageBox.Show("エラー1です。");
return false;
}
if ((int)Result == 2) {
transaction.Rollback();
MessageBox.Show("エラー2です。");
return false;
}
transaction.Commit();
return true;
これをスッキリ表記するのに何かいい手段はないですかねぇ…。
throwで例外起こしてtry〜catchってのもスッキリしなくて…
0211デフォルトの名無しさん
2008/01/17(木) 01:08:540212デフォルトの名無しさん
2008/01/17(木) 01:13:400213デフォルトの名無しさん
2008/01/17(木) 01:20:460214デフォルトの名無しさん
2008/01/17(木) 01:27:18result = (Result == null) ? 0 : (int)Result;
switch(result){
case 0:
case 1:
case 2:
transaction.Rollback();
string temp = "エラー" + result + "です。";
MessageBox.Show(temp);
return false;
break;
default:
transaction.Commit();
return true;
break;
}
0215デフォルトの名無しさん
2008/01/17(木) 01:39:340216デフォルトの名無しさん
2008/01/17(木) 09:07:05しかし不必要なbreakを強要されるのが面倒くさいな。
Cの文法に慣れてる人がバグを作らないようにってことなのかな。
0217デフォルトの名無しさん
2008/01/17(木) 09:10:590218デフォルトの名無しさん
2008/01/17(木) 09:22:090219デフォルトの名無しさん
2008/01/17(木) 13:16:16自分よく分かってないんですが
typedef struct tagDESKBANDINFO {
DWORD dwMask;
POINTL ptMinSize;
POINTL ptMaxSize;
POINTL ptIntegral;
POINTL ptActual;
WCHAR wszTitle[256];
DWORD dwModeFlags;
COLORREF crBkgnd;
} DESKBANDINFO;
の WCHAR wszTitle[256];って
[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Unicode)]
にした上で
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=256)]
string wszTitle;
じゃないんですか?
http://www.pinvoke.net/default.aspx/Structures/DESKBANDINFO.html
とかだと255になってるんですがどっちが正しいんでしょう?
0220デフォルトの名無しさん
2008/01/17(木) 13:16:550221デフォルトの名無しさん
2008/01/17(木) 13:20:25http://msdn2.microsoft.com/ja-jp/library/795sy883(VS.80).aspx
文字列のマーシャリングだと
TCHAR szCSDVersion[ 128 ];
↓
[ MarshalAs( UnmanagedType.ByValTStr, SizeConst=128 )]
String versionString;
になってるしワケワカリマセン
0222デフォルトの名無しさん
2008/01/17(木) 13:20:51256であってる
0224219
2008/01/17(木) 13:30:11さらにワケワカメ
アラインとかPackとかのせいですか?
ということは実害なし?
0225デフォルトの名無しさん
2008/01/17(木) 18:06:120226デフォルトの名無しさん
2008/01/17(木) 18:08:57C#でGTKといったらMono?
Monoスレに行かないといないかもしれない。
0227デフォルトの名無しさん
2008/01/17(木) 18:11:31すみません、ありがとうございました。
0228デフォルトの名無しさん
2008/01/18(金) 01:31:530229210
2008/01/18(金) 02:17:47ありがとうございます。
これで試してみます。
0230デフォルトの名無しさん
2008/01/18(金) 03:32:280231デフォルトの名無しさん
2008/01/18(金) 03:46:58pictureboxに表示する画像のリソースを指定するときは
this***.Image = Properties.Resources.abc;
のようにしますが(というかVSが勝手にやってくれますが)
これを文字列型の変数を使ってやることはできないでしょうか?
string TMP;
TMP = "abc";
として5行目と同じように指定したいのです。
0232デフォルトの名無しさん
2008/01/18(金) 06:06:540233デフォルトの名無しさん
2008/01/18(金) 07:02:540234デフォルトの名無しさん
2008/01/18(金) 07:27:360235デフォルトの名無しさん
2008/01/18(金) 09:13:14>>234
リソース名が連続した英数字なので、for文で数十の文字列の配列を作ったんですが、それをリソース名の指定に使う方法が分からなくて・・・
手動でやるよりはるかに効率的だと思うので、できればさわりだけでも簡単に教えてもらえればと
>>233
では、結局出来ないということになるんでしょうか・・・?
0236デフォルトの名無しさん
2008/01/18(金) 09:21:160237デフォルトの名無しさん
2008/01/18(金) 10:18:33XLinqでも使ってみれば
0238188
2008/01/18(金) 11:19:39ありがとうございました。
0239デフォルトの名無しさん
2008/01/18(金) 15:01:23byte[] b2 = new byte[] {1,2,3,4};
があったとして、2つの配列の内容が全て等しいか簡単に調べる方法ってないですか?
b1 == b2;
も
b1.Equals(b2);
もfalseになります(´・ω・)
やっぱいちいちforeachで回さないとダメですか?
0240デフォルトの名無しさん
2008/01/18(金) 15:04:53Array.Equals は object.Equals と変わらんからな
0241デフォルトの名無しさん
2008/01/18(金) 15:06:27出来ないみたいですねorz
お騒がせしました。
0242デフォルトの名無しさん
2008/01/18(金) 15:09:45親クラスで共通の処理をさせたいのですがどうすればいいでしょうか
うまく説明できないんですがポリモーフィズム的なメソッドの共通処理を
継承クラスでは意識せずに親で処理させたいのですが・・・
0243デフォルトの名無しさん
2008/01/18(金) 15:24:50virtual void Hoge()
{
...
}
//子
override void Hoge()
{
...
base.Hoge();
}
じゃあかんのん?
0244デフォルトの名無しさん
2008/01/18(金) 15:27:51やっぱりそうなりますかね
base.Hoge()の処理は必ずして欲しいのに
base.Hoge();を付け忘れちゃったりするものですから
0245デフォルトの名無しさん
2008/01/18(金) 16:21:12Hoge のなかで HogeOverridable を呼ぶ
ただし派生クラスで基底クラスの処理の呼び出す位置を変更できないデメリットもある
0246231
2008/01/18(金) 19:49:57http://www.atmarkit.co.jp/fdotnet/dotnettips/220resources3/resources3.html
を参考に
Assembly thisExe = Assembly.GetExecutingAssembly();
ResourceManager TMPres = new ResourceManager(
"***.Properties.Resources", thisExe);
xxx = (Image)TMPres.GetObject("abc");
とやったらできました。
0247デフォルトの名無しさん
2008/01/18(金) 20:10:420248デフォルトの名無しさん
2008/01/18(金) 23:19:52FormのFormClosingイベントを捕らえて
フォームを閉じることを中止するにはどうすればいいのでしょうか?
以下のように書いてもだめでした。
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("変更を保存しますか?", "確認",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
this.menuSaveProject_Click(sender, e);
}
else if (result == DialogResult.Cancel)
{
return; // ←これ
}
}
よろしくお願いいたします。
0249デフォルトの名無しさん
2008/01/18(金) 23:26:030250デフォルトの名無しさん
2008/01/18(金) 23:28:22とやればいいようですね(´・ω・`)
今までeなんて無視してました
ありがとうございました
0251デフォルトの名無しさん
2008/01/18(金) 23:29:030252デフォルトの名無しさん
2008/01/19(土) 00:16:31があったとして、
この中から特定のIPの項目だけ削除ってどうすればいいんでしょうか。
InteliSenseで見てると
addrs.Except();
とかそれっぽいのはあるんですが、いまいち使い方がわかりません・・・
0253デフォルトの名無しさん
2008/01/19(土) 00:22:22Array.FindAll でもいける
0254252
2008/01/19(土) 01:08:38ありがとうございます。やっぱり作り直ししかないんですね(´・ω・)
でもFindAllのおかげでさっくりいきました。
ありがとうございました。
0255デフォルトの名無しさん
2008/01/19(土) 01:23:460256デフォルトの名無しさん
2008/01/19(土) 01:24:22List<>つかおうぜ
0257デフォルトの名無しさん
2008/01/19(土) 01:32:560258デフォルトの名無しさん
2008/01/19(土) 01:43:530259デフォルトの名無しさん
2008/01/19(土) 01:45:390260デフォルトの名無しさん
2008/01/19(土) 01:47:58( ^ω^)・・・
0261デフォルトの名無しさん
2008/01/19(土) 02:05:44(^ω^;)⊃ アウアウ!!
⊂ミ⊃ )
/ ヽ
0262デフォルトの名無しさん
2008/01/19(土) 02:47:030263デフォルトの名無しさん
2008/01/19(土) 05:04:380264デフォルトの名無しさん
2008/01/19(土) 05:08:48実装に因る
てか少なくとも配列を使うのよりは高性能に作られているとうれしい(ビクンビクン
0265デフォルトの名無しさん
2008/01/19(土) 05:10:29実装見ろよ
0266デフォルトの名無しさん
2008/01/19(土) 05:55:24ランダムアクセスできないけど。
0267デフォルトの名無しさん
2008/01/19(土) 06:37:57> ランダムアクセスできないけど。
それが答えだ。
0268デフォルトの名無しさん
2008/01/19(土) 09:28:45ランダムアクセスにむいてないだけ。
0269デフォルトの名無しさん
2008/01/19(土) 09:57:04インスタンスを変えたくない場合は、Clearして一つずつAddし直すしかないのでしょうか?
0270デフォルトの名無しさん
2008/01/19(土) 09:58:58データを参照するより削除と挿入の方が多いならLinkedList だろうし、
頭からforeachしたりインデクスでアクセスする必要があるならList。
目的に応じて使い分ければ済むという当たり前のことだろ。
0272デフォルトの名無しさん
2008/01/19(土) 10:14:14ahosugi
0273252
2008/01/19(土) 10:40:42なんかごめんなさいです。
配列っていろいろ考えとかないといけないんですね。要素もすくないし、参照より削除や挿入が多いと思うんで、LinkList使ってみようかなと思います。ググってみます。ありがとうございました。
0274252
2008/01/19(土) 10:43:270275デフォルトの名無しさん
2008/01/19(土) 14:51:22そこでB*木とかRB木とかですよ
0276デフォルトの名無しさん
2008/01/19(土) 14:56:47要素数少なそうとも思ったのでむしろListでいい気もしたので
言わなかった
0277デフォルトの名無しさん
2008/01/19(土) 15:14:25すみませんあれからいろいろやってみたのですが
class kitei
{
public void Hoge()
{
基底の処理;
派生Hoge呼び出し;
}
}
class hasei : kitei {
public virtual void Hoge()
{
派生の処理;
}
}
ということ感じになるのでしょうか
基底からの派生hogeのやり方がわからず詰まってしまいました
0278デフォルトの名無しさん
2008/01/19(土) 15:18:070279デフォルトの名無しさん
2008/01/19(土) 15:29:27共通でない処理を切り分けてvirtualメソッドを作って
基底で
public void Hoge()
{
基底の処理;
HogeSub();
}
public virtual void HogeSub()
{
}
という風にせよということでしょうか。
メソッド一つで自動的に裏で共通処理できたらいいなーと思ったんですが
使用者が何をするのか明示的に指示するのが正解か
0280デフォルトの名無しさん
2008/01/19(土) 15:37:21>メソッド一つで自動的に裏で共通処理できたらいいなー
良くないだろ怖いよそんなのw
っていうか、チミは普通に継承の意味が分かってないだけとちゃうんかと
0281デフォルトの名無しさん
2008/01/19(土) 15:44:55確かにそのとおりなんですよね…
派生を多人数が使うときにちゃんと規定どおりに使ってくれない場合があるもんで
もう強制自動処理にならんかなーと思った次第です…
0282デフォルトの名無しさん
2008/01/19(土) 15:57:57テンプレートメソッド的な工夫ではダメなの?
つまりテンプレートメソッドから呼び出されるメソッドの方をabstractなりvirtualに
すればよくない?
0283デフォルトの名無しさん
2008/01/19(土) 16:02:35具体的に言うとちょっと極端な例ですが
データ入力して保存するという共通処理で
親
public void ClickSaveButton() {
入力チェック()
データ保存()
ログ出力()
}
abstract void 入力チェック()
abstract void データ保存()
abstract void ログ出力()
とやるとabstractなんでそれぞれの実装は一応してくれんるんだが
セーブボタンを押したときClickSaveButtonを呼び出して欲しいのに
データ保存()だけ入れるやつとかいるんですよ
0284283
2008/01/19(土) 16:12:27親
public void ClickSaveButton() {
入力チェック()
データ保存()
ログ出力()
}
abstract void 入力チェック()
abstract void データ保存()
private void ログ出力() //共通処理
いい子
セーブボタン_Click {
ClickSaveButton()
}
だめな子
セーブボタン_Click {
データ保存()
}
セーブボタン_Click {
入力チェック()
データ保存()
}
0285デフォルトの名無しさん
2008/01/19(土) 16:15:480286デフォルトの名無しさん
2008/01/19(土) 16:20:51まあどうしてもということなら、その例ならSaveButtonClickedイベントを持つ
インターフェイスをコンストラクタに取るようにする、みたいな姑息な
対策はできるんじゃない?
0287デフォルトの名無しさん
2008/01/19(土) 16:28:03自分でもよんでもよくわからない例でした・・・
つまり共通処理とabstractな派生の処理を組み合わせたテンプレートメソッドを
作ったんだがテンプレートメソッドを使わないで処理するやつがいるのです。
だからabstractなメソッド一つで共通も派生処理も出来たらなーと思ったのです
て、あーもうだめです日本語でおkです…
0288デフォルトの名無しさん
2008/01/19(土) 17:19:10基底クラスでそう定義しておけばいいんじゃないのか?
0289283
2008/01/19(土) 17:25:35なるほどイベントを使うというのもいいですね
>>288
派生では実装無しですか、それだとすっきりですね
この方式が一番スマートな気がします
0290デフォルトの名無しさん
2008/01/19(土) 18:48:350291デフォルトの名無しさん
2008/01/19(土) 18:54:350292デフォルトの名無しさん
2008/01/19(土) 19:02:51void method(){・・・}
・・・
}
class Derived : Base{
void method(){・・・}
void method2(){・・・}
・・・
}
で、
Base obj = new Derived();
obj.method();
とできるのはなぜ?
これじゃobj.method2()とできないから
Derived obj = new Base();
obj.method();
と書くべきじゃないですか?
0293デフォルトの名無しさん
2008/01/19(土) 19:06:350294デフォルトの名無しさん
2008/01/19(土) 19:06:56そうでしたか…勉強になります
>>291
そうななってしまいますね…そしてそれだも問題なしとなる…
ボタンクリック以外にも場合によってセーブ処理を走らせる必要がある場合の対応と読み替えてください…
0295デフォルトの名無しさん
2008/01/19(土) 19:09:27DerivedよりBaseの方が持ってる情報が少ないのに
型になるのはおかしいということです
Base obj = new Derived();
と書いたら、Derivedのメンバでアクセスできないものがでてきてしまいませんか?
0296デフォルトの名無しさん
2008/01/19(土) 19:12:12多態化から勉強し直せ。
Derivedじゃない他のBaseから派生したクラスを同じ流れで取り扱えるようにだよ。
ちなみにvirtualとoverrideしないと、前者のobj.method();が呼ばれるのはBaseのほうだぞ。
0297デフォルトの名無しさん
2008/01/19(土) 19:15:31なるほど多胎っすか
だったらDerived obj = new Derived();
obj.method();
でいいんじゃないですか?
わざわざBaseを絡ませなくても・・・
0298デフォルトの名無しさん
2008/01/19(土) 19:17:142行目読めよ
0299デフォルトの名無しさん
2008/01/19(土) 19:21:16Base obj1 = new Derived1();
Base obj2 = new Derived2();
Derived1.method();
Derived2.method();
とできるってことですか?
Derived1 obj1 = new Derived1();
Derived2 obj2 = new Derived2();
と同じ挙動だと思うんですが、意味あるんですか?
アクセスできるメンバが減ってるだけだと思うのですが・・・
0300デフォルトの名無しさん
2008/01/19(土) 19:27:24class Hoge : Base{
override void method(){・・・}
・・・
}
というクラスを後から追加しても
Base obj = new Hoge();
obj.method();
でHogeクラスのmethodを呼べるだろ
というかその辺の入門書にもかいてあるだろ・・・
0301デフォルトの名無しさん
2008/01/19(土) 19:30:320302デフォルトの名無しさん
2008/01/19(土) 19:49:25public void Write(Stream stream) {
stream.Write(this.data, 0, this.data.Length);
}
ほらstreamはFileStreamでもMemoryStreamでもGZipStreamでもなんでも持ってこい
0303デフォルトの名無しさん
2008/01/19(土) 19:53:59public void show(object o) {
MessageBox.Show(o.ToString());
}
というメソッドを
show(5);
でも
show(DateTime.Now);
でも呼べるでしょ。そういうこと。
0304デフォルトの名無しさん
2008/01/19(土) 20:09:15そういう間違いそうなのはふらっとに書くなよ
0305デフォルトの名無しさん
2008/01/19(土) 20:15:530306デフォルトの名無しさん
2008/01/19(土) 20:33:25ああなるほど
Streamの例は分かりやすいですね
Streamを継承したクラスの分だけ全部オーバーロードしなくても
勝手にどれでも動くようにできるということですか・・・
ライブラリを使うときは便利そうですけど
自分で設計するのは難しそうですね
0307デフォルトの名無しさん
2008/01/19(土) 20:34:53Base[] array = new array[3];
array[0] = new Base();
array[1] = new Derived1();
array[2] = new Derived2();
foreach(Base t in array){
t.method();
}
0308デフォルトの名無しさん
2008/01/19(土) 20:37:35試せることは試す
0309デフォルトの名無しさん
2008/01/19(土) 21:05:25まったくそのとおり
書いてどうしても通し方がわからなければ聞くのがいいね
0310デフォルトの名無しさん
2008/01/19(土) 21:07:130311デフォルトの名無しさん
2008/01/19(土) 21:08:38安い挑発する前に手を動かせよ
0312デフォルトの名無しさん
2008/01/19(土) 21:09:50死ね
0313デフォルトの名無しさん
2008/01/19(土) 21:11:200314デフォルトの名無しさん
2008/01/19(土) 21:12:56答えろ、糞
0315デフォルトの名無しさん
2008/01/19(土) 21:13:550316デフォルトの名無しさん
2008/01/19(土) 21:19:46>>308
一通り疑問に思ったことはやってみました
Base obj = new Derived();
(obj as Derived).method2();
みたいなことをすればDerivedが持つメソッドも呼び出せるんですね
(なんか危なそうですが)
この場合、objが本当にDerivedのインスタンスじゃないと
実行時エラーになりますね
0317デフォルトの名無しさん
2008/01/19(土) 21:38:11派生クラスのメソッドは呼び出せないようになっている
0318デフォルトの名無しさん
2008/01/19(土) 21:39:21C#のイテレータって違うんだよな
0319デフォルトの名無しさん
2008/01/19(土) 21:47:29こういうのはダウンキャストという
0320デフォルトの名無しさん
2008/01/19(土) 21:58:10asは確信がない時に使うもの
0321デフォルトの名無しさん
2008/01/19(土) 22:51:29確か@ITに猪俣の書いた記事であったから
0322デフォルトの名無しさん
2008/01/19(土) 23:56:54それが多態ということ。
呼ぶ側のコードでは実際の型を知らなくても、
オブジェクト自身が必要な動作をしてくれる。
だからストリームの実体がなんだろうが
使う側のコードは変わらない。
0323デフォルトの名無しさん
2008/01/20(日) 05:21:37当方、VisualStudioを本格的に触るのはVB6.0以来です。
http://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx
↑ ここの性能比較を見たのですが良くわかりません。
特に、プロフェッショナルと比べて大きな違いがあれば教えていただけないでしょうか。
モバイルやofficeプログラミングはいらないのですが、
「クラス デザイナ / オブジェクト テスト ベンチ」、その他が無くて困ることってありますか?
フォームの編集はできるんですよね?
よろしくお願いします。
0324デフォルトの名無しさん
2008/01/20(日) 05:28:12スキル次第。
つーかVSスレで聞け
0325デフォルトの名無しさん
2008/01/20(日) 07:10:03Expressだと全角英数は使えないよ
0326デフォルトの名無しさん
2008/01/20(日) 09:27:380327デフォルトの名無しさん
2008/01/20(日) 09:29:410328デフォルトの名無しさん
2008/01/20(日) 09:30:23気になったのはそれぐらいかな
0329デフォルトの名無しさん
2008/01/20(日) 11:53:12MSは複雑になり過ぎたWinAPIから.netのクラスに
移行するということを.netが出てきた当時聞いたこと
があります。
しかし、現状を見てみると、オーバーヘッドで起動は
遅いし、肝心のところはAPIがないと作成できない、
XPではフレームワークをインストールしないと
ダメだとか、良いところがないような気がします。
C#を含め.net環境は今後どうなるのでしょうか。
今、C#を使ってますが他の開発環境に移行した方が
良いのかなと悩んでいます。
あ、一番聞きたいことはWinAPIがなくなるかどうか
ということでした。
0330デフォルトの名無しさん
2008/01/20(日) 11:57:120331デフォルトの名無しさん
2008/01/20(日) 12:30:21>移行するということを.netが出てきた当時聞いたこと
>があります。
これに関してはWin32APIではなく、
COMで拡張していた各種サービスへのAPIを.NETベースにしようということだった。
これがWin32のAPIと誤解され一人歩きしてた。
そして、おそらくJavaへの牽制のため、MSもエバンジェリストといわれる輩もわざと
誤解が一人歩きするのを放置してた。
0332デフォルトの名無しさん
2008/01/20(日) 12:36:11回答ありがとうございます。
C#スレでこんなことを言うのも何ですが
今更ですが、C#のアドバンテージはどういった
点になりますでしょうか。
そういえば、ソフトウェア誌上でもC#の記事は
少なくなって来たような気がしますし。
0333デフォルトの名無しさん
2008/01/20(日) 12:42:44型チェックが減らせる
0334デフォルトの名無しさん
2008/01/20(日) 13:23:17俺流のアホ回答
ソフト開発の面でいうと、
c++よりjavaのほうがアドバンテージがあった、
javaよりc#のほうがアドバンテージがあった。
0335デフォルトの名無しさん
2008/01/20(日) 14:48:49おまえさんみたいなのにアドバンテージはない
フレームワーク(ランタイムみたいなもん)インストールさせるのが面倒
API叩かないとできないorめんどくさい処理があること
これだけで嫌がる奴なら選択の余地はない。やめとけ。
だいたい、仕事とかで「しかたなく」使ってみたけど
結構いいところがあるのに気づいて個人でも使ってるってやつか
近頃プログラムはじめてたまたま最初にC#を選んだやつだけだろ
あどばんてーじ があるのは
おとなしくC++でWin32APIにしとき
0336デフォルトの名無しさん
2008/01/20(日) 15:24:16MFCは設計が古いし、ATL/WTLは素のAPIよりマシだが面倒くさいのは変わらんし。
0337デフォルトの名無しさん
2008/01/20(日) 15:24:52悪い点は >>329 の通りだが、それ以外はいいこと尽くしだろ。
Vistaが普及して.NET標準装備になってさえくれれば、C#は選択肢としてかなり良くなる気がする。
まあ、Vistaが普及するかが問題なのだが。
0338デフォルトの名無しさん
2008/01/20(日) 16:25:160339デフォルトの名無しさん
2008/01/20(日) 16:41:07WinFSのことなら確かにどこかに逝ってしまった。
0340デフォルトの名無しさん
2008/01/20(日) 16:47:42その前の話なんだけど?
0341デフォルトの名無しさん
2008/01/20(日) 16:55:260342デフォルトの名無しさん
2008/01/20(日) 17:17:01#DLL側
DLLのソリューションにWindows フォームを追加
参照設定にSystem.Windows.Formsを追加
[フォーム名].cs[デザイナ]に表示されるフォームウインドウダブルクリックで[フォーム名].cs作成→ビルド
#コンソールアプリ側
ビルドしたDLLとSystem.Windows.Formsを参照設定から追加、usingにDLLのnamespace追加
コードの中に↓二行を書き加える
[フォームのクラス名] form = new [フォームのクラス名]();
form.ShowDialog();
こんな感じであってますか?
0343デフォルトの名無しさん
2008/01/20(日) 17:18:27ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3171&forum=7
↑みたいな問題って皆さん起きてないの?
0344デフォルトの名無しさん
2008/01/20(日) 17:38:08・ Assembly.GetExecutingAssembly().GetName().Version.ToString();
こちらで取ってくると、 1.1.0.0 1.1.0.0
・ Application.ProductVersion;
こちらで取ってくると、 1.1 1.1
どちらも『アセンブリバージョン』と『ファイルバージョン』がくっついて並んでしまいます・・・
片方だけ取得する方法はありませんか?
@ITには片方コメントアウトするといいと書いてありましたが、
[assembly: AssemblyVersion("1.1")]
//[assembly: AssemblyFileVersion("1.1")]
出力では 1.1.0.0 1.1.0.0と出てきてしまいます。
0345デフォルトの名無しさん
2008/01/20(日) 17:48:47それVS2005でも起きてる?
2002/2003の頃はいろいろあったけど。
0346デフォルトの名無しさん
2008/01/20(日) 17:52:330347デフォルトの名無しさん
2008/01/20(日) 18:03:19AssemblyVersionしか出ないはずだけど。
.NETのバージョンは?
0348344
2008/01/20(日) 18:45:58>>347
開発環境はVS2008 EE(.NET3.5)です。
ためしにVS2005で試してみたところ、
前者・後者の呼び出し方法共にアセンブリバージョンのみ出てきました。
.NET3.5で呼び出し内容が変わったみたいですね・・・。
0349デフォルトの名無しさん
2008/01/20(日) 19:07:25.NET 3.5のみ問題なんならソースよんでみたら?
0350デフォルトの名無しさん
2008/01/20(日) 19:07:30そこは2.0のまんまで変更はない。
0351デフォルトの名無しさん
2008/01/20(日) 19:08:410352344
2008/01/20(日) 19:11:33VS2008 EE(.NET2.0)で試したところ。
変化がありませんでした。
つまりVisualStudio2008側が問題なのでしょうかね。
いい対策案が思いつきません。
0353デフォルトの名無しさん
2008/01/20(日) 19:44:20Console.WriteLine("{0} {0}", Application.ProductVersion); とかやってたりして。
AssemblyFileVersionは 1.0.0.0 の形式になってなくてもエラーにはならない。
[assembly: AssemblyFileVersion("ほげら")] もOK
[assembly: AssemblyFileVersion("1.1 1,1")] とうぜんこれもいける。
0354デフォルトの名無しさん
2008/01/20(日) 19:52:50ありがとうございます。
VistaはPCの買い替えに比例して徐々に普及して
行くことは間違いないので、もうしばらくC#で
行こうかなと思います。
で、APIは無くなると信じていたので、APIをわざと
避けて来たことから、改めて勉強しようかなと
思い始めました。
0355デフォルトの名無しさん
2008/01/20(日) 20:15:020357デフォルトの名無しさん
2008/01/20(日) 20:24:59関数とクラスの違いがよくわかりません。
わかりやすい解説ページがあれば教えてください。
お願いします。
0358デフォルトの名無しさん
2008/01/20(日) 20:29:56まじめに初めから勉強してください
0359342
2008/01/20(日) 20:34:190360デフォルトの名無しさん
2008/01/20(日) 20:51:030361デフォルトの名無しさん
2008/01/20(日) 20:52:26クラスは振る舞いの定義。生成を必要とする。
継承可能。コンストラクタで初期化。
中に関数や変数が含まれる。変数はget set
でアクセス。
0362デフォルトの名無しさん
2008/01/20(日) 20:55:03メンバ変数って要はグローバル変数みたいなもんかな?
0363デフォルトの名無しさん
2008/01/20(日) 20:56:500364デフォルトの名無しさん
2008/01/20(日) 20:57:08グローバルスコープというよりはファイルスコープ
0365デフォルトの名無しさん
2008/01/20(日) 20:57:23まず古典的なcの構造体を理解する。
構造体の意義がわかればクラスの意義や意味はすぐわかると思う。(たぶん)
こういうこというとムキになって反対する人間がいるけど、
やっぱりクラスは構造体の拡張として理解するのが一番理解しやすいと思う。
>>361
そんな抽象的な説明でこういう質問する人間にわかるわけないだろw
0366デフォルトの名無しさん
2008/01/20(日) 21:00:29なるほど
なんかどの関数からもアクセスできたら
Cのグローバル変数みたいに管理しにくくなったりしないのかな?
0368デフォルトの名無しさん
2008/01/20(日) 21:06:28なんか根本からスタイルが違うな。
クラスとして実現したい機能があって
そのためにフィールドやメソッドがある感じ。
クラスは静的な関数の寄せ集めではない
0369デフォルトの名無しさん
2008/01/20(日) 21:06:34だからグローバルちゃうよ、って364はいってるんだと思いますが。。
ひょっとして(案外よくいるんだが)Cとかのファイルスコープの概念を知らないの?
0370デフォルトの名無しさん
2008/01/20(日) 21:09:200371デフォルトの名無しさん
2008/01/20(日) 21:18:41メンバ変数のスコープは各オブジェクト内で完結
ただしstaticなメンバの場合はどこからでもアクセスできる
0372デフォルトの名無しさん
2008/01/20(日) 21:22:570373デフォルトの名無しさん
2008/01/20(日) 21:28:30クラス=ファイル
メンバ=staticグローバル変数
みたいなもんなのかな?
>>369
知ってますよ
でも、案外ファイルの中でも色んな関数から参照されてると
訳分かんなくなりませんか?
0374デフォルトの名無しさん
2008/01/20(日) 21:28:49こんなとこでのやりとりでは理解できるはずがない。
0375デフォルトの名無しさん
2008/01/20(日) 21:29:54インスタンスの分だけ関数が複製されるんですか?
その意味がよくわかんなくて
0376デフォルトの名無しさん
2008/01/20(日) 21:30:08>クラス=ファイル
>メンバ=staticグローバル変数
>みたいなもんなのかな?
悪いけど全然違う
だから真面目に基本から勉強しろと。
C++も使ったことないの?
0377デフォルトの名無しさん
2008/01/20(日) 21:56:18されない
0378デフォルトの名無しさん
2008/01/20(日) 21:56:260379デフォルトの名無しさん
2008/01/21(月) 00:10:53staticをつけないとインスタンスごとに複製される
0380デフォルトの名無しさん
2008/01/21(月) 00:36:050381デフォルトの名無しさん
2008/01/21(月) 01:23:200382デフォルトの名無しさん
2008/01/21(月) 08:57:03配列でLinkLabelを可変で作成しているのですが、クリックしたときの処理で不明な点があります。
linklabel[i]で複数作成して、クリック時のイベントは一括で一つで処理したいのですが、押されたlinklabal対応させる方法がわかりません。
x = 選択したlinklabelのテキスト みたいな感じにしたいのですが、よい方法はないでしょうか?
buttonだとselectとか使うみたいなんですがlinklabelの場合がわかりませんでした。
あらかじめlinklabel1みたいに作っている方法なら載っているサイトが見つかったのですがこの方法のやつが見つかりません。
0383デフォルトの名無しさん
2008/01/21(月) 09:13:500384デフォルトの名無しさん
2008/01/21(月) 09:23:53デザイナで一個置いてイベント設定してdesigner.cs見てみるといいんじゃないか?
0385382
2008/01/21(月) 10:37:11x = ((System.Windows.Forms.LinkLabel) sender).Text;としたところ上手くいきました
参考サイト
http://dobon.net/vb/dotnet/control/buttonarray.html
0386デフォルトの名無しさん
2008/01/21(月) 13:47:00string.Remove(64)
string.Substring(0,64)
のどちらも64文字未満だと例外が起きるようです。
いちいち文字数のチェックをしないでも、一発で切ってくれるメソッドはないのでしょうか?
0387デフォルトの名無しさん
2008/01/21(月) 13:53:06が存在したとしても、それは内部で長さをチェックしている。
ゆえに自分で作ればよい
0388386
2008/01/21(月) 14:02:26ということはやっぱりないんですね。
例外が起きると言うことは内部でもチェックしているはずなので
二重チェックになるのが嫌だっただけです。
拡張メソッドを作ることにしました。ありがとうございました。
0389デフォルトの名無しさん
2008/01/21(月) 14:07:550390デフォルトの名無しさん
2008/01/21(月) 18:26:42「言語統合クエリ」ならわかるけど
0391デフォルトの名無しさん
2008/01/21(月) 18:33:020392デフォルトの名無しさん
2008/01/21(月) 18:34:320393デフォルトの名無しさん
2008/01/21(月) 18:46:31無理やり0除算発生するようにしてるんだが
もっとスマートな方法はないですか?
0394デフォルトの名無しさん
2008/01/21(月) 18:47:400395デフォルトの名無しさん
2008/01/21(月) 18:47:560396デフォルトの名無しさん
2008/01/21(月) 18:49:46else throw new GotoCatchException<String>();
0397デフォルトの名無しさん
2008/01/21(月) 18:52:22設計に問題があるだろ
0398デフォルトの名無しさん
2008/01/21(月) 19:02:25本来例外処理の外に置くべき処理をcatchの中に書いちゃってる、
なんてオチだと推測する。
0399デフォルトの名無しさん
2008/01/21(月) 20:55:41「メッセージ」も文法的な間違いを発見すると表示されるのですか?
0400デフォルトの名無しさん
2008/01/21(月) 21:13:57警告と並列で括弧でくくってある意味がわからん
0401デフォルトの名無しさん
2008/01/21(月) 21:53:03[エラー] [警告] [メッセージ]
のことだろう。
俺もまだ見たことないな。
0402デフォルトの名無しさん
2008/01/21(月) 22:52:07try
処理1
処理2
catch(ex1)
エラー1
catch(ex2)
エラー2
catch()
想定外エラー
で処理1と2は戻り値無しでNG時にex1とex2をthrowする
って使い方は邪道?
例外は関数エラーに使うべきじゃなかたりする?
0403デフォルトの名無しさん
2008/01/21(月) 22:57:220404デフォルトの名無しさん
2008/01/21(月) 22:58:440405デフォルトの名無しさん
2008/01/21(月) 23:22:080406デフォルトの名無しさん
2008/01/21(月) 23:30:160407デフォルトの名無しさん
2008/01/22(火) 02:27:48いちいちコンパイルとかウザいし。
0408デフォルトの名無しさん
2008/01/22(火) 02:35:52そうでもないキガす。
とりあえず例外処理に関してテスト条件なんて作らずに
投げたらどうなるんだか見てみたいなんて話はあるかも
しれない。 これはテストをはしょるズボラな俺だけか。
0409デフォルトの名無しさん
2008/01/22(火) 06:50:59する方法はありませんか。
ブラウザコンポーネントで例えば
document.write("abc")と書かれていれば
このabcを取得したいとのですが。
0410デフォルトの名無しさん
2008/01/22(火) 08:47:29[エラー] [警告] [メッセージ]の[メッセージ]の項目です。
ASPでweb.config内でカスタムセクションを追加した時に、
「属性○○のスキーマ情報が見つかりませんでした」と[メッセージ]でエラー一覧に表示されました。
でも問題なく動作してるのでそのまま続けてみます。
ありがとうございました。
0411デフォルトの名無しさん
2008/01/22(火) 08:48:26document.body.innerText
つーかおもっくそスレ違い
0412デフォルトの名無しさん
2008/01/22(火) 09:52:11ソースコードから実行てのはふつーにできるから調べてみれば?
使い物になるかは別だが。
0413デフォルトの名無しさん
2008/01/22(火) 18:24:43//string FileName = "二バイト文字テスト";
Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(str.ToString() + ".csv"));
上記のようにファイル名が2バイトになっても正常に「開く」「ダウンロード」「キャンセル」
のダイアログが出るようにしています。
ダウンロードした場合は日本語が含まれたファイル名でダウンロードできます。
「開く」をクリックした場合、エンコードされたファイル名で開こうとしてしまいます。
解決方法はありますか?
よろしくお願いします。
0414デフォルトの名無しさん
2008/01/22(火) 18:26:53補足で、開くを選択した場合エラーになります
エンコードされたファイル名を開こうとするためです。
0415デフォルトの名無しさん
2008/01/22(火) 20:04:33C/C++のスタティックリンクライブラリみたいにexeファイルに組み込むことできないのかな?
0416デフォルトの名無しさん
2008/01/22(火) 20:06:44署名されてたら無理だけど
0417デフォルトの名無しさん
2008/01/22(火) 20:43:44thx
0418デフォルトの名無しさん
2008/01/22(火) 22:48:44(Graphics.DrawString で表示されるときの文字間隔)
より1ドットずつ狭めて表示したいと思います。
思いついたのは ExtTextOut を使用する方法ですが、
それ以外の方法(できれば p/invoke を使わなくていいような)
があったら教えてください。
0419デフォルトの名無しさん
2008/01/22(火) 22:55:21どのようにすれば使えるのでしょうか?
仮に、public sealed class ModelBoneというコンストラクタが無くプロパティのみを持つ
クラスのインスタンスをローカルで一時使用したいとします。
ModelBone bone = new ModelBone(); としても
'Microsoft.Xna.Framework.Graphics.ModelBone' のコンストラクタが定義されていません'
のエラーが表示されてインスタンスを作成できません。
0420デフォルトの名無しさん
2008/01/22(火) 22:57:21他にインスタンスを取得する方法が用意されてるはずだからそれに従う
0421420
2008/01/22(火) 23:02:25モデルと一緒に読み込むしかないんじゃないかな
0422デフォルトの名無しさん
2008/01/22(火) 23:03:23一文字ずつMeasureCharacterRangesで測ってRectangleF作って
DrawStringすりゃいいんじゃね
0423デフォルトの名無しさん
2008/01/22(火) 23:22:23Windows PowerShell使えよ。
0424419
2008/01/23(水) 00:37:32やはりインスタンスは作成できないのですか・・・。
このクラスが持つプロパティを自前クラスの関数の引数で使用したくなり、
Frameworkのクラスからインスタンスを作成できない場合
全く同じプロパティとコンストラクタを持つクラスを改めて
定義しなければならないからどうしたものかと悩んでいました。
とりあえず出来ないことが分ったので、他の方法を検討してみます。
ありがとうございました。
0425デフォルトの名無しさん
2008/01/23(水) 01:15:38ぜんぜん手軽じゃないじゃん。
0426デフォルトの名無しさん
2008/01/23(水) 06:25:57拡張メソッド使っても無理?
0427デフォルトの名無しさん
2008/01/23(水) 07:40:210428デフォルトの名無しさん
2008/01/23(水) 09:20:32拡張メソッドにどんな幻想を持ってるんだ
0429デフォルトの名無しさん
2008/01/23(水) 10:19:50なんでもできるはず
0430デフォルトの名無しさん
2008/01/23(水) 10:28:130431デフォルトの名無しさん
2008/01/23(水) 10:38:00A→B、A→Cと呼び出すとします。
formBで取得したテキストボックスの値を、formCで参照したいときはどのようにしたらよいでしょうか?
0432デフォルトの名無しさん
2008/01/23(水) 10:39:450433デフォルトの名無しさん
2008/01/23(水) 10:45:53FORMC fc = new FORMC(/*取得した値*/);
でしたっけ?
0434デフォルトの名無しさん
2008/01/23(水) 11:08:350435デフォルトの名無しさん
2008/01/23(水) 11:13:26>>434さんの言うとおりでいいのでしょうか?
0436デフォルトの名無しさん
2008/01/23(水) 11:17:23I1 i1 = new I1();
I2 i2 = new I2();
i1.hoge = (I3)i2.hage();
みたいなコードがあるのですが、(I1〜3は既成の外部ライブラリ)
それぞれのinterfaceで定義されているメソッドの実態はどこで定義されているんでしょうか?
やりたいのはi1にひとつ例えばvoid moe(string str)みたいなメソッドを追加したclass or interfaceを作って
void moe(string str){
i1で定義されているメソッドをコール;
}
みたいな感じにしたいのですが、何から手をつけていいのかわからなくて困っています。
よろしくお願いします。
0437デフォルトの名無しさん
2008/01/23(水) 11:17:55ShowDialog()で呼ぼうとコンストラクタには関係ないだろう
0438デフォルトの名無しさん
2008/01/23(水) 11:41:18I1 i1 = new I1();
I2 i2 = new I2();
↑ ↑
ここ と ここ を
よーく見比べてみよう
0439デフォルトの名無しさん
2008/01/23(水) 12:56:15ツールボックスから印刷プレビューのダイアログ(PrintPreviewDialog)をそのまま利用しています。
プレビューでは,意図した画像が正しく表示されるのですが実際に印刷すると一ページだけ
真っ黒に印刷されてしまいます。
これを解決するためにはどこを調べなければならないでしょうか。
0440デフォルトの名無しさん
2008/01/23(水) 13:10:230441436
2008/01/23(水) 13:10:57れすありがとうござます。
見比べて見たのですが、やはりinterface同士でなにがおこっているのか理解出来ません
new Interface();
という構文自体が何をしているのかわからないのですが、
もう少しヒントいただけないでしょうか?
0442デフォルトの名無しさん
2008/01/23(水) 13:26:54よく見ろ。newしているほうはインターフェイスではないはず。
0443デフォルトの名無しさん
2008/01/23(水) 13:38:08お返事ありがとうございます。
ほかの印刷ソフトでは正常でした。
PrintDocumentのデータはどのタイミングで破棄されるようになっているんでしょうか?
何度やっても再現してしまいます。。。
0444436
2008/01/23(水) 13:40:26そのインターフェースの定義を見ると
[Guid("hoge")]
[CoClass(typeof(I2cls))]
public interface I2 : I4
{
}
とかになっていてどうも思っている異常に複雑そうなのであきらめます。
ありがとうございました。
0445デフォルトの名無しさん
2008/01/23(水) 13:45:19複数の拡張子(この場合jpg、gif、png、bmp)で
絞り込むのはどう書いたらいいんでしょう?
0446デフォルトの名無しさん
2008/01/23(水) 13:46:47Path.GetExtensionすりゃいいじゃん
0447デフォルトの名無しさん
2008/01/23(水) 14:13:02CoClass属性のが実体クラス。
0448デフォルトの名無しさん
2008/01/23(水) 15:50:08C#の、ってここはC#スレだ、決まってんだろ、ハゲ
第一C#の、じゃなくて.net frameworkの、だろ、ハゲ
それにクラス名まで、書けや、ハゲ
Directory.GetFilesならsearchPatternとるオーバーロードがあるっしょ
0449デフォルトの名無しさん
2008/01/23(水) 16:20:380450デフォルトの名無しさん
2008/01/23(水) 17:48:10揚げ足とるな。ばか!!!!!!!!!!!!!!
0451デフォルトの名無しさん
2008/01/23(水) 17:50:180452デフォルトの名無しさん
2008/01/23(水) 18:47:52INSERTとかUPDATEとかしたあと
コミットもロールバックもしないとどうなりまつか?
0453デフォルトの名無しさん
2008/01/23(水) 19:40:34だったと思うけどプロバイダに依存しそう。
ものによっては保留状態になるかも。
いや、手動トランザクションなら保留はないかな?
0454デフォルトの名無しさん
2008/01/23(水) 20:36:10トンクス
SQL Serverだとそんな感じみたいでつね
0455デフォルトの名無しさん
2008/01/23(水) 23:26:09あるタイミングで,Text
0456デフォルトの名無しさん
2008/01/23(水) 23:31:33TabControlのTabPageにいくつかTextBoxとRichTextBoxを配置しました。
あるタイミングで,TextBoxとRichTextBoxのレイアウトを Fixed3D から FixedSingle
に一気に変更しようとしています。
テキストボックスの変更はできたのですが,同様の方法でRichTextBoxの変更ができませんでした。
以下のようにしたのですが,何が問題でしょうか。
RichTextBox rtb = new RichTextBox();
foreach(Object ctrl in tabControl1.SelectedTab.Controls)
{
if(ctrl.GetType().Equals(rtb.GetType()))
{
rtb = (RichTextBox)ctrl;
rtb.BorderStyle = BorderStyle.FixedSingle;
}
}
0457デフォルトの名無しさん
2008/01/23(水) 23:56:04・まず直接フォームのリッチテキストのフィールドで同じことをしてどうなるか
確認しよう。
・ブレークポイントの使い方を覚えよう。
・こんなくだらないことでいちいち悩んでるようなら、君才能ないのかも
0458デフォルトの名無しさん
2008/01/24(木) 00:10:40こうしてから、
if(ctrl.GetType().Equals(rtb.GetType()))
こう判定して、
rtb = (RichTextBox)ctrl;
こうやってしまうところに並々ならぬ才能を感じた。
向いてないよ、やっぱり。
0459デフォルトの名無しさん
2008/01/24(木) 00:19:16as null
0460456
2008/01/24(木) 00:24:57ご指導ありがとうございます。
勉強になります。
>>459さん
nullなんですね。
ありがとうございます。
デバッガの使い方も分からず,すいません。
ブレークポイントを指定してBorderStyleを見てみるとちゃんとFixedSingle
になっていました。
RichTextBoxはFixedSingleにしても表示が変わりませんでした。
もしかして,そういうものなんですかね。
0461デフォルトの名無しさん
2008/01/24(木) 00:47:41って,できるんですね...orz
0462デフォルトの名無しさん
2008/01/24(木) 01:10:500463デフォルトの名無しさん
2008/01/24(木) 01:12:35ありがとうございます。
459さんのヒントを頂き,そのようにしました。
型判定について全く無知でした。。。
0464デフォルトの名無しさん
2008/01/24(木) 13:11:02public static void func(string str1, string str2, bool flag){
処理
}
このような文字列を2つと論理型で1つを引数とする関数を再帰的に呼び出す部分なのですが
今現在作成中のプログラムの中で、この関数による処理がほぼ全てのようなものです
なのでこの再帰的にこの関数を呼び出すという部分について何か最適化の方法がないかと探しています
関数内の処理はforeachと.NET内のクラスを利用したものでほぼ埋まっているため
そちらに関しては最適化はやりようがないかなと思っています
それではよろしくお願いします
0465デフォルトの名無しさん
2008/01/24(木) 13:21:53プログラムの概要を教えてもらえんとなんともなぁ
そもそも本当に再帰が必要なのかもわからないし
0466デフォルトの名無しさん
2008/01/24(木) 13:42:20すみませんでした、書くと長いので概要を
str1にはディレクトリへのパスを(こちらをA)
str2にはまた別のディレクトリへのパスを(こちらをB)受け取ります。
Bが存在するか確認
A内に存在するファイルを探していきながら、随時B内にA内のファイルを移動していく
その後、A内でディレクトリを検索し、無ければ終了、発見した場合
(今現在のstr1とstr2の値が以下だとしたら
str1 C:\aaa
str2 D:\xxx)
A内でディレクトリ検索をして見つけたものが
C:\aaa\abcだとすると
func("C:\\aaa\\abc", "D:\\xxx\\abc", true)
こんな感じで自信を呼び出します
つまりBディレクトリ以下にAディレクトリをサブフォルダ内等一切合財移動させるという感じです
0467デフォルトの名無しさん
2008/01/24(木) 14:49:16せいぜい再帰やめることで万が一のStackOverflowを回避するぐらい。
0468デフォルトの名無しさん
2008/01/24(木) 15:06:46Private Sub moveFile(ByVal a As String, ByVal b As String)
Directory.CreateDirectory(b)
Dim files() As String = Directory.GetFiles(a, "*.*", SearchOption.AllDirectories)
For Each f As String In files
Dim newpath As String = f.Replace(a, b)
Dim newdir As String = Path.GetDirectoryName(newpath)
Directory.CreateDirectory(newdir)
File.Move(f, newpath)
Next
End Sub
0469デフォルトの名無しさん
2008/01/24(木) 16:22:56466は書くと長いって書いてるんだから
全部のファイルじゃなくて、何か条件付けがあるんだろ
0470デフォルトの名無しさん
2008/01/24(木) 16:49:37なんか条件付けがあるというのならなぜその条件を説明しない。
その条件をこっちで考えろってか?
全部のファイルじゃない?
「一切合財移動させる」と書いてあるだろ。
0471デフォルトの名無しさん
2008/01/24(木) 16:53:220472デフォルトの名無しさん
2008/01/24(木) 18:08:56スレタイ読んでくれよ・・・
0473デフォルトの名無しさん
2008/01/24(木) 19:24:41C#にそのまま移植するとキャストやガベコレの為に返って処理が重たくなる事は有りませんか?
これから具体例を用意しようと思いますが、2,3時間後になると思うので、
場合によるときは何処が焦点になるか、忠告頂けると助かります。
ちなみにC# 2.0です。ジェネリックの恩恵を受けれると嬉しいのですが。
0474デフォルトの名無しさん
2008/01/24(木) 19:34:38参照型→値型はボクシングが入って遅くなる
void Hoge<T> where T : IHogeHoge (T value) { ... }
こうすればボクシングは回避できて、インターフェイスメンバも使える
メソッドが一つならインターフェイスじゃなくてデリゲートを使うのも流行り
0475474
2008/01/24(木) 19:35:30値型→参照型はボクシングが入って遅くなる
0476デフォルトの名無しさん
2008/01/24(木) 19:35:380477デフォルトの名無しさん
2008/01/24(木) 19:45:25>474さんのおかげで解決ですけど、私も興味が有るので、もうちょっと面白い話がを集めたいんですけどスレ違ですかね。
私が今書き出したサンプルはデリゲートの方がスマートっぽいので練り直さないと。
void Hoge<T> where T : IHogeHoge (T value) { ... } を有効利用したサンプルを書けてないと足下をすくわれそうだし。
0478デフォルトの名無しさん
2008/01/24(木) 20:00:110479477
2008/01/24(木) 20:07:17そうですね。 「参照型→参照型のキャストは無問題 」の理由は解ってないし。
>where T : IHogeHoge (T value) { ... } は自分の件では要らない事が、返事を書いてから気づきました。
未だベンチテストとかできる状態では無いのでボトルネックの洗い出しはできません。
目安としてはポリモーフィックされたupdate()関数は一秒間に180回ぐらい行われて、 satateが切り替わるのは2,3秒に一回あるか無いかです。
それでupdate()関数内に switchが有るのは嫌だなと思う次第です。
0480デフォルトの名無しさん
2008/01/24(木) 20:42:010481デフォルトの名無しさん
2008/01/24(木) 20:53:24Enumってswitch用じゃね?
0482デフォルトの名無しさん
2008/01/24(木) 21:11:10100行ある。ここに貼るとしたらどうしたら良い?
0483デフォルトの名無しさん
2008/01/24(木) 21:27:570484デフォルトの名無しさん
2008/01/24(木) 21:30:45ttp://zero0.x0.com/mc00/upload.php
0485デフォルトの名無しさん
2008/01/24(木) 21:32:37オリジナルのファイル名でDLすると良いみたい。
かなり汚いけど、これのswitch版を作ってみる。
0486デフォルトの名無しさん
2008/01/24(木) 21:32:530487デフォルトの名無しさん
2008/01/24(木) 21:44:260488デフォルトの名無しさん
2008/01/24(木) 21:52:36ttp://www.uploda.net/cgi/uploader1/index.php?file_id=0000286840.udn
結果
switch無し 117261
switch有り 114267
switchの方が良かった。\(^o^)/
おまえらさー、 これ信じて本当に大丈夫?
>487 良い事言った。
0489デフォルトの名無しさん
2008/01/24(木) 21:57:230490デフォルトの名無しさん
2008/01/24(木) 22:03:37LinkedListの大きさを20000にして、string xをint xにして只の足し算にした。
switch無し 35928
switch 21836
C#のキャストってやっぱり痛いんだな。
0491デフォルトの名無しさん
2008/01/24(木) 22:33:24[MethodImpl(MethodImplOptions.NoInlining)]をswitch版のupdateに付けてみ
0492デフォルトの名無しさん
2008/01/24(木) 22:51:29---------
using System.Runtime.CompilerServices;
--中略---
[MethodImpl(MethodImplOptions.NoInlining)]
public void update()
{
switch (this.state)
-----
UMLやDPを使って設計した方が遅くなるってのはC#ユーザーなら通らされる道なんでしょうね。
キャストやガベコレの世界ってこうなっちゃうんだな。 UMLは概念?だかで実装はswitch。
0493デフォルトの名無しさん
2008/01/24(木) 23:10:11インライン展開抑制でこっちで効果があったのはFunc1updateとFunc2updateの方。差がかなり小さくなった。
まあつきつめたらswitchの方が速いのは当たり前だけどそんなことに意味があるかどうかの方が大事
0494デフォルトの名無しさん
2008/01/24(木) 23:42:573パターンじゃなおさらswitch有利だろうけど
だからどうしたってレベルの話だな。
そのレベルでパフォーマンス重視ならC#なんざ使うのが間違い。
まあ大抵はこんなレベルの差はどうでもいい。
普通は処理そのものがもっとずっと重いしな。
0495デフォルトの名無しさん
2008/01/24(木) 23:53:040496デフォルトの名無しさん
2008/01/24(木) 23:56:41switchの方が最適化されて有利っていうだけのこと
0497464
2008/01/24(木) 23:57:54最適化の意味がないというのがいまいちピンと来ませんでしたが
少し説明不足なところがありました。
関数内の処理をどうこうしたいのではなく、関数に引数を渡す部分に関して
何か速度を上げるのに繋がる手法のようなものがあれば・・・と思ってのことでした
なので検討違いかもしれないと今でも思っていますorz
再帰処理がいらないという意見がありましたが、私自身の力量ではこれで全力でして
これ自体アドバイス貰いながらの完成だったりします。
どんどんと階層を深く辿るにはどうしてもこれ以外の方法が思いつきませんでした
0498デフォルトの名無しさん
2008/01/25(金) 00:02:47>普通は処理そのものがもっとずっと重いしな。
テキスト連結
117261-114267= 2994
足し算
35928- 21836= 14092
そうですね。
>495
どう関係しているか解らないので、適当です。
C++のポインタとキャストならこうは成らないのでは?
switch無しは、何回キャストしているか把握してないし。 ガベコレとauto pointerを勘違いしているかも、
>495が関係ないと言うなら、もっとましなソースになるかもしれませんね。
0499498
2008/01/25(金) 00:05:310500デフォルトの名無しさん
2008/01/25(金) 00:06:08>最適化の意味がない
どう見てもディスクIOの方が圧倒的に重いからじゃね
0502デフォルトの名無しさん
2008/01/25(金) 00:17:10IOって面で工夫するとしたら
文字列で渡さずにDirectoryInfoを渡すようにしたらいいのでは
0503デフォルトの名無しさん
2008/01/25(金) 01:31:02脳内で淫乱に変換される漏れの頭を何とかしてください
0504デフォルトの名無しさん
2008/01/25(金) 04:51:44どうしたらいいのでしょうか。
0505デフォルトの名無しさん
2008/01/25(金) 07:57:25uint[] 型のプロパティに TypeConverter 属性で実装したのをつける
ArrayConverter の内部クラスが private なので面倒
頑張らないのならば
[TypeConverter(tyeof(UInt32HexConverter))]
struct UInt32Hex{
public uint Value;
}
とでもして Uint32HexConverter をお手軽に実装してから
UInt32Hex の配列を使う
0507デフォルトの名無しさん
2008/01/25(金) 09:57:14いやまあどうでもいいんだけど
0508デフォルトの名無しさん
2008/01/25(金) 10:17:29メソッド自体とパラメータのコメントはカーソルを合わせたり、Ctrl+K,Pとかすれば表示されますが
戻り値の/// <returns>xxxx</returns>に書いたものは
どうすれば表示されるのでしょうか?
あとデバッガでメソッドの戻り値が何になったのかを
そのメソッド内で見ることは出来ないのでしょうか?
バージョンは2008です
0509デフォルトの名無しさん
2008/01/25(金) 11:33:12VC# 2008 Express使ってて思ったのは、
クイックウォッチが使えないこと。
ブレークポイントからステップインして処理を追っていくときに、
その時点における式の評価ができるのは結構便利なんだよな。
それ以外では全く不満はないので、それだけの為にVS2005Proに戻そうとまでは思わんね。
VS2008Pro、アップグレード版の値段によっては購入を検討する。
0510デフォルトの名無しさん
2008/01/25(金) 11:52:13文面からイミディエイトウインドウのような気がする。
?を最初につけてメソッドとか記述すれば結果がみれるし、フィールドに代入も出来る
初期状態では確かメニューにないから、ユーザー設定から追加。
0511デフォルトの名無しさん
2008/01/25(金) 11:56:442008では演算子の上にマウスカーソルを置くと評価した結果が表示されるようになってる
0512デフォルトの名無しさん
2008/01/25(金) 12:27:59なるほど、イミディエイトウインドウで自作式を評価できるのか。
今まであんまり使ったこと無かったもんで知らなかった。
それならクイックウォッチいらないかもね。
>>511
それはソースに記述してある式の評価でしょ?
それは当然できる。
俺が言ってたのは、ソースに記述してない評価式のこと。
0513デフォルトの名無しさん
2008/01/25(金) 12:46:42ウォッチウインドウにある空の行をダブルクリックして式を入力するだけ
0514デフォルトの名無しさん
2008/01/25(金) 13:14:35最初にイミディエイトウインドウを知ったときには感動した
ドキュメント見て、実際の動作確認をしたくなったら
参照さえしてあれば、そのままF10(ステップオーバー)だけ押せば
ソースコードに全くないクラスでもそのまま試せるし、IntelliSense効くし
ちょっとしたことなら確認用のプログラム書かなくてもいいんだよな
テストしたいクラスがあったときもイミディエイトウインドウから実行できるし
ブレイクポイント設定しておけばちゃんと止まるし
0515デフォルトの名無しさん
2008/01/25(金) 15:36:46DirectoryInfoとFileInfoにして色々試してみました
大きなディレクトリを移動させる際の重さがなくなったのですが、移動スピード(?)というか処理にかかる時間が延びてしまったようです
まだ色々試している段階なのですが、これは良くも悪くも安定したということか・・
何はともあれ新しい可能性です、もう少し試行錯誤していこうと思います
ありがとうございました
0516デフォルトの名無しさん
2008/01/25(金) 16:32:16長い文字列を入力した時に折り返すようにしたいのですが
どのように設定すれば良いのでしょうか?
WrapMode を True に設定したら全角文字は上手く折り返されるんですが
スペースを含まない半角文字はセルから溢れてしまい、困ってます。
0517デフォルトの名無しさん
2008/01/25(金) 23:56:07SQL文が非常に長くて可読性が悪いので文を分割しようと考えてます。
この場合、
string query = "select hoge, fuga, hage from test"
+ " where hage = 1 ・・・";
見たいな書き方しますか?それともStringBuilderを使ってApendしていきますか?
どう書くのが一般的なんでしょうか?
0518デフォルトの名無しさん
2008/01/26(土) 00:28:05俺は@でヒアドキュメントもどきが好きだが。
0519デフォルトの名無しさん
2008/01/26(土) 00:29:32それか余所においとくかリソースにつっこむか
0520デフォルトの名無しさん
2008/01/26(土) 00:36:500521デフォルトの名無しさん
2008/01/26(土) 00:44:27シリアル通信を用いたセンサのグラフを表示するプログラムを作っています。
UIのデザインForm1.csとセンサを扱うクラスSensorClass1.csにわけています。
で、シリアル通信の関連のエラー処理をしたいのですが、かきのどちらに
try-catchを施せばよいでしょうか。
Form1.cs
private void buttonWaaSens_Click(object sender, EventArgs e)
{
this.sensorClass.sens();
}
SensorClass1.cs
public void sens()
{
this.serialPort.DiscardInBuffer();
this.serialPort.WriteLine("sens +000001000 20 5 0");
System.Diagnostics.Debug.WriteLine("取得開始");
}
0522デフォルトの名無しさん
2008/01/26(土) 00:51:25いや、日本語書けよw
君はエスパーかもしれんが、ここ読んでるキミ以外の人間はエスパーじゃないんだけど。
0523デフォルトの名無しさん
2008/01/26(土) 00:57:03どちらでも好きなほうにどうぞ
0524デフォルトの名無しさん
2008/01/26(土) 01:08:10ベストアンサー
すべて
0525デフォルトの名無しさん
2008/01/26(土) 02:33:53参考になるURL・方法を知っている方教えていただけますか?
こんな感じを想定しています。
ColA |ColB |ColC
-NodeA | |
-NodeC| |
+NodeB | |
0526デフォルトの名無しさん
2008/01/26(土) 02:42:09ttp://www.codeproject.com/KB/grid/OutlookGrid.aspx
0527デフォルトの名無しさん
2008/01/26(土) 03:05:21ありがとうございます。
コード参考にして作ります。
0528デフォルトの名無しさん
2008/01/26(土) 05:13:40{
dir.Attributes = dir.Attributes & ~FileAttributes.ReadOnly;
}
dirはDirectoryInfoです
これで読み取り属性なら読み取り属性を解除するということになっているでしょうか?
0529デフォルトの名無しさん
2008/01/26(土) 06:39:01とでもしておかないと、読み取り専用以外の属性を併せ持つディレクトリを漏らす。
0530デフォルトの名無しさん
2008/01/26(土) 06:45:140531デフォルトの名無しさん
2008/01/26(土) 07:22:43ありがとうございます
流石に単純すぎて自分のものはいぶかしんでいたんですが
読み取り専用なだけ、という場合しか考慮されていなかったんですね、助かりました
>>530
DirectoryAttributes的なものでもあるんでしょうか?
一応こちらの環境では(読み取り専用にチェック入れただけのディレクトリに対しては)できましたが
0532デフォルトの名無しさん
2008/01/26(土) 07:25:260533デフォルトの名無しさん
2008/01/26(土) 07:35:47もうちょっと試行錯誤してきます、すみません
0535デフォルトの名無しさん
2008/01/26(土) 07:57:37どっちも必要ないから無理じゃない?
0536デフォルトの名無しさん
2008/01/26(土) 09:32:29メソッドの戻り値はreturnの部分にブレークポイント仕掛ければ分かるよ
0537デフォルトの名無しさん
2008/01/26(土) 11:43:12>>518 @使ったヒアドキュメントもどき私も使っています。
>>520 コンパイル時に解決してくれんですね。安心して+で連結できます。
0538デフォルトの名無しさん
2008/01/26(土) 13:22:07form1からボタンのイベントでダイアログ形式でform2を開き、そこに値(TextBox)を入力します
そのあと、okでform1に戻り、今度は別のボタンのイベントでform3を開き、そこでSaveFileDialogを開きます
このときSaveFileDialogのFileName先ほどのTextBoxの値を入れたいのですがどうしたらよいでしょう?
0539デフォルトの名無しさん
2008/01/26(土) 13:28:42form2を表示して,okで戻った後にform1のコードからそのプロパティを通して値を取得して
form1のフィールドに入れとく
form3を開く前にプロパティとかコンストラクタとかでその値をform3に渡す
0540デフォルトの名無しさん
2008/01/26(土) 13:29:50一体なにがわからんの?
もしかしてform1からform3にファイル名を渡す方法?
そんなもん、form3を開く時にファイル名を渡すなりなんなり、自分で考えろ。
0541デフォルトの名無しさん
2008/01/26(土) 13:32:21すみません
実際のコードで簡単に書いていただけないでしょうか?
0542デフォルトの名無しさん
2008/01/26(土) 13:40:58お前初心者スレからでてったほうがいいと思うぞ
0543デフォルトの名無しさん
2008/01/26(土) 13:41:36基礎からやり直せ
そのレスで確信したが全くわかってないだろ
0544デフォルトの名無しさん
2008/01/26(土) 13:43:43具体的に言えばそうです
ただそのform3のsavefiledialogのFileNameプロパティに名前を設定するとき、
sfd.Filename = の後にどうやったらform2のテキストボックスの値を参照できるのかがしりたいです
0545デフォルトの名無しさん
2008/01/26(土) 13:44:07public string テキストボックスの値 { get { return this.textBox1.Text; } }
}
class Form3 {
private string fileName;
public string ファイル名 { get { return fileName; } set { this.fileName = value; } }
void SaveFileDialogを開くイベント() { //(略) saveFileDialog.FileName = fileName; }
}
class Form1 {
private string fileName;
void Form2を開くイベント() {
using (Form2 form2 = new Form2()) {
if (form2.ShowDialog() == DialogResult.OK)
this.fileName = form2.テキストボックスの値;
}
}
void Form3を開くイベント(){
Form3 form3 = new Form3();
form3.ファイル名 = this.fileName;
//form3を表示
}
0546デフォルトの名無しさん
2008/01/26(土) 13:44:30クラスの基礎だけでいいからどっかの解説ページを読むんだ
ここで一時凌ぎすべきじゃない項目だぞ
0547デフォルトの名無しさん
2008/01/26(土) 14:09:30型 'System.Windows.Forms.TextBox' を型 'string' に暗黙的に変換できません
AD_Adjust.textBox1' はアクセスできない保護レベルになっています。
ってエラーが出てしまいました
0548デフォルトの名無しさん
2008/01/26(土) 14:17:41>>546
やる気あんのか屑
0549デフォルトの名無しさん
2008/01/26(土) 14:20:15ロクにマニュアルも見ず、自分で試してみることもしないのは
初心者以前。
>>544
だから、
form2のテキストボックスの値を参照できるように、プロパティなり
メソッドの引数なりで自分で参照できるように作るんだよ。
0550デフォルトの名無しさん
2008/01/26(土) 14:21:240551719
2008/01/26(土) 14:29:25もう一度起動してWINXPを起動したのですが今度は正常に読み込みました。
が・・・
起動しても何か処理が重い・・・(普段なら10秒もすれば起動して処理が終わるのに・・・)
それで色々作業中にまたまた急に電源が切れました。。
そう、719を書き込んだときとまったく同じ症状で
で、「これはウィルスだな。」と思い、そうと決まれば駆除しかない!
そう思って俺の計算では成功する予定でした。(←馬鹿
しかしその結果、ウィルスチェッカー中に電源が落ちてしまいます。
(ちなみにしばらく時間を置いてから起動すれば立ち上がるみたいなんです。)
で3回程度試したんですが・・・必ずチェック数が1万を越える前に電源が落ちます。
ウィルスチェックしていない間は落ちることがないのでまず電源アダプタとかでは無いはずなんですが・・・
ニコニコにウィルスでも混入したのかな・・・?(←先にチェックして来い
というわけでちょっとニコニコに何か手がかりみたいなの無いか見てきます。
0552デフォルトの名無しさん
2008/01/26(土) 18:09:080553デフォルトの名無しさん
2008/01/26(土) 18:48:100554デフォルトの名無しさん
2008/01/26(土) 19:20:38p[0] = new Point(0, 0);
p[1] = new Point(1, 1);
p[2] = new Point(2, 2);
p[3] = new Point(3, 3);
クラスの配列をnewするとき↑みたいに
1個ずつnewするのがめんどいんですが
スマートにやる方法教えてください
0555デフォルトの名無しさん
2008/01/26(土) 19:25:58for(int i = 0; i < 4; i++){
p[i] = new Point(i, i);
}
0556デフォルトの名無しさん
2008/01/26(土) 19:26:31要素ごとに new する必要なんてない
なので new は最初の1個だけでよい
0557デフォルトの名無しさん
2008/01/26(土) 19:28:330558デフォルトの名無しさん
2008/01/26(土) 19:31:070559デフォルトの名無しさん
2008/01/26(土) 19:32:240561デフォルトの名無しさん
2008/01/26(土) 19:34:50掛け算の概念を知らないで九九をひたすら暗記している家の息子みたいなもんだ。
0562デフォルトの名無しさん
2008/01/26(土) 19:36:01何がやりたいのか分からない。
0563デフォルトの名無しさん
2008/01/26(土) 19:37:38Point[] p = Enumerable.Range(0, 4).Select(i => new Point(i, i)).ToArray();
0564デフォルトの名無しさん
2008/01/26(土) 19:38:050565デフォルトの名無しさん
2008/01/26(土) 20:33:37最近C#やることになって勉強中です。
ものすごく親切な仕様という印象です。
0566デフォルトの名無しさん
2008/01/26(土) 20:51:140567デフォルトの名無しさん
2008/01/26(土) 20:56:55a→b
0568デフォルトの名無しさん
2008/01/26(土) 20:58:55Point[] p = new Dictionary<int, int> { { 0, 0 }, { 1, 1 }, { 2, 2 }, { 3, 3 } }.Select(xy=>new Point(xy.Key, xy.Value)).ToArray();
0569デフォルトの名無しさん
2008/01/26(土) 21:15:550570デフォルトの名無しさん
2008/01/26(土) 21:32:19StringBuilderならインデクサ経由で変更できるよ。
0571デフォルトの名無しさん
2008/01/26(土) 21:33:07親切っていうよりガチガチに制限かけまくってるだけ
0572デフォルトの名無しさん
2008/01/26(土) 21:51:04画面上に何か図形を2つ書いて(例えば10角形2つ)を書いて
その図形の重なった部分の面積を求めるっていうとき
どうやればできますか?
0573デフォルトの名無しさん
2008/01/26(土) 21:54:17幾何学の問題。
0574デフォルトの名無しさん
2008/01/26(土) 21:54:580575デフォルトの名無しさん
2008/01/26(土) 21:57:560576デフォルトの名無しさん
2008/01/26(土) 22:06:03紙と鉛筆で「ry)っていうときの」アルゴリズム書ける人か書けない人かで分岐。
書ける人ならとりあえずアルゴリズム書いて晒してみると親切な人がC#での書き方のヒントくれるかも。
書けない人は……ライブラリ探すところから始める? ちなみに.NET標準にはないよ。
まあ標準ではなくてもGeometryクラスを流用すればできるかもしれんが。
ttp://d.hatena.ne.jp/hogeman/20071202
0577デフォルトの名無しさん
2008/01/26(土) 22:12:22いつでも代数的に解ける図形が与えられるとは限らないし。
だからモンテカルロ法みたいなのがあるわけじゃないの?
つーか、>>572は図形がどういうデータ構造で与えられるかをまず提示しなきゃ
話にならないね。
0578デフォルトの名無しさん
2008/01/26(土) 22:18:360580572
2008/01/26(土) 22:24:03C言語上でやったときは
メモリデバイスコンテキスト上に図形を描画して
それぞれ配列に格納して論理演算で求めてました
↓みたいなかんじ
■■■■■■
■□□□□■
■□□□□■
■■■■■■
■■■■■■
■■■■■■
■■■■■■
■■■□□■
■■■□□■
■■■□□■
■■■□□■
■■■■■■
重なり部分
■■■■■■
■■■□□■
■■■□□■
■■■■■■
■■■■■■
■■■■■■
C#だとメモリデバイスコンテキストに相当するものが
あるのかよくわからないので聞いてみました
WPFというのでできるんですか
調べてみます
0582デフォルトの名無しさん
2008/01/26(土) 22:43:15メモリデバイスコンテキストに相当するものならSystem.Drawing以下にあるかな。
GraphicsPathからRegion作って残りとIntersectして共通領域のRegionを作る。
できたRegionをGraphics.Clipにセットして適当に塗りつぶして塗りつぶし色でピクセル数え上げか。
それでいいならできなくはないと思う。
WPFはSystem.Drawing以下のとは別の描画ライブラリ。
0583572
2008/01/26(土) 22:50:39http://dobon.net/vb/dotnet/graphics/fillregion.html
↑のHPのやり方ですか?
キーワードでググってみたら出てきました。
とりあえずこのやり方でやってみます。
ありがとうございました。
0585デフォルトの名無しさん
2008/01/26(土) 23:37:28"MS ゴシック"->"MSGOTHIC.TTC" みたいな感じで。
0586デフォルトの名無しさん
2008/01/26(土) 23:51:310587デフォルトの名無しさん
2008/01/27(日) 01:41:37□□□□□□□□□
□□□□□□□□□ Rect1
□□□□□□□□□
□□□□
□□□□ Rect2
□□□□
これを次のようにマージするには、空白部分をどうやって補完すればいいんでしょ。
□□□□□□□□□
□□□□□□□□□
□□□□□□□□□ Region1(=Rect1+Rect2+補完部分)
□□□
□□□□
□□□□
□□□□
0588デフォルトの名無しさん
2008/01/27(日) 01:45:08「次のように」
の部分を厳密に定義することじゃないだろうか。
0589デフォルトの名無しさん
2008/01/27(日) 01:46:26Rect1のBottomをRect2のTopの位置まで下げ、新しいRect1とする。
Rect2のTopをRect1のBottomまで上げ、新しいRect2とする。
次に、新しいRect1とRect2の重なりを>>583のHPのやり方で求めると、
これが補完部分になる。
より簡単で、いろんな場合に使える方法がありましたら教えてください。
0590デフォルトの名無しさん
2008/01/27(日) 01:56:320591デフォルトの名無しさん
2008/01/27(日) 03:09:06今は大きい画像を読み込んで↓の方にスクロールさせると
menustripが消えてしまう
0592デフォルトの名無しさん
2008/01/27(日) 03:11:36画像を表示するパネルに一緒にMenuStripを乗っける馬鹿がいるか。
0593デフォルトの名無しさん
2008/01/27(日) 04:40:33ポインタ使おうかと思うんですが
C#の流儀に反する?
0594デフォルトの名無しさん
2008/01/27(日) 09:04:160595デフォルトの名無しさん
2008/01/27(日) 09:06:05不安ならPaint .NETのソースをunsafeでgrepしてみたら?
0596デフォルトの名無しさん
2008/01/27(日) 09:13:080597デフォルトの名無しさん
2008/01/27(日) 09:30:56イベントドリブンなプログラムなら、ハンドラを登録しまくれ。
0598デフォルトの名無しさん
2008/01/27(日) 09:36:39その呼び出されたクラス内のコンストラクタでハンドラだとかコモンコントロール?だとかを登録してる
0599デフォルトの名無しさん
2008/01/27(日) 09:42:15ComboBox.Itemsにするのに出し入れで変換するのが面倒くさいから日本語で要素を定義してみた。
IntelliSenseは特に問題ないけど違和感ありまくり
0600デフォルトの名無しさん
2008/01/27(日) 11:57:49enumみたいな構造体を自分で定義すればいいのでは?
0601デフォルトの名無しさん
2008/01/27(日) 13:28:42private T value; public T Value { get { return value; } }
public EnumWrapper(T value) { this.value = value; }
public static explicit operator T(EnumWrapper<T> value) { return value.Value; }
public static explicit operator EnumWrapper<T>(T value) { return new EnumWrapper<T>(value); }
public override string ToString(){
ToStringAttribute[] attr = (ToStringAttribute[])typeof(T)
.GetField(Value.ToString()).GetCustomAttributes(typeof(ToStringAttribute), false);
return (attr.Length != 0) ? return attr[0].String : Value.ToString();}}
[AttributeUsage(AttributeTargets.Field)]class ToStringAttribute : Attribute {
public string String { get; private set; }
public ToStringAttribute(string str) { this.String = str; }}
enum MyEnum { [ToString("いちばん")]One, [ToString("二番")]Two, }
こんな風にするとか
0602デフォルトの名無しさん
2008/01/27(日) 14:07:340603デフォルトの名無しさん
2008/01/27(日) 14:14:320604デフォルトの名無しさん
2008/01/27(日) 14:44:51ぼやきのつもりで書いたのに、あっさりこんなコードが出てきて驚きました。
中程のreturnの行の真ん中のreturnだけ削除したと思います。
使い方にちょっと悩んだけど
初期設定で
ComboBox.Items.Add((EnumWrapper<MyEnum>)MyEnum.One);
使うときには
(MyEnum)(EnumWrapper<MyEnum>)ComboBox.SelectedItem
ですね。
ありがとうございました。
なんかC#ってなんでもできそうな気がしてきた。
0605デフォルトの名無しさん
2008/01/27(日) 17:21:47struct Foo{...}という構造体があって
Foo foo = new Foo(10, 20, 30);
とやる場合と
foo.a = 10;
foo.b = 20;
foo.c = 30;
では後者のほうが高速なのですか?
構造体のコピーが発生する時ってnewとかreturnとか、あと何がありますか?
0606デフォルトの名無しさん
2008/01/27(日) 17:23:290607デフォルトの名無しさん
2008/01/27(日) 17:38:34構造体のnewでコピーは発生してない。
0608デフォルトの名無しさん
2008/01/27(日) 17:55:59Foo foo = new Foo { a=10, b=20, c=30 };はだいぶ遅い
0609デフォルトの名無しさん
2008/01/27(日) 18:03:13>560は只の基地外だと思ってスルーしてたけど、
もしかして最適化狙いかと、勘ぐってしまう。
0610デフォルトの名無しさん
2008/01/27(日) 18:14:35ありがとうございました
0611デフォルトの名無しさん
2008/01/27(日) 18:16:01たまたま規則性のある例を挙げたから誤解されただけで
0612デフォルトの名無しさん
2008/01/27(日) 18:18:20確かにC#3.0のその構文のときはコピーが発生してるね。
妙なコードを吐いてる。構造体のときは要注意か。
0613デフォルトの名無しさん
2008/01/27(日) 18:58:07temp.a = 10;
temp.b = 20;
temp.c = 30;
Foo foo = temp;
になるんだっけ。
0614デフォルトの名無しさん
2008/01/27(日) 19:03:26それがなぜかスタック3つも使ってる。
Foo temp1 = new Foo();
Foo temp2 = temp1;
temp2.a = 10;
temp2.b = 20;
temp2.c = 30;
Foo foo = temp2;
クラスだと2つなのだが。
0615デフォルトの名無しさん
2008/01/27(日) 19:05:12クラスの場合も良く分かんないんだけど。
0616デフォルトの名無しさん
2008/01/27(日) 19:12:46ありがとう。質問するときの参考になった。
0617デフォルトの名無しさん
2008/01/27(日) 19:17:31逆透視変換のためにその画像を上辺900、下辺800、高さ1000の等脚台形に変換したいのですが、
.NETのクラスを使って簡単な方法があれば教えていただきたいです。
OpenCVのアフィン変換とかになるんですかねやっぱり。
0618デフォルトの名無しさん
2008/01/27(日) 19:34:15初期化をatomicにするためじゃないかな。
ttp://d.hatena.ne.jp/siokoshou/20071123#p1
ttp://community.bartdesmet.net/blogs/bart/archive/2007/11/22/c-3-0-object-initializers-revisited.aspx
0619デフォルトの名無しさん
2008/01/27(日) 19:45:36下の方読んで何となくわかったけど。
0620デフォルトの名無しさん
2008/01/27(日) 20:37:41もう>>608みたいな書き方するときはパフォーマンスなんて気にするな、
ってことかな。
0621デフォルトの名無しさん
2008/01/27(日) 21:05:59うまく計算してWPFの3D機能でやるとか
ピクセルロックして頑張るとか
0622デフォルトの名無しさん
2008/01/27(日) 22:46:20ラベルやテキストボックスの文字列をセンターでそろえるというのはどうすればいいのでしょうか?
ググってもなにやらコードを書く必要があるような記述ばかりなんですが、プログラムから制御を
行わないとできないのでしょうか?
0623デフォルトの名無しさん
2008/01/27(日) 22:53:380624デフォルトの名無しさん
2008/01/28(月) 01:41:41Visual C# Express Editionと、それと一緒に入ってくるMSDNドキュメント
見ながら遊んでる方がずっとコントロール廻りは理解できるよ
0625デフォルトの名無しさん
2008/01/28(月) 01:49:400626デフォルトの名無しさん
2008/01/28(月) 02:20:44フォームデザイナ上で、
複数コントロールを選択した状態で
ツールバー>書式>整列
最初に選択したコントロールを基準に整列してくれる。
0627デフォルトの名無しさん
2008/01/28(月) 17:57:400628デフォルトの名無しさん
2008/01/28(月) 23:06:23通信回線が発達してオンラインがまともに使えるようになってから
かなり使えるようになったと感じる
0629デフォルトの名無しさん
2008/01/28(月) 23:16:140630デフォルトの名無しさん
2008/01/28(月) 23:19:360631デフォルトの名無しさん
2008/01/28(月) 23:52:210632デフォルトの名無しさん
2008/01/29(火) 01:17:42理由分かる人いたら教えて。
0633デフォルトの名無しさん
2008/01/29(火) 06:54:590634デフォルトの名無しさん
2008/01/29(火) 09:54:01そこから少し話は反れて飛びます
ソリューショネクスプローラのResources以下にicoファイルを入れ
Form.Icon = ((System.Drawing.Icon)(resources.GetObject("アイコンファイル名")));
↑このようにするとアイコンをセット出来るのではという結論に至りました
しかしコンパイルは通るもののデバッグになるとこの記述の部分でエラーが出ます
'System.Resources.MissingManifestResourceException' のハンドルされていない例外が mscorlib.dll で発生しました。
エラーはこの通りです
見たところ、アイコンファイル自体みつけられてないのか・・?と思いましたがアイコンファイル名はいくら確認しても正しいです
何が間違っているのでしょうか?
0635デフォルトの名無しさん
2008/01/29(火) 10:12:260636デフォルトの名無しさん
2008/01/29(火) 15:24:230637デフォルトの名無しさん
2008/01/29(火) 16:12:320638デフォルトの名無しさん
2008/01/29(火) 16:38:20System.ArgumentOutOfRangeException: 容量が現在のサイズより小さい値です。
なんて投げてくるんですが、これって .NET Framework のバグですか?
0639デフォルトの名無しさん
2008/01/29(火) 16:41:240640デフォルトの名無しさん
2008/01/29(火) 16:49:24これって見る度ネタなのかどうか理解に困る
0641デフォルトの名無しさん
2008/01/29(火) 16:56:090642デフォルトの名無しさん
2008/01/29(火) 17:01:58マルチスレッド関係はやっぱ鬼門だわ……
0643デフォルトの名無しさん
2008/01/29(火) 18:19:571600*1200のbmp1があり、そのbmpの指定した座標(x,y)を支点として、
300*300のbmp2を重ねたいのですがどのようにすればいいのでしょうか。
Bitmap bmp1 = new Bitmap(filename1);
Bitmap bmp2 = new Bitmap(filename2);
bmp1.Add(x,y,bmp2);
のような感じでできないのでしょうか?
BitmapクラスとImageクラスのメンバをオブジェクトブラウザで眺めてみましたが、
そのようなメソッドを見つけることができませんでした。
GetPixelしてSetPixelするという操作を全量に対して行うしかないですか?
0644デフォルトの名無しさん
2008/01/29(火) 18:23:14それでもいいし
bmp1のGraphicsを取得してそれでbmp2をDrawImageしてもいいよ
0645デフォルトの名無しさん
2008/01/29(火) 18:48:460646643
2008/01/29(火) 18:56:08ありがとうございます。
追記になりますが、その画像をjpegで保存したいと思っています。
描画にGraphicsクラスを使ったことはありますが、描画した画像を保存したことがありません。
DrawImageして出来上がったGraphicsクラスのインスタンスを使って
画像保存をすることはできますか?
0647デフォルトの名無しさん
2008/01/29(火) 19:01:30Image.Save
0648デフォルトの名無しさん
2008/01/29(火) 19:19:09は?
0649デフォルトの名無しさん
2008/01/29(火) 19:51:180650デフォルトの名無しさん
2008/01/29(火) 19:57:34知らないならレスすんな
0651デフォルトの名無しさん
2008/01/29(火) 20:20:330652デフォルトの名無しさん
2008/01/29(火) 21:41:010653デフォルトの名無しさん
2008/01/29(火) 21:42:040654デフォルトの名無しさん
2008/01/29(火) 22:19:460655デフォルトの名無しさん
2008/01/30(水) 09:47:310656デフォルトの名無しさん
2008/01/30(水) 10:13:51ToolStripMenuItemのAllowDropをtrueにしてもOnDragEnterのイベントがきません
MenuTripだと正常にイベントがきます
何かご存知な方がいましたら
教えて頂けると助かります。
よろしくお願いいたします。
0657デフォルトの名無しさん
2008/01/30(水) 13:22:370658656
2008/01/30(水) 13:52:55うまくいきません
開発環境はvs2005、vistaです
0659デフォルトの名無しさん
2008/01/30(水) 14:09:180660デフォルトの名無しさん
2008/01/30(水) 17:07:190661デフォルトの名無しさん
2008/01/30(水) 17:43:09で、完成度が高くなったので
コントロールライブラリにしようと思ってDLL作ったんだが
このDLLの使い方がわからない漏れはどうしたらいいですか?
0662デフォルトの名無しさん
2008/01/30(水) 18:06:190663デフォルトの名無しさん
2008/01/30(水) 18:50:37中国って何回言った? 死ねや
0664デフォルトの名無しさん
2008/01/30(水) 18:51:010665デフォルトの名無しさん
2008/01/30(水) 21:00:37まあ近頃は一口にプログラっていっても知的水準はいろいろだからなw
0666デフォルトの名無しさん
2008/01/30(水) 21:05:350667デフォルトの名無しさん
2008/01/30(水) 21:10:34>>663をネトウヨって言ってる時点でチョンか学生だな
0668デフォルトの名無しさん
2008/01/30(水) 21:19:22で「チョン」って何ですか?
ネトウヨ君の仲間うちで通じる「ヲタ用語」みたいなもの?w
0669デフォルトの名無しさん
2008/01/30(水) 21:26:070670デフォルトの名無しさん
2008/01/30(水) 21:30:060671デフォルトの名無しさん
2008/01/30(水) 21:39:320672デフォルトの名無しさん
2008/01/30(水) 21:42:32そっとしといてやろう……( -人-)
0673デフォルトの名無しさん
2008/01/30(水) 22:12:15スレタイ読めないバカども
0674デフォルトの名無しさん
2008/01/31(木) 01:36:36プロパティのApplicationSettingsからLocation, ClientSize, WindowStateを保存するようにしたんだが
なんか挙動がおかしい。
最大化ボタン押しても最大化しなくて何故か位置が変わったり。
なんでだろう。
0675デフォルトの名無しさん
2008/01/31(木) 01:46:310676656
2008/01/31(木) 02:04:44ファイルのドラッグ&ドロップなら私の環境でも問題ありません。
Googleで探してますが、なかなかヒントが見つかりません。
0677デフォルトの名無しさん
2008/01/31(木) 08:20:44TreeView.Nodes[0]をBinaryFormatter.Serializeで保存し、
読み込みはBinaryFormatter.Deserializeした結果をTreeView.Nodes.Addすることで一応実現できました。
ただこの方法だとツリーの展開状態と選択状態が復帰できません。
現時点ではTreeNodeと下のクラスが混在しているのですが、
TreeNode自体ではなく、TreeNodeから派生させたクラスを使うようにして
そのクラスのDeserializeで展開状態とかを一旦内部フィールドに保存して、
TreeViewに追加した後に復帰させるしかないかなと思っているのですが
もっと良い方法があるのでしょうか?
[Serializable]
public class TVKeyword : TreeNode
{
public TVKeyword() : base() {
}
protected TVKeyword(SerializationInfo serializationInfo, StreamingContext context) : base(serializationInfo, context) { }
protected override void Deserialize(SerializationInfo serializationInfo, StreamingContext context) {
base.Deserialize(serializationInfo, context);
Keyword = serializationInfo.GetString("Keyword");
}
protected override void Serialize(SerializationInfo si, StreamingContext context) {
base.Serialize(si, context);
si.AddValue("Keyword", Keyword);
}
public string Keyword { get; set; }
}
0678677
2008/01/31(木) 09:06:37どうやら展開状態はそもそもシリアライズされていないように見えます。
派生クラスを作ることにしました。失礼しました。
0679643
2008/01/31(木) 10:26:47ここの回答者はOOPというものが全く分かっていないのか?
Graphicsクラスのインスタンスを使わないで、どうやってGraphicsクラスの
インスタンスメソッド(DrawImage)で描画しようとしているオブジェクトを保存するんだ?
>Graphicsクラスのインスタンスでは出来ないが、
>Graphicsには描画対象となるImageなりなんなりが必ずあるので、
>そっちの機能で保存すればOK
実際にコーディングしてみましたか?
どう考えても、Graphicsオブジェクトを作成するときに使っただけのImageオブジェクトが、
インスタンスメソッドであるDrawImageによって変更されているはずがない。
DrawImageの引数にImageオブジェクトが参照渡しで渡されているのならば別だがね。
だからこそ>>643のように質問しているわけなのだが。
てっきりGraphicsオブジェクトがメモリ上に保持しているGDIビットマップオブジェクトのハンドルを
取得して云々とかそういうアドバイスがくると思っていたのに、見当違いな回答しかこない。
挙げ句の果てに>>650のようなアホまで出る始末。分かってないのはどっちだと・・・
0680デフォルトの名無しさん
2008/01/31(木) 10:40:530681デフォルトの名無しさん
2008/01/31(木) 10:47:10>>643の質問が低レベルなのは十分承知の上だよ。
でもそれにたいする回答者が見当違いのアホ回答をしてきたからこそ噛みついているわけで。
少なくともあいつらよりは分かっているつもりだが。
もしもGraphicsクラスを使わずに、かつImageオブジェクトで泥臭い全量ループすることなしに、
他のアプローチでもっと簡単に実現できる方法があるのであれば、是非ご教授願いたい。
0682デフォルトの名無しさん
2008/01/31(木) 10:55:08心底意味が分からん。
ベースとなるBmp1から作ったGraphicsを使ってBmp2をDrawImageするだけじゃん。
0683デフォルトの名無しさん
2008/01/31(木) 10:57:17ImageもGraphicsも触ったのは初めてだけど、MSDNライブラリ見てったらすぐにサンプル見つかったよ。
Graphicsクラスの概要に「イメージ、ビットマップ、アイコン、およびメタファイルの操作」ってリンクがあるから
そこの「方法 : 実行時にビットマップを作成する
Image imageFile = Image.FromFile("sample.jpg");
Graphics newGraphics = Graphics.FromImage(imageFile);
newGraphics.FillRectangle(new SolidBrush(Color.Black), 100, 50, 100, 100);
newGraphics.Dispose();
imageFile.Save("test.jpg");
IDない板だし「は?」とかだけじゃ誰が何を言いたいのかさっぱりわからない。
はたから見てるとどういうやりとりなのか全くわからなかったから、スルーしてたんだよ。
ちゃんと誰で何を言いたいのかわかるようにしてたら、とっくに解決してたと思うけどね。
0684デフォルトの名無しさん
2008/01/31(木) 10:57:55>>643の質問内容より十分理解できる回答を見当違いといっている時点で、低脳杉。
0685デフォルトの名無しさん
2008/01/31(木) 11:00:16>>681
>どう考えても、Graphicsオブジェクトを作成するときに使っただけのImageオブジェクトが、
>インスタンスメソッドであるDrawImageによって変更されているはずがない。
何に怒ってるのかわけ分からん。
>>682
>ベースとなるBmp1から作ったGraphicsを使ってBmp2をDrawImageするだけじゃん。
だな。
Bitmap bmp1 = new Bitmap(filename1);
Bitmap bmp2 = new Bitmap(filename2);
using (Graphics g = Graphics.FromImage(bmp1))
{
g.DrawImage(bmp2, x, y);
}
これでbmp1の中身が変更されるはず。
bmp1.Save("check.bmp");
あたりで確認できるかな。
0686デフォルトの名無しさん
2008/01/31(木) 11:16:39ちょうどいい話題だったぜ。
0687デフォルトの名無しさん
2008/01/31(木) 11:27:550688デフォルトの名無しさん
2008/01/31(木) 11:30:33>>683>>685Save()メソッドはデフォルト.png保存じゃなかったっけな?
using System.Drawing;
using System.Drawing.Imaging;
class Hoge{
static void Main(){
Image img1 = Image.FromFile("1.jpg");
Image img2 = Image.FromFile("2.jpg");
Graphics g = Graphics.FromImage(img1);
g.DrawImage(img2,100,100,200,200);
img1.Save("hoge.jpg",ImageFormat.Jpeg);
}
}
0689デフォルトの名無しさん
2008/01/31(木) 11:49:220690デフォルトの名無しさん
2008/01/31(木) 12:22:41>Graphicsクラスを使わずに
なんか初め>>643から新しく条件加わってるけど、何でGraphicsクラス使ったらいけないんだ?
Graphicsクラスでやりたいことが楽にできるのに、わざわざ自分で新しく作る必要ないだろ?
0691651
2008/01/31(木) 12:24:16だからよう、Graphicsクラス自体は描画機能を持っているだけで、描画対象は別に必要なんだよ。
だから、描画対象となるオブジェクトを指定せずにGraphicsクラスのインスタンスを作成出来ないようになってるわけ。
Graphicsクラスのインスタンスメソッドを使用して実際に変更されるのは描画対象オブジェクトのほう。
>>688
指定した拡張子に対応するImageEncoderがあれば、自動的にその形式で保存されるはず。
0692デフォルトの名無しさん
2008/01/31(木) 12:32:02こっちはコード書いたことあるからわかってんだよ
それで動かないってどんな糞コード書いたんだよ
晒してみろよ
アホすぎて生きてる価値ないんじゃね
0693デフォルトの名無しさん
2008/01/31(木) 12:36:480694デフォルトの名無しさん
2008/01/31(木) 12:38:33> もしもGraphicsクラスを使わずに、かつImageオブジェクトで泥臭い全量ループすることなしに、
> 他のアプローチでもっと簡単に実現できる方法があるのであれば、是非ご教授願いたい。
bitmap
0695デフォルトの名無しさん
2008/01/31(木) 12:41:130696デフォルトの名無しさん
2008/01/31(木) 12:42:27いきなり「オブジェクト指向が〜」とかキレてるのよんでリアルでコーヒー吹いちゃったよw
というか、適当にレスを拾い読みした感じでは、>>643はWinの描画の考え方っていうか
デバイスコンテキストって概念を知らないんだと思う。
まあ最近の.NET用の入門書はこのあたり解説してないのが多いと思うから無理もない。
0697デフォルトの名無しさん
2008/01/31(木) 12:45:06Winのグラフィックも考えてるんだろうね。
だとしたら結構年長のオジサマなんだと思うよw
0698デフォルトの名無しさん
2008/01/31(木) 12:47:580699デフォルトの名無しさん
2008/01/31(木) 12:54:09> Graphicsクラスのインスタンスを使わないで、どうやってGraphicsクラスの
> インスタンスメソッド(DrawImage)で描画しようとしているオブジェクトを保存するんだ?
ここ
描写しようとしているオブジェクトは Graphicsクラスのインスタンス となんら関係がない
勝手に持ってろって話
0700デフォルトの名無しさん
2008/01/31(木) 12:57:59本気でこんな事言う人間が居るのか?
0701643
2008/01/31(木) 13:16:430702デフォルトの名無しさん
2008/01/31(木) 14:09:140703643
2008/01/31(木) 15:53:11これまでの暴言を心よりお詫び申し上げます。
何卒お許し下さい。
経緯及び結果を説明します。
>>617=>>643=>>646=>>648です
流れとしては、1600*1200の画像から台形補正をするために、
1600*1ずつ切り取っていって、それを目的の等脚台形にするために横にのばして
貼り付けていくという手法を試みたのです。
画像処理は初めてだったので、>>643の質問をしてみました。
Graphicsクラスを使って実現するためには、Graphicsクラスのメンバ変数にImageオブジェクトが
格納されていなければならないと思いこんでいました。←勘違い
実際は、
Graphics newG= Graphics.FromImage(img);
この引数で渡されたImageオブジェクトをGraphicsオブジェクトがPrivate変数で保持していて、
それに対して処理を行っているということなんですね。
だから引数で渡されたオブジェクトそのものが変更されると。
値型との区別が付いていなかったようです。←低脳
ということで、結果としてはやりたいことができました。
以下にコードを記します。
0704643
2008/01/31(木) 15:55:34using System.Drawing.Imaging;
class Hoge
{
static public void Main()
{
int newX = 3200;
int newY = 3200;
Image bmp = new Bitmap("input.jpg"); //画像読み込み[1600:1200]
Image newbmp = new Bitmap(newX, newY); //編集後イメージ(等脚台形格納用)
Image tmpbmp = new Bitmap(newX, bmp.Height); //編集作業用イメージ(台形格納用)
RectangleF destRect = new RectangleF(0, 0, 0, 1);
RectangleF srcRect = new RectangleF(0, 0, bmp.Width, 1);
Graphics newG = Graphics.FromImage(newbmp);
Graphics tmpG = Graphics.FromImage(bmp);
Point[] pt = new[]
{
new Point(0, 0),
new Point(newX, 0),
new Point((newX + bmp.Width) / 2, newY)
}; //等脚台形変換用平行四辺形の3頂点
//続く
0705643
2008/01/31(木) 16:02:49int tan = (newX - bmp.Width) / bmp.Height; //台形積分計算用
//台形作成用ループ
for (int i = 0; i <= bmp.Height; i++)
{
srcRect.Y = i;
destRect.Y = i;
destRect.X = newX - i * tan;
//tmpbmpに貼り付けていく
tmpG.DrawImage(bmp, destRect, srcRect, GraphicsUnit.Pixel);
}
//tmpbmpの保存
tmpbmp.Save("tmp.jpg", ImageFormat.Jpeg);
//等脚台形に変換してnewbmpに格納
newG.DrawImage(tmpbmp, pt);
//jpgで保存
newbmp.Save("output.jpg", ImageFormat.Jpeg);
//終了処理
tmpG.Dispose();
newG.Dispose();
newbmp.Dispose();
tmpbmp.Dispose();
}
}
0706643
2008/01/31(木) 16:06:46こんな単純なアルゴリズムで実現できるはずがないということにもっと早く気づくべきでしたかね。
結局OpenCVの力を借りて実現する方法にしたいと思います。
Cの勉強しなくては・・・
.NET脳の私には頭が痛いです。
0707デフォルトの名無しさん
2008/01/31(木) 16:27:03ヽ / ̄ ̄ ̄`ヽ、 勇者トンファーパーマン惨状
| | (・)。(・)|
| |@_,.--、_,> 俺が着たからにはもう色々と駄目だ
ヽヽ___ノ
/:::::::::::::::::l /77
/::::::::::i:i:::::::i,../ / |
l:::/::::::::i:i:::、:::/ / |
l;;ノ:::::::::::::::l l;.,.,.! |
/::::::::::::::::l/ / 冂
/:::::::;へ:::::::l~ |ヌ|
/:::::/´ ヽ:::l .|ヌ|
.〔:::::l l:::l 凵
ヽ;;;> \;;>
いろいろつっこみたいけど、とりあえず
http://www.google.co.jp/search?num=20&hl=ja&rlz=1T4GGLJ_enJP208JP208&q=C%23+Graphics+Trapezoid&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja
0708デフォルトの名無しさん
2008/01/31(木) 16:47:03Windowsアプリ(VC#2005)で、XMLとCSVから読み込んだデータをDataGridViewに表示させようとしています。
そのときのバインド方法なのですが、下記の2パターンの差がわかりません。
BindingSourceのデータソースとして(DataTableではなく)DataViewを使用するメリットって何かありますか?
DataTable→DataView→BindingSource→DataGridView
DataTable→BindingSource→DataGridView
0709デフォルトの名無しさん
2008/01/31(木) 17:06:440710デフォルトの名無しさん
2008/01/31(木) 18:04:080711デフォルトの名無しさん
2008/01/31(木) 18:05:410712デフォルトの名無しさん
2008/01/31(木) 18:17:070713デフォルトの名無しさん
2008/01/31(木) 18:17:580714710
2008/01/31(木) 18:22:59ウィルスチェックってどうなってるんだろう?
→全ファイル走査するにはどんなやり方がスマートなんだろう
→再帰処理を使って全部辿るのがベターらしい
→なんだか重くなる
(ここら辺から迷走気味)
→コールスタックとかを知る
→すたっくおーばーふろー・・?
(本格的に迷走)
→スタックを直接操作できればどうにかなるんじゃね?
こんな感じです
質問をするにもどう質問すればいいかわからず>>710のような具合で質問しました
0715デフォルトの名無しさん
2008/01/31(木) 18:29:04再帰処理で、保存・復帰してる情報(今探索してるフォルダの情報)を、
インスタンス変数にリストか何かで保持するようにして、そのリストで、
保存したり取り出したりして、本体はループになるように書き直す、
というのがだいたい定番。
ファイルシステムの場合、親フォルダを ".." で探せることを利用すれば、
そういう面倒なことをしなくてもうまくいくかもしれない。
0716デフォルトの名無しさん
2008/01/31(木) 18:30:34とりあえず重くなる原因を確認したほうが良いよ
0717デフォルトの名無しさん
2008/01/31(木) 18:30:59関数を何とかする手もある。
0718デフォルトの名無しさん
2008/01/31(木) 18:31:540719デフォルトの名無しさん
2008/01/31(木) 18:35:02つまり再帰処理を行う回数を最初に逆算しておくってこと、かな
ディレクトリの階層数があって更に木構造のように枝分かれしていくのを考えると
すごく大変そうですがちょっと調べつつがんばってみます・・・
>>716-718
しっかり終了はするんですが、時間が経つとだんだんと重たくなってきます
CPU使用率の方が、他アプリケーションをがんがん使うと結構きつくなったりするようです
0720デフォルトの名無しさん
2008/01/31(木) 18:36:50うちのノートン先生は重たくなる
0721デフォルトの名無しさん
2008/01/31(木) 18:39:22> つまり再帰処理を行う回数を最初に逆算しておくってこと、かな
「配列」じゃなくて「リスト」って書いた意味を汲んでくれないかな...
0722デフォルトの名無しさん
2008/01/31(木) 18:42:53なるほど! ありがとうございました。
0723デフォルトの名無しさん
2008/01/31(木) 18:44:13サブディレクトリの探索を開始する。
・現在のディレクトリの探索が終了したら、スタックから状態をとってきて、
そのディレクトリの探索を再開する。
・スタックが空になったら終了。
何も難しいことはない。
0724デフォルトの名無しさん
2008/01/31(木) 18:48:280725デフォルトの名無しさん
2008/01/31(木) 18:49:05とかじゃだめなのか?
0726デフォルトの名無しさん
2008/01/31(木) 18:49:130727デフォルトの名無しさん
2008/01/31(木) 18:50:23あんまり変なことを教えるなよ…
0728デフォルトの名無しさん
2008/01/31(木) 18:54:15それだとXP以降のOSではシステムフォルダを検索しようとして権限がないので例外が発生する。
また拡張子のないファイルが取得出来ない。
0729デフォルトの名無しさん
2008/01/31(木) 18:57:45再帰呼び出しをするからスタックが溜まっていってしまうのであって
ループで何度も何度も呼び出す分には問題ないのでしょうか?
>>721
すみません調べてみます
>>723
やってることは同じなのは感覚として掴めました
しかし全然想像つかないです、じっくり考えてみます
>>725
調べていてDirectoryInfoとかそういうのは見つけました
.GetFiles()とかは使っていましたが引数渡すのは試してないです
ちょっとやりたいことがやられちゃう感じなので今回はパスでお願いします
0730デフォルトの名無しさん
2008/01/31(木) 19:02:47しかし、コールスタックは小さいから、すぐに溢れる。
だから、再帰呼び出しをループに展開する。
そのときには、もとと同じようにスタックを使って実装すると楽。
0731デフォルトの名無しさん
2008/01/31(木) 19:12:04たかがコールスタックが増えたごときで動作は遅くならん。
ましてやディレクトリの深さが 1000 や 2000 も無いかぎり溢れるなんて。
0732デフォルトの名無しさん
2008/01/31(木) 19:13:27並び的に
0733デフォルトの名無しさん
2008/01/31(木) 19:49:26つまり関数の中で関数が呼ばれてその中で更に・・・みたいのだとあふれちゃうんですよね
スタックはC++でクラスを勉強する時にそういう構造を作ってみた記憶があるので
やってみようと思います
>>731
ですよね・・ちょっと1から作り直してみます
ありがとうございました、助かりました
0734デフォルトの名無しさん
2008/01/31(木) 19:56:24スタックの実装にArrayListを使ってくれればいいけど
0735デフォルトの名無しさん
2008/01/31(木) 20:06:27なんで”Array”Listなん?
0736デフォルトの名無しさん
2008/01/31(木) 20:16:560737デフォルトの名無しさん
2008/01/31(木) 20:39:510738デフォルトの名無しさん
2008/01/31(木) 20:59:41ってゲイツが言ってた
0739デフォルトの名無しさん
2008/01/31(木) 21:02:210740デフォルトの名無しさん
2008/01/31(木) 21:04:380741デフォルトの名無しさん
2008/01/31(木) 21:46:08時々話題になるT Multiply<T>(T left, T right)みたいなのも簡単に作れる
0742デフォルトの名無しさん
2008/01/31(木) 21:57:21static class Extension {
public delegate Y MapFuncor<X, Y>(X item);
public static IEnumerable<TDst> Map<TSource, TDst>(this IEnumerable<TSource> source, MapFuncor<TSource, TDst> functor) {
foreach (TSource s in source) {
yield return functor(s);
}
}
}
0743デフォルトの名無しさん
2008/01/31(木) 22:00:260744デフォルトの名無しさん
2008/01/31(木) 22:37:360745デフォルトの名無しさん
2008/01/31(木) 23:29:500746デフォルトの名無しさん
2008/01/31(木) 23:33:35結局は結構windowsのAPI使用することが多いし。
何のための.netなんか分からんときがある。
0747デフォルトの名無しさん
2008/01/31(木) 23:36:310748デフォルトの名無しさん
2008/01/31(木) 23:42:18Athlon64 3500+ですがもっさりです
0749デフォルトの名無しさん
2008/01/31(木) 23:46:470750デフォルトの名無しさん
2008/01/31(木) 23:58:330751デフォルトの名無しさん
2008/02/01(金) 00:04:34ヅアルコア
0752デフォルトの名無しさん
2008/02/01(金) 00:06:00日ごろのメンテナンス次第でいくらでも遅くできるよ
0753デフォルトの名無しさん
2008/02/01(金) 00:13:310754デフォルトの名無しさん
2008/02/01(金) 00:24:18あの重い2005が軽くなるなら。
0755デフォルトの名無しさん
2008/02/01(金) 00:26:140756デフォルトの名無しさん
2008/02/01(金) 00:30:040757デフォルトの名無しさん
2008/02/01(金) 00:30:500758デフォルトの名無しさん
2008/02/01(金) 00:31:20それと2度目以降の起動はキャッシュが効いて速いです。
よく見ると2005自体にNTFS圧縮が掛けてあるみたいです。
0759デフォルトの名無しさん
2008/02/01(金) 00:32:42OS入れなおしだよ
0760デフォルトの名無しさん
2008/02/01(金) 00:32:500761デフォルトの名無しさん
2008/02/01(金) 00:33:28安いのならコストパフォーマンス高いんじゃね?
15k以下のラインで
0762デフォルトの名無しさん
2008/02/01(金) 00:35:52それやっても大して変化なかったです。
>>760
42個です。極力いらないものは切っています。
0763デフォルトの名無しさん
2008/02/01(金) 00:36:360764デフォルトの名無しさん
2008/02/01(金) 00:36:49メモリは別ですが今は5000円あればお釣りが来ますので。
0765デフォルトの名無しさん
2008/02/01(金) 00:37:53わかりました。やはりNTFS圧縮のせいでもっさりなのかもしれません。
WordやExcelにもNTFS圧縮掛けていますがもっさりしませんけど。
あとC++Builder2007にも圧縮掛けてありますがもっさりしません。
0766デフォルトの名無しさん
2008/02/01(金) 00:38:190767デフォルトの名無しさん
2008/02/01(金) 00:38:44mem : 256*2
これでも十分。
0768デフォルトの名無しさん
2008/02/01(金) 00:39:524万出してそれはないわ。
0769デフォルトの名無しさん
2008/02/01(金) 00:40:09えー
やっぱりNTFS圧縮のせいっぽいですね。
他に原因が思いつかない。
0770デフォルトの名無しさん
2008/02/01(金) 00:40:150771デフォルトの名無しさん
2008/02/01(金) 00:41:44もっさりしてませんでした。
さっそく圧縮を解除してみます。これでだめなら本格的にPCの交換を
考えます。
0772デフォルトの名無しさん
2008/02/01(金) 00:42:56ちなみにCドライブは80GB
0773デフォルトの名無しさん
2008/02/01(金) 00:51:56常駐多すぎ
ノートンいれて起動時に30切るくらい、スタンドアロンで20弱くらいで
0774デフォルトの名無しさん
2008/02/01(金) 00:54:3930個?どうやったらそんなに少なくなるんだろう。
WinampエージェントとかDaemon Toolsとか切るしかないか。
0775デフォルトの名無しさん
2008/02/01(金) 00:55:32しばらく前までは1GBで常駐プロセスとか気にしてたんだが・・・
0776デフォルトの名無しさん
2008/02/01(金) 00:56:420777デフォルトの名無しさん
2008/02/01(金) 00:58:400778デフォルトの名無しさん
2008/02/01(金) 00:59:390779デフォルトの名無しさん
2008/02/01(金) 00:59:55デーモンとかwinampは関係ないだろ・・・切れよ・・・
0780デフォルトの名無しさん
2008/02/01(金) 01:01:19切りますか・・・・
0781デフォルトの名無しさん
2008/02/01(金) 01:02:33マイクロソフトとセキュリティ関係のやつ全部とめて
デーモンバスターいれて、不要なwindowsプロセスとめるといいよ
0782デフォルトの名無しさん
2008/02/01(金) 01:03:080783デフォルトの名無しさん
2008/02/01(金) 01:03:480784デフォルトの名無しさん
2008/02/01(金) 01:04:240785デフォルトの名無しさん
2008/02/01(金) 01:05:140786デフォルトの名無しさん
2008/02/01(金) 01:06:03痛いかもなあ。
Acronis True Imageは定期的にバックアップ取るので仕方ないとして
Diskeeperはバックグラウンドでデフラグするので止めた方がいいのかも。
でも何かやってる間はデフラグ止めてくれるんだけど。
0787デフォルトの名無しさん
2008/02/01(金) 01:06:46QUick Time Alternative入れてます。
0788デフォルトの名無しさん
2008/02/01(金) 01:08:34賢いな
0789デフォルトの名無しさん
2008/02/01(金) 01:14:540790デフォルトの名無しさん
2008/02/01(金) 01:15:14だいぶスレチになってきました。
0791デフォルトの名無しさん
2008/02/01(金) 01:15:360792デフォルトの名無しさん
2008/02/01(金) 01:35:500793デフォルトの名無しさん
2008/02/01(金) 02:05:460794デフォルトの名無しさん
2008/02/01(金) 03:01:020795デフォルトの名無しさん
2008/02/01(金) 03:07:050796デフォルトの名無しさん
2008/02/01(金) 03:10:54最低限便利なファイラとか解凍ソフトが欲しい
0797デフォルトの名無しさん
2008/02/01(金) 03:12:280798デフォルトの名無しさん
2008/02/01(金) 03:59:140799デフォルトの名無しさん
2008/02/01(金) 04:47:17どこの古代人だw
0800デフォルトの名無しさん
2008/02/01(金) 04:55:18正直.NET快適、Javaは起動以外快適、動作はもっさり
.NETがもっさりするPC使ってみてえ
Win98時代のが残ってるけどそっちはHDD小さすぎてなんもできないしな
0801デフォルトの名無しさん
2008/02/01(金) 05:10:560802デフォルトの名無しさん
2008/02/01(金) 05:28:12ブートファイルデフラグを何回かやっていくと起動が目に見えて早くなることがあるから
ブートファイルデフラグ→再起動繰り返しでちょくちょく様子みてる
0803デフォルトの名無しさん
2008/02/01(金) 11:10:58なぜか、この親子間でToolStripPanelのドッキングツールバーが移動できていまうのですが、
両者のツールバーは全く意味が違うツールバーなので移動できないようにしたいのですが、
どうすればよいでしょうか?
0804デフォルトの名無しさん
2008/02/01(金) 15:14:59labelに表示してある文字列をstring型で再取得する方法ってあるのでしょうか?
0805デフォルトの名無しさん
2008/02/01(金) 15:36:100806デフォルトの名無しさん
2008/02/01(金) 15:42:40"label1"という文字列を取得してしまうのですが・・・やり方が悪いのかな
0807デフォルトの名無しさん
2008/02/01(金) 15:46:410808デフォルトの名無しさん
2008/02/01(金) 16:04:34DateTime nitiji = DateTime.now;
label1.Text = nitiji.ToString("d");
これでlabel1に「2008/2/1」って表示されてるとしたら
label1に表示されている"2008/2/1"ってのを
文字列で取得したいんです。(nitijiを使わずに)
これがやりたいんですが、出来ますか?
0809デフォルトの名無しさん
2008/02/01(金) 16:06:090810デフォルトの名無しさん
2008/02/01(金) 16:06:150811デフォルトの名無しさん
2008/02/01(金) 16:06:16>>805
0812デフォルトの名無しさん
2008/02/01(金) 16:12:50後者の方が早くなってしまっていたみたいです。
最初から正解を教えていただいていたのに申し訳ありませんでした。
>>805さん、807さん、809-811さんありがとうございました。
0813デフォルトの名無しさん
2008/02/01(金) 16:28:390814デフォルトの名無しさん
2008/02/01(金) 16:30:34学習本の中にはインターフェイスを定義するとき、
public interface Itest {
…
}
と、インターフェイスの先頭にpublic修飾子を付けているものがあります。
本の中で詳しく解説されていないのでよく分からないのですが、
このpublicを付ける場合と付けない場合とでは、何か違いがあるのですか?
0815デフォルトの名無しさん
2008/02/01(金) 16:33:22publicでアセンブル(DLL)の外部から使える。
何もつけない場合はinternalで内部のみで有効。
0816デフォルトの名無しさん
2008/02/01(金) 16:48:56素早い解答有難う御座います。
なるほど、デフォルトではinternalとなるのですか。
分かりました。
0817デフォルトの名無しさん
2008/02/01(金) 19:20:210818デフォルトの名無しさん
2008/02/01(金) 19:21:13サーバーに置いたC#のexeってそのままじゃクライアントから起動できないんですか?
セキュリティ関係なんでしょうか。。。。
誰かお力をお貸しください
0819818
2008/02/01(金) 19:22:40言葉が足りませんでした
0820デフォルトの名無しさん
2008/02/01(金) 19:24:270821デフォルトの名無しさん
2008/02/01(金) 19:25:410822818
2008/02/01(金) 19:26:58知識不足で理解できません・・・
\\hogehoge\\hore\foreって感じのパスになるんですが。
本当にお世話掛けます。すみません
0823818
2008/02/01(金) 19:28:01○\\hogehoge\hore\fore
でした
0824デフォルトの名無しさん
2008/02/01(金) 19:30:51ちなみに hoge の次は fuga, piyo と続く。
0826デフォルトの名無しさん
2008/02/01(金) 19:32:23おそらくSequrityExceptionが発生して終了かと
0827818
2008/02/01(金) 19:34:34会社でちょっとしたツール作ってるんですけど
会社で2chはまずいので自宅から書き込みです。
。。ですので詳細を説明する事ができないのが申し訳ないのですが・・・・
0828デフォルトの名無しさん
2008/02/01(金) 19:34:44かなり危険だよね。
0829デフォルトの名無しさん
2008/02/01(金) 19:38:560830デフォルトの名無しさん
2008/02/01(金) 19:39:35これをサーバー側のpcのcpuで行ってデータだけをユーザー側に送るなら、サーバーのPCに対してユーザーにアクセス権?を与える必要があるんじゃないですか?
0831818
2008/02/01(金) 19:39:38!!
・・・・なるほど。そういうもんなんですかぁ・・・
こちらの住人さんがおっしゃるなら正しいと思います。(本気ですよ)
ありがとうございました。そしてお騒がせしました
0832デフォルトの名無しさん
2008/02/01(金) 19:41:17いや、聞いているんですけどね・・・・・・・・・・・・・・・・
0833デフォルトの名無しさん
2008/02/01(金) 19:42:140834818
2008/02/01(金) 19:42:43なるほど!目からウロコです。そうですよね、JITコンパイルするのは
サーバー側になってしまいますよね。
んー簡単に考えていた私が浅はかで恥ずかしいです><
0835デフォルトの名無しさん
2008/02/01(金) 19:44:16クリックわんこで解決。
0836デフォルトの名無しさん
2008/02/01(金) 19:44:57\\hoge~.exeでクリックすると実行されるFWはローカルじゃなかったかな
でもセキュリティ例外が出るので鯖での権限設定は必要だったかと
・・・あきらめてEXEばら撒いたので解決策はよくわからない^^
0837デフォルトの名無しさん
2008/02/01(金) 19:47:260838818
2008/02/01(金) 19:47:36もし宜しければ色々と情報をお教えいただけると助かります。
クリックわんこも自分なりに調べてみますね
・・・・・・んでは行ってきますorz
0840デフォルトの名無しさん
2008/02/01(金) 19:49:060841デフォルトの名無しさん
2008/02/01(金) 19:58:56MSDNフォーラムにでも行っとけまじで。
つかその状態ならクリックワンス配信だろJK
0842デフォルトの名無しさん
2008/02/01(金) 20:00:22すごいなC#・・・・・・・・・・。
0843デフォルトの名無しさん
2008/02/01(金) 20:10:02(1)ローカル環境へインストールするモード(オンライン/オフライン・モード)
(2)ネットワーク上から起動するモード(オンライン・モード)
(2)だね。
参考に張っておきます。
http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce02/clickonce02_01.html
0844デフォルトの名無しさん
2008/02/01(金) 20:43:51voidってかいたらだめだといわれました.
0845デフォルトの名無しさん
2008/02/01(金) 20:53:420846デフォルトの名無しさん
2008/02/01(金) 20:55:07読み取りも書き込みもできない型なんてあるだけ無駄だからコンパイラさんがエラー吐いてくれてるんだとおもえ
0847デフォルトの名無しさん
2008/02/01(金) 21:00:36型引数無しのActionを使え
0848844
2008/02/01(金) 21:02:23ありがとうございました.
0849デフォルトの名無しさん
2008/02/01(金) 21:17:570850デフォルトの名無しさん
2008/02/01(金) 21:21:090851デフォルトの名無しさん
2008/02/01(金) 21:36:370852デフォルトの名無しさん
2008/02/01(金) 22:02:200853デフォルトの名無しさん
2008/02/01(金) 22:10:570854デフォルトの名無しさん
2008/02/01(金) 22:16:10そういや知的障害の子とボケ老人も繰言ばっかり言ってるよなw
0855デフォルトの名無しさん
2008/02/01(金) 22:22:590856デフォルトの名無しさん
2008/02/01(金) 22:29:570857デフォルトの名無しさん
2008/02/01(金) 22:35:010858デフォルトの名無しさん
2008/02/01(金) 22:35:140859デフォルトの名無しさん
2008/02/01(金) 22:56:500860デフォルトの名無しさん
2008/02/01(金) 23:00:210861デフォルトの名無しさん
2008/02/01(金) 23:03:28ってか適当なこと書きすぎだろ。
サーバに実行ファイルがある場合はイントラネットゾーンになって
デフォルトの権限が弱くなるだけだ。
0862デフォルトの名無しさん
2008/02/02(土) 00:36:55マジ
英語だとfoo,bar,baz
0863デフォルトの名無しさん
2008/02/02(土) 02:27:17Process.GetProcess()や
Process.MeinWindowHandleを試したのですがうまくいきませんでした
ご存知の方おられましたらよろしくお願いいたします
0864デフォルトの名無しさん
2008/02/02(土) 02:42:170865デフォルトの名無しさん
2008/02/02(土) 03:23:10>>C#を気軽に学べる一番やさしい解説書!
だってよ。
0866デフォルトの名無しさん
2008/02/02(土) 03:34:01むりぽ
0867デフォルトの名無しさん
2008/02/02(土) 03:36:01そうですか・・・(´・ω・`)
実行時にタスクトレイに常駐(ウィンドウなし)する
アプリケーションがあるのですが、プロセスを殺していいかどうかの判断ができないんですよね・・・
どうしたらいいんだろう
0868デフォルトの名無しさん
2008/02/02(土) 03:36:58C++とか糞に見えてきた
0869デフォルトの名無しさん
2008/02/02(土) 03:53:27んなこたあない
グラフィックはGDI+で遅いし.NETはなぜかもっさりする
0870デフォルトの名無しさん
2008/02/02(土) 04:08:590871デフォルトの名無しさん
2008/02/02(土) 04:10:270872デフォルトの名無しさん
2008/02/02(土) 04:11:10何故かもっさりって原理分かってれば当然かと。
0873デフォルトの名無しさん
2008/02/02(土) 04:20:30JITコンパイル終わった後ももっさりするんだよ
吐くコードが糞なのか?
0874デフォルトの名無しさん
2008/02/02(土) 04:31:280875デフォルトの名無しさん
2008/02/02(土) 04:57:260876デフォルトの名無しさん
2008/02/02(土) 05:43:230877デフォルトの名無しさん
2008/02/02(土) 09:05:320878デフォルトの名無しさん
2008/02/02(土) 09:57:22もっさりって言っても、Cのコードの2倍以内だろ?
もっさり感じるのは、やっぱGUIとか他の要因だと思われ。
0879デフォルトの名無しさん
2008/02/02(土) 12:16:410880デフォルトの名無しさん
2008/02/02(土) 12:26:120881デフォルトの名無しさん
2008/02/02(土) 12:36:42なんであんなに重くなるのか
0882デフォルトの名無しさん
2008/02/02(土) 12:43:30データベースの内容を表示して変更するだけみたいな、ちょこっとしたプログラムなら、
IDEでコントロール置いてプロパティ編集するだけで、ほとんどコード書かずに済んだのには感動した。
0883デフォルトの名無しさん
2008/02/02(土) 12:58:21最悪の状況を回避が基本だからというのがあるんだろう
今までのWin32が持ちにくかったものだな
逆に言えばやっとではあるんだが・・・
つかWPF重くないと思うよ。実現している内容を考えるに
0884デフォルトの名無しさん
2008/02/02(土) 12:58:38ソフトが起動できるかどうか確かめて頂けると助かります。
http://www.ts-scorpion.info/wme9mccst/
よろしくお願いします。
0885デフォルトの名無しさん
2008/02/02(土) 13:00:43本当に大丈夫だろうね?
0886デフォルトの名無しさん
2008/02/02(土) 13:00:57大抵の場合においてオーバースペックだから、formsの単純な代用にはならんのだよなあ。
0887デフォルトの名無しさん
2008/02/02(土) 13:02:51レジストリ云々のメッセージが出てきた。
0888デフォルトの名無しさん
2008/02/02(土) 13:03:50こんなところでわざわざ紹介するならせめてソースくらい付けろよ
まあ見るまでもなく想像つくし見ようと思えば見られるけど
0889デフォルトの名無しさん
2008/02/02(土) 13:08:26ソース出せバカ。
出せないならC#スレに書くな。ボケ。
0890デフォルトの名無しさん
2008/02/02(土) 13:08:34regファイルでいいじゃん・・・
0891デフォルトの名無しさん
2008/02/02(土) 13:16:340892デフォルトの名無しさん
2008/02/02(土) 13:26:32│
├ 1.PCを買い換える
│
│ [まちがい]
│ 確実な方法ではありますが、お金がかかるのが難点です。
│ それよりも別の手段を探してみませんか?
│ ちょっとしたフリーウェアでなんとかなるかも?
│ ↑
│ ココがポイント!
│
└ 2.RegSeekerを使う
[せいかい]
0893デフォルトの名無しさん
2008/02/02(土) 13:31:12>オーバースペック
だったらDataGridViewとか無茶やコントロール生まれねえー!
0894デフォルトの名無しさん
2008/02/02(土) 13:35:12なんだその意味不明な一行レス
0895デフォルトの名無しさん
2008/02/02(土) 13:37:51タイポですたゴメンナサイ
0896デフォルトの名無しさん
2008/02/02(土) 13:41:01こういう人が質問するとエスパー召喚質問になるんだろうねw
0897デフォルトの名無しさん
2008/02/02(土) 13:48:36オーバースペックならこんなもの生まれない。
0898デフォルトの名無しさん
2008/02/02(土) 14:00:12Formsに比べればWPFはよりオーバースペックで、何も矛盾することはない。
0899デフォルトの名無しさん
2008/02/02(土) 14:25:41この画像リソースのアクセスレベルをpublicにするには、
Resources.Designer.csのコードを直接いじくるしかないのでしょうか?
0900デフォルトの名無しさん
2008/02/02(土) 14:41:48えーと、WPFはプリミティブコントロールを現在の要求に合わせて
整理している感じなのが重要なんであって上位な複合コントロールが
たくさんあったりするわけじゃないぞ。つかその視点ならFormsに劣る
0901デフォルトの名無しさん
2008/02/02(土) 18:17:480902デフォルトの名無しさん
2008/02/02(土) 20:36:20Assembly.LoadFromで読み込んだAssemblyを保持してないようですが
使ってる最中にアンロードされたりしないんでしょうか?
0903デフォルトの名無しさん
2008/02/02(土) 20:43:560904デフォルトの名無しさん
2008/02/02(土) 20:44:50>Assemblyは
って分かりづらいな
アセンブリは、と言い換えとこう
0905デフォルトの名無しさん
2008/02/02(土) 20:59:050906デフォルトの名無しさん
2008/02/02(土) 21:00:06なるほど、よくわかりました。ありがとうございました。
0907デフォルトの名無しさん
2008/02/02(土) 21:01:40あれ・・スレ違いでしょうか?
0908デフォルトの名無しさん
2008/02/02(土) 21:04:140909デフォルトの名無しさん
2008/02/02(土) 21:04:34使える
>>907
MSDNじゃ足りないの?
0910デフォルトの名無しさん
2008/02/02(土) 21:08:52えっと使い方というか各メンバ(メソッド)の説明はあるんですが
その実際のコードはあるのかなと思いまして質問しました
MSDNライブラリってそこまでしかないですよね?
0911デフォルトの名無しさん
2008/02/02(土) 21:12:270912デフォルトの名無しさん
2008/02/02(土) 22:15:11複数の画像とフレーム間の時間のデータからプログラム中で
Imageを生成するにはどんな感じにすればいいのでしょうか?
0913デフォルトの名無しさん
2008/02/02(土) 22:49:31普通にタイマで描画してくんじゃ駄目なの?
0914デフォルトの名無しさん
2008/02/02(土) 23:22:010915デフォルトの名無しさん
2008/02/02(土) 23:37:480916912
2008/02/02(土) 23:54:37自分でアニメーションさせてみます。
ありがとうございました。
0917デフォルトの名無しさん
2008/02/02(土) 23:56:45今探していますが見つかりません。
Rectangleのスタティックとしてあるのかと思ったらありませんでした。
0918デフォルトの名無しさん
2008/02/02(土) 23:57:520919デフォルトの名無しさん
2008/02/03(日) 00:00:17〜〜と同等の機能じゃなくて言葉で機能を説明しろと
まあ普通にRectangleのインスタンスメソッドにあるけどな
0920デフォルトの名無しさん
2008/02/03(日) 00:03:30http://msdn2.microsoft.com/ja-jp/library/system.drawing.rectangle.contains(VS.80).aspx
0921デフォルトの名無しさん
2008/02/03(日) 01:33:18テキストボックスに入力を行った際、エンターキーを押すとシステム設定のエラー音が鳴ってしまいます。
これをプログラム上から鳴らなくするにはどうすればいいのでしょうか?
winXP sp2 で VS2005です。
0922デフォルトの名無しさん
2008/02/03(日) 01:41:290923899
2008/02/03(日) 01:46:570924デフォルトの名無しさん
2008/02/03(日) 01:50:500925デフォルトの名無しさん
2008/02/03(日) 01:54:02先生は一人だがお前には俺らがついてる!
0926921
2008/02/03(日) 02:18:03e.Handled = true;
としてもやっぱりBeepは消えてくれません。
0927デフォルトの名無しさん
2008/02/03(日) 11:46:23しかしMSDNのメンバ一覧では「Extension のメソッド」として記載されてる
しかしMSDNではその他の場合は全て「拡張メソッド」
なんだこれ
0928デフォルトの名無しさん
2008/02/03(日) 11:48:480929デフォルトの名無しさん
2008/02/03(日) 13:13:040930デフォルトの名無しさん
2008/02/03(日) 13:29:470931デフォルトの名無しさん
2008/02/03(日) 13:49:58for文などの繰り返し処理の中では
使わない方がいいと聞いたんですが
そういうもんなんですか?
0932デフォルトの名無しさん
2008/02/03(日) 13:55:01コントロールのプロパティは中で色々やってて遅いのが多いかも
フィールドの値を返すだけの単純なプロパティならインライン展開されてほとんど変わらん
0933931
2008/02/03(日) 14:50:19簡単な画像処理でテスト。
1: 12889msec
2: 38msec
1.プロパティ使いまくる場合
for (int y = 0; y < bmp.Height; y++){
for (int x = 0; x < bmp.Width; x++){
if (data[y * bmpData.Stride + x * 3] == Color.White.B){
data[y * bmpData.Stride + x * 3] = Color.Black.B;
}
}
}
2.変数を使う場合
int w = bmp.Width;
int h = bmp.Height;
int yPos;
byte white = Color.White.B;
byte black = Color.Black.B;
for (int y = 0; y < h; y++){
yPos = y * bmpData.Stride;
for (int x = 0; x < w; x++){
if (data[yPos + x * 3] == white){
data[yPos + x * 3] = black;
}
}
}
0934デフォルトの名無しさん
2008/02/03(日) 14:55:44プロパティを使うのとで
比較しないと。
0935デフォルトの名無しさん
2008/02/03(日) 14:57:46Color.White.Bは新しいColor作成→値渡し→ビット演算
どっちも全然単純なプロパティじゃないの
0936デフォルトの名無しさん
2008/02/03(日) 15:12:410937デフォルトの名無しさん
2008/02/03(日) 15:15:520938デフォルトの名無しさん
2008/02/03(日) 15:28:52その例が極端だとしてもこれはいいこと聞いた
定数クラスに新たに用意してそれでやってみる
0939デフォルトの名無しさん
2008/02/03(日) 15:32:000940デフォルトの名無しさん
2008/02/03(日) 15:34:52この話がわからない子は参加しなくていいんじゃないかな
0941デフォルトの名無しさん
2008/02/03(日) 15:38:00>>938が言ったことを咄嗟に>>939は想像出来なかった
また、他人に伝える意図でないものを>>938がレス内容に含めたというのにも問題がある
0942デフォルトの名無しさん
2008/02/03(日) 15:39:42Color.White.Bよりもネックになる理由がわかりません。
どうしてですか?
0943デフォルトの名無しさん
2008/02/03(日) 15:45:10まあとにかく、速度が問題になる場面では可読性犠牲にしてでも(といってもそれで低下する可読性なんてほんの僅かだろうけど)
プロパティーをキャッシュして使った方がいいってことか。
0944デフォルトの名無しさん
2008/02/03(日) 15:45:41>>935
怪しいことしてるのはそこくらいだから
0945デフォルトの名無しさん
2008/02/03(日) 15:58:56Color.White.Bがネックにならないのは、コンパイラがそれをリテラルに
置き換えてるからだろうけど、どうしてコンパイラはColor.White.Bの値を
定数扱いしても大丈夫だと知ることができるんだろう・・・
0946デフォルトの名無しさん
2008/02/03(日) 16:01:52頭沸いてるんですか^^;
0947デフォルトの名無しさん
2008/02/03(日) 16:02:51君頭悪いでしょw
0948デフォルトの名無しさん
2008/02/03(日) 16:11:14MDAの影響は排除してる?
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=521353&SiteID=7
0949デフォルトの名無しさん
2008/02/03(日) 16:15:28/\⌒ヽペタン
/ /⌒)ノ ペタン
∧_∧ \ (( ∧_∧
(; ´Д`))' ))(・∀・ ;)
/ ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O ノ ) ̄ ̄ ̄()__ )
)_)_) (;;;;;;;;;;;;;;;;;;;)(_(
0950デフォルトの名無しさん
2008/02/03(日) 16:17:40なぜだ!?
0951デフォルトの名無しさん
2008/02/03(日) 16:18:19ArrayListの実装って配列モドキのくせに
CountにO(N)かかるんだけど・・・
一度それでハマったことがある
0952デフォルトの名無しさん
2008/02/03(日) 16:20:130953デフォルトの名無しさん
2008/02/03(日) 16:22:13さすがにそれは嘘だろうと思ってソース見てみたら変数の内容返してたよ。
というわけで少なくとも最新版のArrayListではO(1)。
ソース公開便利だね!
0954デフォルトの名無しさん
2008/02/03(日) 16:29:53そうなんだ
昔のArrayListで
while(al.count > 0){
・・・O(N)の処理
}
ってやったらやたら時間がかかって、
しばらく悩んでたらArrayList.countがO(N)で、O(N^2)になってたことがある
このときは死ねよと思ったが改善されたなら良かった
0955デフォルトの名無しさん
2008/02/03(日) 16:33:21もしくは、WebBrowserの親に通知する方法とか。
0956デフォルトの名無しさん
2008/02/03(日) 16:34:11あんまり守られてないなw
0957デフォルトの名無しさん
2008/02/03(日) 16:34:46下記のところを読んでも違いがよくわかりませんでした
ひょっとしてforはいらない子なのでしょうか?
http://d.hatena.ne.jp/gallu/20060829/p2
0958デフォルトの名無しさん
2008/02/03(日) 16:37:18foreachもいらないLINQもいらないプロパティもデリゲートもいらない
0959デフォルトの名無しさん
2008/02/03(日) 16:37:45根本的な疑問。
「作るな!」って宣言すれば、本質的に重い処理にならざるを得ないプロパティが
軽くなるの?w
0960デフォルトの名無しさん
2008/02/03(日) 16:38:30むしろwhileがいらない子なんじゃないの
0961デフォルトの名無しさん
2008/02/03(日) 16:41:20重い処理はメソッドにする
プロパティだとなんとなくループ中に繰り返し呼び出してもOKかな?という感じがあるから
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpgenref/html/cpconpropertyusageguidelines.asp
0962デフォルトの名無しさん
2008/02/03(日) 16:45:03むしろその感覚の方を修正すべきなのでは?
だってそれは単なる願望であって、現実的な認識じゃないでしょ。
0963957
2008/02/03(日) 16:48:020964デフォルトの名無しさん
2008/02/03(日) 16:48:58実際にどのレベルまで書いていいのかな?って悩む時はあるね。
基本的にメソッドと同じくらいの処理はかけるわけで。。。
0965デフォルトの名無しさん
2008/02/03(日) 16:52:02set には1文しか書けないよう制限すればいいのに。
0966デフォルトの名無しさん
2008/02/03(日) 17:01:08Bitmap.Widthはコスト無いと思うだろ普通
0967デフォルトの名無しさん
2008/02/03(日) 17:01:22実質複数の引数を渡してるのと同じことができるからな。
メソッドと変わりはあんまないような。
つまり、線引きの問題だよな。
0968デフォルトの名無しさん
2008/02/03(日) 17:01:27本末転倒でしょそれは。
プロパティの目的はOOP的な思考モデルに実際のコーディングを近づけることにあるんであって、
処理の効率化のためではない。
0969デフォルトの名無しさん
2008/02/03(日) 17:03:11MSのガイドラインに背いてまで、メソッドではなくプロパティで重い処理をしなければならない
本質的な理由にはどんなものがあるのかな
0970デフォルトの名無しさん
2008/02/03(日) 17:05:270971デフォルトの名無しさん
2008/02/03(日) 17:05:59問題は重いと重くないの境目でしょ。
0972デフォルトの名無しさん
2008/02/03(日) 17:07:11セッターでセットした時にクラス使用者には意識させず対象プロパティ以外の値を変更したいとき
0973デフォルトの名無しさん
2008/02/03(日) 17:07:32次スレも期待
0974デフォルトの名無しさん
2008/02/03(日) 17:08:11愚問だね。
その方がライブラリの使用者にとって直感的なインターフェイスだからでしょ。
0975デフォルトの名無しさん
2008/02/03(日) 17:09:510976デフォルトの名無しさん
2008/02/03(日) 17:12:55TrackMouseEvent
0977955
2008/02/03(日) 17:18:56あぁ、まさにそれです。
http://www.thescripts.com/forum/thread268276.html
ここに書かれてる内容こそが、今私が悩んでいるところです。
熟読してみます。
どうも。
0978955
2008/02/03(日) 17:30:10これはMFCのプログラミングになっちゃいます。
WM_NCMOUSELEAVEをC#側でdefineしないといけないってことか。
0979デフォルトの名無しさん
2008/02/03(日) 17:32:34しかしプロパティの取得に時間がかかるのは直感的ではない、とw
0980955
2008/02/03(日) 17:35:47const int WM_ENDSESSION = 0x16;
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
のリストが掲載されているWebページってありますか?
もちろん今自分で探していますけど。。。
0981デフォルトの名無しさん
2008/02/03(日) 17:37:510982デフォルトの名無しさん
2008/02/03(日) 17:38:11WinUser.h
0983955
2008/02/03(日) 17:38:40http://msdn2.microsoft.com/en-us/library/ms645626(VS.85).aspx
0985955
2008/02/03(日) 17:45:38素人発言で気に障ったかたもいらっしゃったと思いますが、
ありがとうございました。
ふらっとC#,C♯,C#(初心者用) Part24
http://pc11.2ch.net/test/read.cgi/tech/1202028267/
0986955
2008/02/03(日) 17:52:10それ以外だと来ますが。
Console出力をして確認して気づきました。
一難さってまた一難。
0987デフォルトの名無しさん
2008/02/03(日) 17:58:330988デフォルトの名無しさん
2008/02/03(日) 18:01:330989デフォルトの名無しさん
2008/02/03(日) 18:05:30新スレ立てるなら関連スレもはれよ。
中途半端な仕事しやがって。
0990955
2008/02/03(日) 18:07:48こんなに苦労をするとは予想外でした。
0991デフォルトの名無しさん
2008/02/03(日) 19:29:450992デフォルトの名無しさん
2008/02/03(日) 19:31:500993デフォルトの名無しさん
2008/02/03(日) 21:26:41覚えとけ
0994デフォルトの名無しさん
2008/02/04(月) 00:10:10メッセージすら生成されないと思うのだが
0995955
2008/02/04(月) 08:44:44htmldoc.Body.MouseLeave += new HtmlElementEventHandler(Body_MouseLeave);
htmldoc.Body.MouseEnter += new HtmlElementEventHandler(Body_MouseEnter);
で、無事にイベントを得ることができました!
素人なもんで、まさかBodyにイベントをデリゲートできるとは思いませんでした。
ありがとうございました!!!
みなさん、ありがとうっ!!!!
0996デフォルトの名無しさん
2008/02/04(月) 10:09:290997デフォルトの名無しさん
2008/02/04(月) 10:13:170998デフォルトの名無しさん
2008/02/04(月) 12:50:210999デフォルトの名無しさん
2008/02/04(月) 13:16:551000デフォルトの名無しさん
2008/02/04(月) 13:17:1610011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。