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


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

ふらっとC#,C♯,C#(初心者用) Part23



1 名前:デフォルトの名無しさん [2008/01/11(金) 15:41:00 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

ふらっとC#,C♯,C#(初心者用) Part22
pc11.2ch.net/test/read.cgi/tech/1197802312/

945 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 15:58:56 ]
>>942
Color.White.Bがネックにならないのは、コンパイラがそれをリテラルに
置き換えてるからだろうけど、どうしてコンパイラはColor.White.Bの値を
定数扱いしても大丈夫だと知ることができるんだろう・・・

946 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:01:52 ]
> コンパイラがそれをリテラルに置き換えてるから
頭沸いてるんですか^^;

947 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:02:51 ]
>>946
君頭悪いでしょw

948 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:11:14 ]
>>933
MDAの影響は排除してる?
ttp://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=521353&SiteID=7

949 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:15:28 ]
おまいら!もちつけ!
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;)
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(


950 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:17:40 ]
WebBrowserって、MouseEnterのイベントをサポートしてないのか!
なぜだ!?

951 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:18:19 ]
それより困るのは、ArrayList.Countじゃね?
ArrayListの実装って配列モドキのくせに
CountにO(N)かかるんだけど・・・
一度それでハマったことがある

952 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:20:13 ]
は?

953 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:22:13 ]
>>951
さすがにそれは嘘だろうと思ってソース見てみたら変数の内容返してたよ。
というわけで少なくとも最新版のArrayListではO(1)。
ソース公開便利だね!



954 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:29:53 ]
>>953
そうなんだ
昔のArrayListで
while(al.count > 0){
・・・O(N)の処理
}
ってやったらやたら時間がかかって、
しばらく悩んでたらArrayList.countがO(N)で、O(N^2)になってたことがある
このときは死ねよと思ったが改善されたなら良かった

955 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:33:21 ]
WebBrowserでMouseEnterを受け付ける方法ってありますか?
もしくは、WebBrowserの親に通知する方法とか。

956 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:11 ]
処理に時間のかかるプロパティは作るな!っていうMSのガイドラインがあるけど
あんまり守られてないなw

957 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:34:46 ]
forとwhileの違いを教えてください

下記のところを読んでも違いがよくわかりませんでした
ひょっとしてforはいらない子なのでしょうか?

d.hatena.ne.jp/gallu/20060829/p2


958 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:37:18 ]
それを肯定したらC#の存在意義がなくなる
foreachもいらないLINQもいらないプロパティもデリゲートもいらない

959 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:37:45 ]
>>956
根本的な疑問。

「作るな!」って宣言すれば、本質的に重い処理にならざるを得ないプロパティが
軽くなるの?w

960 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:38:30 ]
>>957
むしろwhileがいらない子なんじゃないの

961 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:41:20 ]
>>959
重い処理はメソッドにする
プロパティだとなんとなくループ中に繰り返し呼び出してもOKかな?という感じがあるから
msdn.microsoft.com/library/ja/default.asp?url=/library/ja/cpgenref/html/cpconpropertyusageguidelines.asp

962 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:45:03 ]
>プロパティだとなんとなくループ中に繰り返し呼び出してもOKかな?という感じがある
むしろその感覚の方を修正すべきなのでは?
だってそれは単なる願望であって、現実的な認識じゃないでしょ。

