1 名前:デフォルトの名無しさん [2010/05/16(日) 23:13:52 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part58 pc12.2ch.net/test/read.cgi/tech/1269261310/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>1-5 くらい
357 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 07:02:30 ] ほぼ正解
358 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 09:15:18 ] >>347 TableLayoutPanelコントロールを使えばOK
359 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 12:33:22 ] 入力チェックについて相談させてください。 フォーム内に登録されているコントール全ての Validating イベントを発生させるには どうしたらよいのでしょうか? 現在、それぞれの項目の入力チェックは Validating イベントの中で処理し、 内容が正しくない場合は ErrorProvider を使用してアイコンを表示するようにしています。 このままですと一度もフォーカスを得ないままのコントロールは入力チェックがなされないままになってしまいます。 なので、登録ボタンを押下したタイミングでも全ての項目の入力チェックを行なおうと考えたのですが うまい方法が思いつきませんでした。 ContainerControl の Validate メソッドで子コントロール全てを Validate できるのかと思ってためしたのですが だめでした・・・
360 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:06:01 ] つValidateGroup
361 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:37:35 ] >>360 ValidatingGroup ですね。 ASP.NET 用ですか・・・ Windows Form では使えなさそうですね。
362 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 14:46:57 ] ContainerControl.ValidateChildrenは?
363 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:20:58 ] >>362 おおお! まさしくそれです ありがとうございます 実装してみたところ期待通りの動作となりました しかし・・・ なぜか自分ところの環境(VSEE2008)だと ValidateChildren がインテリセンスにもオブジェクトブラウザにも出てこない・・・ ターゲットは .NET 2.0 にしてるしビルド自体は通るから問題なさそうなんだけどなんでなんだろう
364 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:24:10 ] Browsable(false)属性付きだから なんでそうしてるかは.NETの中の人に聞かないといけないが
365 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 15:34:56 ] なるほど。 Form の方では Browsable(true) になっていました。 メソッドの性質を考えるとなるべく上位で使って欲しいからとかそんなとこなんでしょうかね。 重ね重ねありがとうございます。
366 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 16:38:40 ] やるな
367 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 17:01:44 ] ADO.NETで質問なんですが、 DataRow一行だけを編集するような画面を作る場合でも TextBoxとかComboBoxにバインドするのが一般的な作り方なんでしょうか? それとも一々内容を移しかえるやり方が一般的なんでしょうか?
368 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 17:15:30 ] たった1行でも入力項目が多ければバインドする〜
369 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 19:02:49 ] ADOは見通しが悪いよね
370 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 19:07:50 ] 手書きのADO.NETはそう悪くないんだけど ウィザード生成の型付きデータセットが意外と解り辛くて不評。
371 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:06:03 ] WebRequestでのFTPPUTはたまにリモートサーバーに接続できないエラーになるけど、 やはり、ソケットで作らないとだめなのかしら?
372 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:11:05 ] んなことはない。
373 名前:デフォルトの名無しさん mailto:sage [2010/06/06(日) 22:18:06 ] IEのHTTP/GETだってたまにリモートサーバーに接続できないエラーになるぜ
374 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 04:51:02 ] いやそれはルータが腐ってるw
375 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 09:11:05 ] ルーターも然り、相手の環境のせいも然りってことでしょ。 いろんな環境原因も含めてHTTPやFTP、その他の通信でも失敗することはある。
376 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 12:12:39 ] FFFTPとかのいい加減枯れてるツールでも結構なるしな そう言うモンだと思って回復手段作り込むしかあんめ
377 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 12:21:13 ] タイムアウト、リトライ、リジュームあたりを実装したら、 FTPはまともな動きになるだろう。
378 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 20:51:14 ] そこまで望む場合は自分で作ればいい。 FTPなんてチョー簡単だし。(PASV実装とかチョイ面倒くさい程度)
379 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 21:33:36 ] >>378 .net frameworkだけで手軽に実装できるだろ。
380 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:19:51 ] Windowsアプリケーションにて、画像の上に透過的な四角い枠線(色付き)を重ねたいのですが、 どのように実装したらよいでしょうか? 宜しくお願いします。
381 名前:デフォルトの名無しさん mailto:sage [2010/06/07(月) 23:50:40 ] >>380 Panelでできないっけ。 今もPanelあるんだっけ。
382 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:02:47 ] >>380 現状ではコントロールは親コントロールに対してしか透過してくれないんだよね。 まぁ動かしたりするんなら糞重たくなるけど、その枠が乗る範囲が対象の画像のどこにあたるかを計算してその部分の画像データを枠を描画するコントロールの背景に描画とか。 まぁサクサク動いて透過もできてってなるといっそのことDirectXやOpenGLに2次元的な描画をするしかない。
383 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 00:58:16 ] PictureBoxの子に枠線のPictureBoxなり追加すりゃいんでね
384 名前:デフォルトの名無しさん [2010/06/08(火) 08:05:10 ] >>383 WinFormだと透過を扱うのは面倒だよ
385 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 08:31:38 ] OnPaintの内部で好きなように描けばいい。
386 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 10:13:32 ] PictureBoxをはみ出す可能性があるなら厄介 OnPaintだったら一切コントロール使わずに重なる可能性のあるもの全部 自分で描かないといけない
387 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 10:32:26 ] どのレベルの運用なんだろう? 例えばユーザーがドラッグドロップした部分に枠を描画してそれを消したりすることが出来なければいけないなら 自分でレイヤーみたいなデータを順番に記憶してクリックされたら枠線描画して移動できるようにする とかいろいろ考えられるけど
388 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 11:33:45 ] 透明なウィンドウを重ねるのが確実 そういうの多用するんだったら努力するだけ時間の無駄だからさっさとWPFへ
389 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:31:04 ] FtpWebRequestのAbort忘れかも。
390 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 02:02:52 ] 枠引くくらいなら枠線用のPictureBoxなどを配置して上に置いて Regionで内側を切り出すのがほどほど楽だと思うよ。
391 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 05:21:48 ] コントロールの重ね合わせは数が増えると重くなるからスピードが必要ならDirectX
392 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 09:55:17 ] C#2.0 マルチスレッドで質問です short型の変数Aがあるとします。 メインスレッドはある変数Aを読み込むだけ サブスレッドはある変数Aを書き換えるだけ 上記のような状態で通常 書き込み時に適当なオブジェクト等を使用してロック・読み込み時もロック するような気はするんですが 仮に 両方ロックしない場合で サブスレッドで 変数Aが 0(16bit全てOFF)の値になっている時に 変数Aを65535(16bit全てON)に変更したとします。 この場合変数Aは限りなく瞬間的に全てのビットを順番にONしていくと思うのですが、 その途中にメインスレッドが読み取りを行った場合に例えば8bitだけONになったりしている状態を読み取る場合ってあるのでしょうか? ちょっと質問の仕方が微妙かもしれませんがお願いいたします。
393 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 10:18:11 ] CPU命令の最小単位考えたらわかるべ
394 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 10:21:15 ] >>392 > この場合変数Aは限りなく瞬間的に全てのビットを順番にONしていくと思うのですが、 > その途中にメインスレッドが読み取りを行った場合に例えば8bitだけONになったりしている状態を読み取る場合ってあるのでしょうか? 32bitプロセスでは32bitまでならアトミック そんなの気にするよりvolatile
395 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:28:13 ] >>392 download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol3_i.pdf この資料のp.258に > インテルPentium 4 プロセッサ、インテルXeon プロセッサ、P6 ファミリ・プロセッサ、 > インテルPentium プロセッサ、Intel486 プロセッサでは、キャッシュ可能メモリへのア > クセスで、バス幅、キャッシュ・ライン、ページ境界をまたがっているものは、アト > ミック操作が保証されない。 とあるので、そういう状況が起こる可能性はゼロじゃない。 本当にアトミック操作が必要な場合は、あなたの言うとおり、ロックするなりアトミック操作 命令をつかうなりする。
396 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:29:37 ] shortの変数がそれらをまたがる可能性があるということか
397 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 23:46:29 ] C#の場合はアライメント境界整列は保証されるとどっかで読んだ記憶が まあ将来に渡って保証されてる訳でもないだろうけどな
398 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 00:46:26 ] MSDNのInterlocked.Readとか読んでると保証されるとも取れるようなことが書いてあるよ
399 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 01:13:01 ] StructLayoutした構造体でも適用されるのだろうか・・・ マーシャリング機構が魔法を使ってくれてるかもしれないから否定しているわけじゃない。
400 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 02:10:54 ] >>392 それやると大抵は読み込むだけのスレッド側の処理は最適化で消えて読み込まなくなるから 中途半端に読み込む状態を仮定する以前の動作になるよ。
401 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 02:52:11 ] volatileぐらいわかるよバカやろう
402 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 03:34:05 ] >>392 なんでそういう事をわざわざ考えるのかよくわからないけど ReaderWriterLockつかえば解決とか言う話でもないの?
403 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 03:38:57 ] アトミックな操作が本当にそうなのかについて疑問に思ったんじゃないの? いいことだと思うよ。
404 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 06:40:13 ] なんでそうなるのかとかは知っといた方がおもしろいよね。
405 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 12:34:40 ] GCが配置する時に8バイト境界にするってどこかで見た覚えがあるんだがどこだったかな
406 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 12:42:42 ] レジスタのビット書き換えフェーズ中に割り込みか同時読み込みできる そういうすごいCPUの話じゃないの?
407 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 13:36:17 ] >>392 short型ならすべてのビットが同時に書き換えられる。1ビットずつ順番ではない。 もちろんプログラムが1ビットずつ書き換えるように作ってあれば話は別だけど、単純に A = 0; A = 65535; のように代入するだけならすべてのビットが同時に変更される。 もし中途半端な状態が発生したら、それはメモリの故障。
408 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 13:51:19 ] >>406 物理コアが複数だと、そう言い切れなかったりする 上でも何回か出ているアライメント境界の問題で、 複数回フェッチが起こる可能性があるからだ ここらはキャッシュコヒーレンシとか色々関係しててややこしい
409 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:08:02 ] 横レスなんだけど >>407 いろいろ読む限り仮にこれが32bitOSでLongだったら書き換えは複数回に分割されてしまうということなんだろうか?
410 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:28:17 ] 仕様としてはどうなっているんだ?
411 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 15:50:08 ] 5.5 変数参照の分割不能性 bool、char、byte、sbyte、short、ushort、uint、int、float の 各データ型および参照型の読み取りと書き込みは分割不可能です。 また、上記の型を基になる型に持つ列挙型の読み取りと書き込みも 分割不可能です。long、ulong、double、decimal などのその他の データ型、およびユーザー定義型の読み取りと書き込みは、分割不可能 であることが保証されていません。この目的で設計されたライブラリ関数を 除いて、インクリメントやデクリメントの場合などでの分割不可能な 読み取り/変更/書き込みは保証されていません。
412 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 19:34:34 ] >>411 CPUレベルではともかく、CLRレベルでは保証されてるってことか。
413 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 20:38:48 ] 32bit以上での実装を事実上想定しているわけだ。
414 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:36:58 ] 16ビットCPUだったらintも16ビット長じゃね? .netが16ビットでも動くかは知らんけど
415 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:41:29 ] intは32bitと決められている。
416 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:50:44 ] intが可変な言語って数えるほどしかない
417 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:52:51 ] CLRは32ビットプロセスなら32ビット境界に、64ビットプロセスなら64ビット境界に整列することを保証してる。 もちろんライアウトを変えた場合は別。 だから、少なくとも32ビット以下のプリミティブ型の読み書きはアトミック保障。
418 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:53:06 ] そういう言語では組み込み型はそのまま使わずにtypedefしてサイズを固定するという アホらしいノウハウが定着してる事実
419 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:53:57 ] ああ書き方おかしかった。 ライアウト→レイアウト。 で、そういうことやってない限りは保障されてる。
420 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:56:44 ] >>402 何のためだよw
421 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 21:58:16 ] つうわけで現実的には、32ビット以下ならvolatil変数、 32ビットを超えるものはlockするのが簡単。
422 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 22:09:14 ] ところでlongはvolatileにできないけど IntPtrや参照型のvolatileは64bitプロセスでどうなってるんだろう?
423 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:33:39 ] 64bit環境なら普通に問題ないだろ。
424 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:38:28 ] 64ビット環境では当然64ビットの読み書きは分割不可能。
425 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 23:47:07 ] x64とia64で違ったりしないのかな
426 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:13:50 ] 分割「不可能」って表現はどうなんだろうねえ。
427 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:19:47 ] atomicの定訳がないからねえ。「不可分」で良さそうなもんだが。
428 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 01:40:34 ] 相談室の方だしアトミックとだけ言っとけば通じるんじゃないか?
429 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 02:33:51 ] 今更このスレでアトミックや分割不可能の意味がわからん奴もいないと思うんだが・・・ まぁMSDNにもそう書いてあるんだし、そのままでいいんじゃないか? というか、やっぱPGて細かく突き詰めると深いよなぁ と改めて思う
430 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 11:50:42 ] なぁ、紐づく・紐付ける・紐づいたXX って英語でなんていうんだ? てか、紐づくの語源はどっから?
431 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:00:03 ] そんなの 関係する とかに置き換えたらいかんの? 語源はググってくれ
432 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:34:12 ] そう言えば、英語と1対1な用語じゃないような気がするねえ。 link,bind,relationshipのいずれかを局面に応じて使うんじゃないかな。
433 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 12:47:27 ] associateとかもあるな
434 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 18:55:47 ] A (which is) tied together with B とか
435 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 22:53:09 ] assigned とかは? 命名スレ行きかな
436 名前:デフォルトの名無しさん mailto:sage [2010/06/12(土) 18:00:58 ] wiredだな
437 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 01:55:45 ] weirdとな
438 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:04:54 ] ttp://techbank.jp/Community/blogs/mymio/archive/2010/03/07/25216.aspx この記事の意味わかる人いる?
439 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:11:10 ] 確かに全くわからない new { trueValue = new BitVector32(-1), falseValue = new BitVector32(0) }と new { trueValue = new BitArray(1)[0] = true, falseValue = new BitArray(1)[0] = false } を比較したら処理速度以前に値型と参照型の違いで前者が速いに決まってる 何がしたいのかも意味不明
440 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:24:00 ] >new BitVector32(-1)[(int)BitFlag.TrueIndex] BitFlag.TrueIndexは0のことだから、 >new BitVector32(-1) -1じゃなくても何を渡してもたとえ0でもTrueになるしな。
441 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:26:43 ] >new { trueValue = new BitArray(1)[0] = true, falseValue = new BitArray(1)[0] = false } これに至ってはビットセットしてるつもりで実は取得しかしてない気がする。
442 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:27:44 ] Microsoft MVPかよw
443 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 13:41:36 ] >>441 逆 設定はしてるけど取得はしてない trueValueに代入されるのはリテラルのtrue
444 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:10:33 ] (int16)trueが1になったり-1になったりする!大発見!スイーツ(笑) ってことか?
445 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:16:21 ] 回数増やすと差が開くのはGCが動くからかな? なんにせよそんなBitArrayの使い方ありえない
446 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:30:00 ] 本人も言ってるけど、本当に > プログラミング言語論やアルゴリズムに元々興味がなかった んだろうな。
447 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:42:15 ] そうだとしてもこれ普通に仕事に支障が出るレベルじゃね
448 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:44:24 ] Console.WriteLine("BitVector32の-1: {0}", .... そりゃ何やったって-1が出るよな。
449 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:53:20 ] >>440 BitVector32の仕様を理解してない? インデクサの引数をマスクじゃなく インデックスだと思っているとか。
450 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 14:54:15 ] >>438 あれ? コメント消えた?
451 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:07:19 ] ?
452 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:08:41 ] 貼ったのは本人かよwwwwww
453 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:13:54 ] というか記事自体消えたw
454 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 15:26:45 ] 流石はMVPだな
455 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 19:55:01 ] 丸ごと消して逃げるってのは技術者の態度としては酷いなあ 別に誰だって間違いはあるんだから、素直に分かってませんでした、でいいのに。
456 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:05:52 ] …ほかの記事も全部巻き込んでコメント消えたな… どうなってんだ…真面目に聞いてたのに… あーあ、どうせ荒らされたからコメント停止したとか、そういうことにされてんだろうな
457 名前:デフォルトの名無しさん mailto:sage [2010/06/13(日) 20:12:09 ] まあそれぐらいで許してやれよ。 打たれ強い人ばかりじゃないんだ