- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:27 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part23 pc11.2ch.net/test/read.cgi/tech/1200033660/
- 369 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:14:42 ]
- いやー、訳分からんPG起動させるオマイラほんと関心するわww
- 370 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:20:19 ]
- コントロールの再描画についての質問ですが、Control.Updateメソッドは
「再描画すべき所があればWindowsメッセージキューに即割り込んでPaintイベントを発生する」 という理解でいいんでしょうか? いちおう↓とか読んだのですが、いまいちピンと来ないもので。 ttp://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
- 371 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 21:35:48 ]
- >>369
訳分からんやつはそも参加しない話 そしてPGなんて略し方(笑)
- 372 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:09:26 ]
- すいません質問です。
PointFの引数になぜPointを代入できるのは仕様でしょうか?
- 373 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:10:37 ]
- 修正してたら日本語がおかしくなってしまいました、すいません。
- 374 名前:デフォルトの名無しさん [2008/02/08(金) 23:14:32 ]
- VC#2005で、プログラムを組んでいるのですが、
C言語で書いた関数(メソッド)を使いたいと思っています。 ですが、.Cファイルをコンパイル、リンクする方法がわかりません。 プロジェクトに.cファイルをぶち込むと、テキストファイル?として 認識され、うまくリンクされていません。 VC++だと.Cファイルも使えたのですが、C#ではできないのでしょうか? .Cファイルをincludeする方法がありましたら、教えてください。 スレ違いでしたら誘導お願いします。
- 375 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:15:33 ]
- VC#では_
- 376 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:21:38 ]
- まずCOMとIDLを用意してください
- 377 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:23:15 ]
- >>372
暗黙の型変換が出来るように演算子がオーバーロードされている。 public static implicit operator PointF(Point p)
- 378 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:26:38 ]
- >>374
VC++でC向けのDLLとしてコンパイルしてC#からDllImport またはC++/CLI
- 379 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:37:40 ]
- Cのソースがそのまま使えるかもなんて発想はどこから来るんだ
- 380 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:40:20 ]
- そんなに量が多くないんだったら手書きでC#に移植したら
- 381 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:41:03 ]
- >>370
ほぼOKじゃね メッセージキューに割り込むってか WndProcを直接呼ぶ
- 382 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 23:41:30 ]
- >>377
式で検索したら出てきました、ありがとうございました。 ということは内部で構造体を作り直してるのでやりすぎると遅くなりますね。
- 383 名前:374 mailto:sage [2008/02/09(土) 01:33:43 ]
- レスくれた方、ありがとうございます。
簡単には、C#でCのファイルは使えないんですね。 DllImportでの使用か、C#で書き直すか(限りなく大量ですが。) 検討してみます。 VC++でプログラム組んだほうが早い気もするし、困ったもんです。 ありがとうございました。
- 384 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 01:58:47 ]
- C++/CLIおすすめ
DLLコピーし忘れ事故を一番防止できると思う プロジェクトに加えておけば勝手にコピーしてくれるし
- 385 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 02:01:17 ]
- >>383
普通にDLL作ってC#から読ませるだけやがね
- 386 名前:370 mailto:sage [2008/02/09(土) 03:35:09 ]
- >>381
"直接呼ぶ"というのはどういう意味ですか? WndProcは「.NETの外から来るWindowsメッセージを.NETのイベントに置き換えるメソッド」なので Updateメソッド→Windowsメッセージ(WM_PAINT?)→WndProcメソッド→Paintイベント という流れなんでしょうか? あと、Paintイベントを発行するOnPaintメソッドがありますが、これは上記には絡まないんですか?? Paintイベントが発行されるまでの流れが分からなくて混乱しています。。(まだこの辺理解するには早いのかも 質問ばかりですみません。
- 387 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 07:53:57 ]
- >>386
何が流れているの? データ?処理?他?
- 388 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 08:34:49 ]
- public class A {
何か処理 class AData { } } みたいに、自クラス内のみ、もしくはそのファイル内でのみ使えて、 外部からは見えないクラスを使いたいのですが、 アクセスレベルはどのように書けば良いのでしょうか。
- 389 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 09:12:25 ]
- private。
ちなみに、A、ADataとも、互いのprivateフィールドやメソッドにアクセス可。 ソースファイル単位のアクセスレベルはない。
- 390 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 10:53:43 ]
- public class A {
private void hoge() { AData data = new AData(); data.ANum = 1; } private class AData { private int ANum; private AData(){} } } のように書いてみたんですが、 AData data = new AData(); data.ANum = 1; この部分で両方ともアクセスできない保護レベルになってると怒られるんですが…。
- 391 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:06:28 ]
- >>390
AData は Aから見て別クラスなんだから、メンバまで private にしたら当然見えない。 ADataはAのprivateクラスだから、Aの外からは見えないがADataそのものはAからは 見える。 ので、ANumをAから見たければ、こうする。 public class A { private void hoge() { AData data = new AData(); data.ANum = 1; } private class AData { public ANum; public AData(){} } }
- 392 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:29:24 ]
- >>386
WndProcとPaintイベントの間にOnPaintが挟まる。 メッセージキューは、位置としてはWndProcより前にあるのだが、 (Updateのように)これを介さずWndProcへ送られる場合もあって、 それを381は直接呼ぶと表現しているんだろう。
- 393 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:48:46 ]
- >>391
それをやると、アクセシビリティに一貫性がありません、ADataのアクセシビリティは フィールド○○よりも低く設定されています。 と怒られてしまいます。
- 394 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 11:59:09 ]
- >>393
>>391の通りならエラーにはならない どこかでAData型をAの外に見せてるんだろ
- 395 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:03:07 ]
- >>393
今適当にやったけど、普通にできるぞ。本当にそのエラーなのか?
- 396 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:05:54 ]
- public class A {
public AData data;//ここでエラー private void hoge() { data = new AData(); data.ANum = 1; } private class AData { public int ANum; public AData(){} } } たぶんこうなってると推測 クラス外から見えない型のオブジェクトを公開しても外から触れないだろ
- 397 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:11:49 ]
- オブジェクト思考じゃないかもしれないですけど、階層型の構造になったプログラムで、兄弟(同階層)のオブジェクトの状態を知りたいときはどうするべきでしょうか?
親から回すしかないですかね?
- 398 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:15:49 ]
- 子に親への参照を持たせるかな
- 399 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:18:28 ]
- 漠然としすぎててワカンネ
兄弟だろうと姉妹だろうと参照もてばいいんじゃねーの
- 400 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:30:28 ]
- >>397
日本語でおk。
- 401 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:50:32 ]
- オブジェクト思考がなんだか解らないから、
参照持たせた所で、それは「オブジェクト思考」じゃ無いって叩かれるのを避けたかったんじゃない? オブジェクト思考がなんだか解らないの、声だけ大きいキチガイが身近に居るとか。
- 402 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:51:55 ]
- >>398
それアリなの?おぶじぇくと思考的に
- 403 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:54:55 ]
- Parent プロパティ
でMSDN引いてみれば
- 404 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 12:59:43 ]
- >>352
もう少し隠蔽すべきデータかどうか考えてみたら? 他の鯖認証してるツールのアクセスログとか見てみな。
- 405 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 13:50:05 ]
- オブジェクト思考ではなくオブジェクト指向な。
- 406 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:08:52 ]
- >>390
これじゃだめなん? private class AData { private int aNum; protected internal int ANum { get { return aNum; } set { aNum = value; } } protected internal AData() { } } }
- 407 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:17:22 ]
- 本末転倒だな
- 408 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:21:10 ]
- つーかC#の話題じゃなくてオブジェクト指向スレ行けよ
- 409 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:54:12 ]
- なんで馬鹿ってのはすぐに「〜スレ行けよ」って言いたがるんだろうねw
- 410 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:02:59 ]
- そりゃ自分に理解できないことは全部すれちがい
- 411 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 15:22:58 ]
- 何で直線バカって目先のことしか考えられないんだ
どうでもいい話は直ぐ飛びつくしキモいんだよな
- 412 名前:370 mailto:sage [2008/02/09(土) 16:30:52 ]
- >>392
>WndProcとPaintイベントの間にOnPaintが挟まる。 Paintイベントは直接的にはOnPaintによって発行される、ということでしょうか ということはもしかして「イベントHogeは常にOnHogeメソッドによって発行される」のですか? もしそうならスッキリしますね。 そうすると、例えばpictureBoxインスタンスのPaintイベント処理は、 「pictureBox_Paintイベントハンドラを設定」と「overrideしたOnHogeの作成」 のどちらでも機能的に同じことができる、ということでしょうか? (そういえば誰かが「同じことをするにも何通りものアプローチがあるから、1つに拘るな」と言ってたのを見た記憶が) >>387 他のウィンドウに隠れて無効化されたコントロールを再描画する、という単純なものです。。。
- 413 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:17:26 ]
- こんばんは
C#でメモリ確保の方法ってありますか? 指定したメモリ数を確保するツールを作りたいのです。 教えてください。
- 414 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:45:11 ]
- 確保してどうしようってんだ
- 415 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:49:13 ]
- それで思い出したけどスタックアロケートみたいのあったよね、あれってなんだったんだか
- 416 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:01:14 ]
- >>413
new
- 417 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:12:19 ]
- クラスのフィールドを取得するとき、フィールドをpublicにするかプロパティを用意するかは、どうやって決めたらいいんですか?
チェックなどを設けずに単にset{ this.hoge=hoge; } get{ return hoge; }とするのでも、プロパティ使う意味あるんでしょうか?
- 418 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:15:21 ]
- >>413
一昔前にあったメモリを強制的に確保して開放するメモリ掃除ツールの模倣? Console.ReadLine(); byte[] buffer = new byte[1024 * 1024 * 256]; buffer[1234567] = 5; //最適化防止用 Console.ReadLine()を抜けるとタスクマネージャにおけるPF使用量が増える。 ただNT系でメモリ掃除効果があるかは知らん。用途勘違いしてたら無視してくれ。
- 419 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:35:00 ]
- www.atmarkit.co.jp/fdotnet/onepoint/onepoint02/onepoint02_01.html
この記事を読んで一瞬でも難しいと思った自分は、まだまだ修行不足なんだろうなぁ… 返り血が構造体なプロパティや、構造体なコレクションのforeachなんかは 自分もそのうち使うと思うので注意だけど、他にも初心者は気をつけとけ!っていう所ありますか?
- 420 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:58:23 ]
- >>419
> 構造体なコレクション これ,できるのか・・・継承とか委譲とかはクラスにしかできないとおもてた
- 421 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:25:22 ]
- >>419
フィールドやセッターならエラー吐いてくれるからまだいいけど、 破壊的なメソッド呼び出しはエラーにならずに コピーに対して無意味な操作をしてしまうって方が厄介なんだよね。 これのせいで値型のメソッドはimmutableであるべきだとか そもそもフィールド操作と区別がつかないプロパティのシンタクスが 問題なんだとか主張もあったりなかったり。
- 422 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 05:54:21 ]
- あと値型でジェネリック系のコレクションを使う場合は
IEquatable<T>.Equals(T o)やIComparable<T>.CompareTo(T o)を 実装しないとパフォーマンスが非常に悪いことになる。
- 423 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:40:03 ]
- 初心者は構造体を使うな。
- 424 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:42:20 ]
- >>415
unsafe { byte* buf = stackalloc byte[10]; }
- 425 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:09:39 ]
- 構造体なんて自作するもんじゃないやね
- 426 名前:sage [2008/02/10(日) 13:11:27 ]
- データグリッドに以下の様な利用期間を表示しています
表示しているデータは、DBに対してSELECT文で SELECT data1,"〜",data2...で取得しています(data1,2はstring型 "〜"は表示上仕方なく) 開始日付 終了日付 20000101 〜 20000131 20010101 〜 20010131 20020101 〜 20020131 20030101 〜 20030131 20040101 〜 20040131 必要だと思うことが以下の3項目です 1、更新ボタンを押された際に開始、終了のどちらかがNULL場合はエラー 2、入力された値が日付で無い場合はエラー 3、開始日付<終了日付で無い場合はエラー 処理としては更新ボタンが押された際"DBのデータを削除後、画面情報をDBにINSERT"しようと考えています。 その際に"昇順、かつ終了日付<次の行の開始日付の様にZの様な並び"にソートする方法を調べていますが今一よく分かりません。 多次元配列で[0,2]と[1,0]を比較して逆なら行を入れ替えて・・・の様な作りになるのでしょうか・・・。 IComparableとArrayListを調べてるのですが基礎が無さ過ぎる為にかなりパニクってます; C#が初めての言語で経験2週間の度素人です・・・よければ教えてください。 開発環境はVisualStudio2003になります。
- 427 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:59:23 ]
- >>426
20020101 〜 20040131 20030101 〜 20030131 20020201 〜 20030115 こういうケースはどう並ぶの?
- 428 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:00:46 ]
- >>426
「表示」だけじゃ無いんだよな?日付入力して更新ということであれば 1.チェックの1〜3でOKならTMPテーブルに書き込む 2.TMPに書き込めたらcommitして元データ削除 3.TMPから元テーブルにコピー 4.元テーブルからSQLで読み込み(ここでソート) どうしても配列でソートなら「配列、ソート」でぐぐるか本嫁、基本だから 排他が気になるけど全デリート全インサートなん?
- 429 名前:419 mailto:sage [2008/02/10(日) 14:01:16 ]
- レスありがとうございます。せいぜい気をつけるしかないってことですね。
そういえば、C#のjavaより良い点の一つが、値渡しができる構造体って教わりましたよ。 なんとか使いこなせるよう頑張ろう。
- 430 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:10:29 ]
- 構造体を使うときに気をつけないといけないのはボクシング
こんなこというと,そんなもん大したコストじゃないだろとか言われそうだから先に言っとくけど, 構造体はそんなもんが問題になるような状況で使うもの
- 431 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:11:56 ]
- >>429
何が頑張ろうだ、頑張るのはお前だw
- 432 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:13:09 ]
- >>431
日本語って難しいよな
- 433 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:13:22 ]
- >>431
君頭悪いでしょw
- 434 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:13:34 ]
- 読解力がないだけ
- 435 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:14:58 ]
- >>431
同意
- 436 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:15:05 ]
- >>430
なんか言ってること変じゃないか?w よくわかってないのなら無理しない方がいいと思うよ
- 437 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:15:40 ]
- >>435
同意?
- 438 名前:430 mailto:sage [2008/02/10(日) 14:19:21 ]
- 構造体はそんなもんが→構造体はその程度のコストが
これでいいか?
- 439 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:23:39 ]
- よくないでしょw
ボクシングは構造体にまつわる問題だ、と自分で言ってるのに、 どうして「ボクシングが問題になるような状況で」構造体を使うんだよw
- 440 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:25:43 ]
- そうじゃなくて構造体の一番の意義は、
たとえば配列の要素にアクセスするような場面における参照型のオーバーヘッドを 回避することでしょ。
- 441 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:42:26 ]
- >>439
GC負荷を減らしたいときに構造体が活用できることがある。 でも構造体を使うときはボクシングに気をつけないとかえってGC負荷を増やしてしまう。 だからGC負荷を減らしたいときは、ボクシングに気をつけながら構造体の活用を考えよう。 というような話を>>430はしたいのだろう。
- 442 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:49:39 ]
- 構造体でボクシング利用するような事例ってどんなのだ?
- 443 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:52:35 ]
- ボクシングってなーに?
- 444 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:55:33 ]
- >>430はボクシングしないように構造体を使わないと早くならんぞといっているだけだろ
俺はほぼ全てのケースで構造体使っても早くならんと思ってるけどな
- 445 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:55:41 ]
- 構造体のアップキャスト
- 446 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 14:57:15 ]
- >>442
例えば構造体のToStringをオーバーライドしてないとき。 public struct Hoge { public int Fuga; } Hoge hoge = new Hoge(); string str = hoge.ToString(); // ←ここでボクシングがおきる 他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり
- 447 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:04:16 ]
- >>444
構造体は速くするためというよりは遅くならないための仕組みな気がするね。 >>446 >他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり GetHashCodeのオーバーライドも忘れずに。
- 448 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:40:00 ]
- >>446みたいなのって単なる設計のミスだと思うんだけど。
- 449 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 15:56:38 ]
- static string ToString(ValueType this);//ValueTypeは参照型
こんなメソッドを呼び出してることに相当するわけだから
- 450 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:06:28 ]
- >>448
>>449 C#コンパイラが出力したIL見てみれば分かるけど .NET 2.0以降ではconstrainedプレフィックスが使えるようになったので ValueType.ToStringの呼び出しそのもののボクシングは回避できるようになった。 その意味では設計で対処されてる。 ただ、ValueType.ToStringが中でbase.GetType().ToString()を呼んでいるので そこでボクシングとかGCヒープアロケーションは起きる可能性が高い。
- 451 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:28:54 ]
- GetTypeって実際は何をやってるんだろうなあ
- 452 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:13:59 ]
- 試してみたけどGetTypeにもToStringにもヒープアロケーションはあるみたいだね
static void Main(string[] args) { for (int i = 0; i < 10000000; ++i) { Type t = i.GetType(); } Console.WriteLine(GC.CollectionCount(0)); Console.WriteLine(GC.CollectionCount(1)); Console.WriteLine(GC.CollectionCount(2)); } 458 2 1 GetType→ToString 1206 2 1 ToStringはstringを作るわけだから当たり前だけど
- 453 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:53:12 ]
- ToStringは使用頻度が低いから特に問題にはならないと思うが、
ハッシュや比較はコレクションで大量に使うからきちんと実装しといたほうがいい。 IEquatable<T>やIComparable<T>などを実装しないならジェネリックでないコレクションを使ったほうが、 ボクシングの回数は少なくて済むから逆にパフォーマンスもいいんだよね。
- 454 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:06:28 ]
- 今さらながら
プログラミング.NET Framework第2版 を買いました。 もう4月までずっと春休みなので 休み中に読破しようかな〜
- 455 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:09:55 ]
- 大学生は暇でいいですなー
- 456 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:37:24 ]
- あの本は勉強になるな
- 457 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:39:23 ]
- >>454
この業界来ないように他業種の勉強しておいた方がいいと思うよ
- 458 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:28:08 ]
- コレクションで使う場合はハッシュと比較が影響を与えやすい。
ほかに、領域確保の効率が悪くなることで参照型より負荷が高くなることもある。
- 459 名前:デフォルトの名無しさん [2008/02/10(日) 19:28:52 ]
- 第3版はいつ出るんだろ?
- 460 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:37:27 ]
- >>457
微妙に同意してしまうのだがw
- 461 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:01:22 ]
- >>460
激しくだろ?
- 462 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:02:03 ]
- まああれだ、不幸な奴ってのは不幸な理由を自分の置かれた環境に求めたがる、
という例の恥ずかしい法則でしょ たとえば職業とかさw お前が不幸なのはそれはお前だからだ、というのが真実なのにねw
- 463 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 08:22:09 ]
- タブページをSelectedIndexの変更で切り替えると、切り替え先のチェックボックスが何故か押されてしまいます。(しかも2番目)
クリックで切り替えたときは何も起こらないのですが、何か原因があるのでしょうか?
- 464 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:13:36 ]
- 自己解決しました
- 465 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:14:29 ]
- 質問はするが、解決結果をフィードバックする気はないと
- 466 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 11:31:27 ]
- なんかのイベントでChecked = true;って自分で書いたんだろ
- 467 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:48:18 ]
- とあるネイティブWin32アプリの拡張dllをC#で書くことって可能ですか?
つまりC#(.NET)でアンマネージなDLLの開発が出来るかということだと思うんですが・・。 因みにWin32アプリの方をCOM対応にするとかはなしで。
- 468 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 12:54:25 ]
- C#でアンマネージドなDLLは作れないけど、CLRの機能としてマネージド関数をアンマネージドの世界に公開することは出来る。
ただ、多くの場合まともに動かないから、素直にC++/CLIでラッパDLLを書いたほうがいい。 ここで気をつけなければならないのが、一つのプロセスには一つのCLRしかロードできないということ。 つまり、そのプロセスに別のバージョンのCLRを使うモジュールがロードされていると正常に動かない可能性がある。
- 469 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:23:56 ]
- やっぱり難しいですか。
C++はかなり苦手なんだけど、ラッパDLLがいいんなんですね。 念のため調べたいので、どっかにCLRでマネージドを公開するいい例が無いでしょうか・・?
|

|