963 名前:957 mailto:sage [2008/02/03(日) 16:48:02 ]
とくに違いはないということでよろしいのでしょうか?(´・ω・`)



964 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:48:58 ]
たしかに、プロパティにルーティンをかけるけど、
実際にどのレベルまで書いていいのかな?って悩む時はあるね。

基本的にメソッドと同じくらいの処理はかけるわけで。。。

965 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 16:52:02 ]
get には return 文しか書けないよう、
set には1文しか書けないよう制限すればいいのに。

966 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:08 ]
コントロールのプロパティは仕方ないとしても
Bitmap.Widthはコスト無いと思うだろ普通

967 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:22 ]
setだって、配列データをobjectとして渡して、中で分解して使うようにすれば、
実質複数の引数を渡してるのと同じことができるからな。

メソッドと変わりはあんまないような。
つまり、線引きの問題だよな。

968 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:01:27 ]
>>965
本末転倒でしょそれは。
プロパティの目的はOOP的な思考モデルに実際のコーディングを近づけることにあるんであって、
処理の効率化のためではない。


969 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:03:11 ]
素朴な疑問なんだけど
MSのガイドラインに背いてまで、メソッドではなくプロパティで重い処理をしなければならない
本質的な理由にはどんなものがあるのかな

970 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:05:27 ]
do-whileがあればいいのに

971 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:05:59 ]
>>969
問題は重いと重くないの境目でしょ。

972 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:07:11 ]
>>969
セッターでセットした時にクラス使用者には意識させず対象プロパティ以外の値を変更したいとき


973 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:07:32 ]
今日の話は勉強になった。
次スレも期待



974 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:08:11 ]
>>969
愚問だね。
その方がライブラリの使用者にとって直感的なインターフェイスだからでしょ。


975 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:09:51 ]
基本的には、1つに対してのget,setのみの使用でしょう。

976 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:12:55 ]
>>955
TrackMouseEvent

977 名前:955 mailto:sage [2008/02/03(日) 17:18:56 ]
>>976
あぁ、まさにそれです。

www.thescripts.com/forum/thread268276.html
ここに書かれてる内容こそが、今私が悩んでいるところです。
熟読してみます。
どうも。

978 名前:955 mailto:sage [2008/02/03(日) 17:30:10 ]
やっかいですね。
これはMFCのプログラミングになっちゃいます。

WM_NCMOUSELEAVEをC#側でdefineしないといけないってことか。

979 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:32:34 ]
>>974
しかしプロパティの取得に時間がかかるのは直感的ではない、とw

980 名前:955 mailto:sage [2008/02/03(日) 17:35:47 ]
const int WM_CLOSE = 0x0010;
const int WM_ENDSESSION = 0x16;
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;

のリストが掲載されているWebページってありますか?
もちろん今自分で探していますけど。。。

981 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:37:51 ]
素直にWindows SDK入れとけよ

982 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:38:11 ]
>>980
WinUser.h

983 名前:955 mailto:sage [2008/02/03(日) 17:38:40 ]
見つけたけど、肝心の値がないw orz

msdn2.microsoft.com/en-us/library/ms645626(VS.85).aspx



984 名前:955 mailto:sage [2008/02/03(日) 17:41:04 ]
>>982
winuser.hにありました。

#define WM_NCMOUSELEAVE 0x02A2

誠にありがとうございます。

985 名前:955 mailto:sage [2008/02/03(日) 17:45:38 ]
お礼の意味を込めて次スレを立てときました。
素人発言で気に障ったかたもいらっしゃったと思いますが、
ありがとうございました。

ふらっとC#,C♯,C#(初心者用) Part24
pc11.2ch.net/test/read.cgi/tech/1202028267/

986 名前:955 mailto:sage [2008/02/03(日) 17:52:10 ]
WebBrowserだと、WndProcにWM_MOUSELEAVEのイベントがこないですね。。。
それ以外だと来ますが。

Console出力をして確認して気づきました。
一難さってまた一難。

987 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:58:33 ]
ここはお前の日記帳じゃない

988 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:01:33 ]
俺は応援してるよ

989 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:05:30 ]
>>985
新スレ立てるなら関連スレもはれよ。
中途半端な仕事しやがって。

990 名前:955 mailto:sage [2008/02/03(日) 18:07:48 ]
単にWebBrowserでマウスイベントを検出したいだけなんですけどね。
こんなに苦労をするとは予想外でした。

991 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:29:45 ]
Document.Bodyのイベントを使うのはダメなのか?

992 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 19:31:50 ]
中身がHTMLDocumentじゃなかったら使えないだろ。

993 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:26:41 ]
Application.AddMessageFilterで横どる。色々応用きくからこの際
覚えとけ



994 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 00:10:10 ]
TrackMouseEventで始めないと
メッセージすら生成されないと思うのだが






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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