- 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で始めないと
メッセージすら生成されないと思うのだが
|

|