1 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 17:44:27 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 ふらっとC#,C♯,C#(初心者用) Part23 pc11.2ch.net/test/read.cgi/tech/1200033660/
2 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 18:07:09 ] C#, C♯, C#相談室 Part44 pc11.2ch.net/test/read.cgi/tech/1194956418/ C♯, C#相談室 Part34 pc11.2ch.net/test/read.cgi/tech/1162467959/ 【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】 pc11.2ch.net/test/read.cgi/tech/1162950198/ Windows Live プログラミング pc11.2ch.net/test/read.cgi/tech/1188112572/ 初心者のためのプログラミング言語ガイド Part6 pc11.2ch.net/test/read.cgi/tech/1193132235/
3 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 12:47:32 ] WPFのRichTextBoxの行間がデフォルトで二行分空いているようなんですが 一行にするにはどうしたらいいんでしょうか
4 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 13:40:25 ] これたてなおす?
5 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 14:26:19 ] contravariantって何に使うんですか? MSの説明を見たのですが、基底クラスを引数に取れる利点がよくわかりません
6 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:22:03 ] >>5 イベントハンドラを一つにまとめられる、じゃ不満か
7 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:23:38 ] 一般的な反変性の話なのか デリゲートの話なのか
8 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:26:34 ] >>6-7 そうですデリゲートの話です 一般的な説明じゃ何使うのかさっぱりで
9 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:28:32 ] デリゲートっていっぱい関数登録できるものって解釈だとヤバイ? 複数の関数入れて例外が起きたら残りは実行されないのかな 今サンプル動かそうとしてるけど俺あほすぎて時間がかかってる orz
10 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:48:14 ] >>8 似たようなデリゲート型をたくさん宣言しなくならなくちゃ ならないような状況になれば分かるかと >>9 MethodInvoker mi = M1; mi += M2; mi += M3; mi.Invoke(); void M1() { MessageBox.Show( "Test1" ); } void M2() { throw new Exception(); } void M3() { MessageBox.Show( "Test3" ); }
11 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:59:03 ] >>10 covarianceなら、登録できるメソッドが増えるから分かるんですが、 contravarianceは減ってしまいますよね? だからわからないんです
12 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 15:59:06 ] >>10 ありがと!やってみた 例外出たら止まるんか、超わかったw 感謝します
13 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:15:05 ] >>11 どっちも増える
14 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:22:28 ] >>13 基底クラスのほうを渡せてもあんまり意味ないと思うのでよく分からないんです よろしければ具体的な例を教えてください
15 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:35:16 ] event EventHandler Click; event MouseEventHandler MouseDown; void Hoge1(object sender, EventArgs e) { } void Hoge2(object sender, MouseEventArgs e) { } Click += Hoge1;//もちろんOK MouseDown += Hoge1;//MouseEventArgsはEventArgsを継承してるからこれもOK //Click += Hoge2; これはコンパイルエラー MouseDown += Hoge2;//もちろんOK
16 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:42:49 ] >>15 あ、よくわからずイベントハンドラの追加とか書いてましたがなんとなくぴんときた buttonクラス内にはevent EventHandler Click;みたいにきっとあるんだなあ
17 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:45:43 ] >>15 Click += Hoge2; これはコンパイルエラー これなんでまずいんですか? 文法的に許しちゃいけない理由が見あたらないんですが・・・
18 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:11:45 ] ヘタレな漏れにはメソッドが複数呼び出されるからって何がいいのかわかんね。 >>10 の例だと M1(); M2(); M3(); って書くのがそんなにめんどくさいの? って言いたくなるんだが もっと、こう、デリゲードじゃないとそれは無理だね みたいに納得できる例はないだろうか?
19 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:14:12 ] 同じくよくわからんなぁ
20 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:25:57 ] 俺も分からん 識者の人はやくきてくれー><
21 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:28:02 ] ちょうど今複数呼んでくれて嬉しいのに気づいたのはApplication.Idle あちこちのフォームで好き勝手に登録できる
22 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:42:50 ] >>17 引数eにMouseEventArgs型のオブジェクトが渡される保証がない (EventArgs以下ならなんでも入れられる可能性がある) >>18 イベントにイベントハンドラを複数登録できるようにするため >>21 それきちんと後片付けしないとメモリリークするよ
23 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:45:31 ] >>22 >イベントにイベントハンドラを複数登録できるようにするため 順番って登録した順番に依存するんじゃないの? アーキテクチャ的にまずくね?
24 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:49:03 ] マルチキャストデリゲートで一番使われるのはイベントじゃないかな。。 メインのオブジェクトがあって、 サブのオブジェクトたちがそれぞれイベント付けたりできるじゃん 親アプリにプラグインがたくさんある場面とか。 親は一発ですべての登録されたイベントを発行できる ちなみに dlg -= M1; みたいにそれぞれ取り外しもできるし dlg = null; でクリアもできる
25 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:50:02 ] >>23 そうね。むしろ順番に依存するようなのをデリゲートで書くべきじゃない
26 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:51:24 ] 前から思ってたんだけど、デリゲートって高階関数と違うの?
27 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:52:04 ] >>26 勉強足りなすぎです。
28 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:55:18 ] >>27 だまれ小僧
29 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:55:48 ] >>27 関数を引数にとって、関数内で任意の処理ができるんだから同じじゃないの?
30 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:56:12 ] >>27 >>1 読めカス
31 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:56:47 ] >>23 、>>25 何がまずいの?w いやもちろんまずい場面もありうるだろうが、そんなのむしろ例外的じゃないの? っていうかC#ってVBのカスタムイベントみたいなことって出来ないんだっけ?
32 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:57:31 ] 高階関数に相当するのはデリゲートじゃなくてデリゲートを引数に取るメソッドの方だろ
33 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:00:42 ] >>32 ごめんそういうことがいいたかった
34 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:07:30 ] >>31 addとremoveは定義できるよ raiseはない
35 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:14:20 ] >>34 ならハンドラを呼び出す順番もその気になれば一応制御できるんだよね?
36 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:15:49 ] どうのこうの言いつつ、 結果的に>>1 が投げた質問で盛り上がってる俺ら
37 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:20:08 ] >>35 デリゲートオブジェクトは呼び出し対象の情報しか持ってないのに何を基準に並べ替えるの?
38 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:24:37 ] >>37 俺も具体的な用途があまりあるとは思ってないんだけど、抽象的な可能性の話だよ。 例えば標準のFIFO動作をLIFOに変更するとかさ。
39 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:49:51 ] 詳しい人ktkr!! 誰かcontravarianceの使い方を教えてくだしぁ><
40 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:52:41 ] お前は使わなくていい
41 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:53:19 ] >>40 ここそういうスレじゃないから
42 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:09:03 ] object型って変数宣言した瞬間にインスタンスが作られるんですか? くだ質スマンセン
43 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:13:35 ] 作られないと思う 作られるのはintとかプリミティブ型だけ
44 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:28:48 ] C#にはプリミティブ型なんてないお
45 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:17 ] プリミティブ型(と呼ばれるもの)はあるよ 値型の中でも言語に組み込みのものをいう
46 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:22 ] ボクシングって知ってる?
47 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:31:36 ] 本当かよw
48 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:39:59 ] intはプリミティブ型で、Int32がオブジェクト型じゃないの?
49 名前:42 mailto:sage [2008/02/04(月) 20:40:33 ] 値型の場合・・・・・変数宣言した瞬間にスタック上にインスタンスが生成される。 参照型の場合・・・変数宣言した瞬間にスタック上に参照情報が生成され、初期値としてnullが入る。 ということですよね? 実は手元の入門書で↓のような例文で、 int hoge hoge = 123; object obj; obj = (object)hoge; 「object obj; で、変数objのインスタンスをヒープ上に生成し、参照情報をスタック上に格納」 とあって混乱したのですが、間違いってことでしょうか?
50 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:43:11 ] >>49 >変数objのインスタンスをヒープ上に生成 うんここはまちがいだな 参考までになんて本?
51 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 20:46:38 ] >>48 全く同じ 言語仕様でも同じと明記されてる
52 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:02:05 ] >参照型の場合・・・変数宣言した瞬間にスタック上に参照情報が生成され、初期値としてnullが入る。 ちがうよ。
53 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:06:03 ] 違うってんなら詳しく書け、書かないならレスつけんな
54 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:06:05 ] 先生ども コンソールアプリケーションでデフォルトプリンタを取る方法って 普通のc#上には無いんでしょうか? 調べてみると、APIで取る方法とWSHで取る方法がありそうだけど WSHはデフォルトプリンタを取得するサンプルが見当たらないし、 APIだとどうも負け組みかなって思っちまいます。
55 名前:42 mailto:sage [2008/02/04(月) 21:10:22 ] >>50 やっぱりそうですか・・・。 本は↓です。 visual C#2005パーフェクトマスター (著:金城 俊哉 氏) ttp://www.amazon.co.jp/Visual-2005%E3%83%91%E3%83%BC%E3%83%95%E3%82%A7%E3%82%AF%E3%83%88%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E2%80%95Windows-Vista%E5%AE%8C%E5%85%A8%E5%AF%BE%E5%BF%9C-Server2005-Perfect/dp/4798016098 初めに@ITの川俣氏の「改訂版C#入門」を一通りやって、なんとなく分かった気はしたんですが、 きちんと入門書から始めたほうが良さげだろうと思いまして。 VS2005の使い方も詳しく載ってるお手ごろな入門書を探して、これに行き着きました。 読んでみたら初版なせいか誤字が多い・・・しかもいきなりWindows Formの説明から始まって・・・ もしかして地(ry orz
56 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:20:32 ] 俺は>>50 の言ってる事の方が間違ってると思うなw
57 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:22:37 ] っていうかヒープだのスタックだのなんてフレームワーク内部の低水準の話は とりあえずうっちゃっておいても問題ない、というよりそんなの後回しに すべきだと思うよ。
58 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:09:24 ] >>49 C++とごっちゃになってるようにも読み取れるな
59 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:15:18 ] >>49 そのライター結構いっぱい本書いてるけどやばい記述多いのかな
60 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:16:54 ] >初期値としてnullが入る。 入らないよ。
61 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:21:39 ] >>1 乙
62 名前:42 mailto:sage [2008/02/04(月) 22:34:56 ] そうですか。色々勘違いしてるのかもしれません とりあえず今は置いといて、本を読み進めようと思います。
63 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 22:41:55 ] 値型も宣言しただけでは初期化されないよ。
64 名前:42 mailto:sage [2008/02/04(月) 22:58:38 ] 結局、宣伝はメモリ確保するだけで、(0やnullなども含めて)何かで初期化されるわけではない、ってことですかね? というか、当たり前か・・・
65 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:01:01 ] if(myPS->isString("+")){ if(debug){cout<<"24回"<<endl; } return true; 上の分の->これっていったいなにをしているんでしょう また、if文カッコ内debugの中の変数は0か1かではなく、True Falseでも判定かのうなのでしょうか? よろしくお願いします
66 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:05:01 ] 猫でもわかるC#のフォーム編ってまだ発売決まってないのかな? 知ってる人います?
67 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:11:25 ] 著者か出版社に聞けばいいじゃんw っていうか俺あの著者の本を好む人が理解できん。 あの人低水準のこと = 基本だと思ってないか?w っていうかどうでもいい無駄話が多すぎ。
68 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:13:05 ] >>67 そうなの? かなり分かりやすく書いてあるから、重宝してるんだが ありがとう、著者にメール送ってみる!
69 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:14:41 ] 人によるんじゃねえかなぁ、独習シリーズも人によっては結構わかりづらいみたいだし 文体がお堅いっていうのはあるけどお浚いする為にはああゆうのが便利だと思ってる 入門は柔らかい文体の本一冊+Webで、くらいで
70 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:38:46 ] >>64 俺は宣言するだけじゃメモリ確保すらされないと理解してるんだが。 だって、一度も代入してないのをいきなり使おうとすると >未割り当てのローカル変数 'name' が使用されました。 って出るじゃん
71 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:45:49 ] 独習シリーズって教科書には向かないけど、 自分でコツコツ読むには何でも書いてあるいい本だよね
72 名前:65 mailto:sage [2008/02/04(月) 23:51:02 ] 分かる人いたらお願いします・・・
73 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:01:03 ] このスレはC#のスレ。それC++じゃないの?
74 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:05:59 ] >>72 ポインタ演算子じゃないの?
75 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:14:14 ] アロー演算子って呼び方が一般的じゃないかな
76 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:14:39 ] そだね
77 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:21:42 ] >>未割り当てのローカル変数 'name' が使用されました。 >って出るじゃん 英語のメッセージは Use of unassigned local variable 'name' なんだぜ? allocateじゃなくてasign
78 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:29:57 ] 紛らわしいw
79 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:35:38 ] >>54 dobon.net/vb/dotnet/graphics/defaultprinter.html これは調査済み?
80 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:43:11 ] デリゲートとかクロージャみたいな難しい概念を 実際のコードに使ってる人なんているの?
81 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:44:40 ] 難しい(笑)
82 名前:デフォルトの名無しさん [2008/02/05(火) 00:45:00 ] 難しくないから普通に使ってるだろ。 Cでポインタが難しいと言ってるのと変わらない。
83 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:46:37 ] 言語マニアしか分からなくないですか? デリゲートとかクロージャがなくて困るケースってあります?
84 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:48:35 ] .NET Fxはほとんど使えなくなるだろ。
85 名前:デフォルトの名無しさん [2008/02/05(火) 00:49:33 ] イベントドリブンな処理
86 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:49:38 ] クロージャはともかく、デリゲートはVSでWindows.Formsをポトペタすると使いまくってるだろ。
87 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:50:24 ] そうなんか(´・ω・`) ポインタと違って無くても困らない程度のもんだと思ってたんだが
88 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:52:02 ] 関数ポインタの代わりがdelegateなわけで…
89 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:53:22 ] MDIのアプリを作ろうとしていますが、 親のMDIフォームにToolStripContainerをDockStyle.Fillで張り付けた場合、 MDIの子ウィンドウが表示されなくなりますが、 これを表示させるようにするための解決法はございますでしょうか? Excel2003のようなアプリを目指しています。
90 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:56:02 ] クロージャはまぁ無くなっても困らんなw
91 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:09:05 ] ArrayListで作る配列って、多次元配列に出来るの?
92 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:31 ] ArrayList<ArrayList<string>>
93 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:54 ] ArrayListにArrayList突っ込めば
94 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:13:57 ] できるよ
95 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:25:00 ] そうか、出来るのか! 何か難しそうだけどやってみるよ!!ありがと!
96 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 01:58:08 ] コスト的に死ねると思うのは俺だけでいい
97 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:08:08 ] 4次元配列とか案の?
98 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 02:50:20 ] お前は何を言っているんだ
99 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 07:58:30 ] 任意のN次元配列を動的に定義できるの?
100 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:18:51 ] おまいの本当にやりたいことは配列の定義とかそんなちっぽけなことじゃなかったはずだ
101 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:21:39 ] 任意のN次元配列を動的に宣言できるの?
102 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:23:05 ] 動的にIL作ればいいんじゃね
103 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:24:12 ] C#で書いてみれ
104 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:25:10 ] つうか動的と宣言って相反するんじゃね
105 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:34:32 ] Array.CreateInstance
106 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:47:13 ] 動的に作成じゃなくて動的に宣言らしいんだけど
107 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 08:52:12 ] 静的に宣言するか動的に作成するかしか出来んな
108 名前:デフォルトの名無しさん [2008/02/05(火) 09:51:18 ] >>79 遅くなってすません。 もう見てたんですが もう一度見直したらしっかり使えるじゃまいですかw ということでおかげさまで解決しました。
109 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:33:51 ] 任意のN次元配列を動的に宣言できるの?
110 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:39:29 ] くどいよ
111 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:25:08 ] 俺もn次元配列興味あるなぁ 以前作ったときは、n次元を1次元に無理矢理マッピングして コーディングしたんだけど、 エレガントさに賭けていたので
112 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:38:26 ] (´・ω・`)しらんがな
113 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:39:37 ] 賭けていたのか コードを見てみたいところだ
114 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:40:54 ] 確かに、int[][][][]・・[]とか書くのは美しくないなwww
115 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 13:36:45 ] N次元配列にアクセスする時はArray.GetValue
116 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 14:31:18 ] C#にクロージャってあるんですか? 匿名メソッドはクロージャではないと聞いたのですが どこが違うのでしょうか?
117 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:03:47 ] 匿名メソッドはクロージャ
118 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:13:38 ] >>116 クロージャで正解。 クロージャの考え方はいろいろあってとくに手続き型の言語ではバリエーションが広い。 自分の使ってる言語と動作が違うからC#のは真のクロージャではないという議論が、 しばらくなされたことがあって、そのときに >匿名メソッドはクロージャではない という話が出回ったことがある。
119 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:17:28 ] >>117 >>118 ありがとうございます メソッド内で匿名メソッドを宣言したときに、 親メソッドの変数を参照できないとクロージャではないみたいな話を聞いたもので クロージャ自体方言みたいなもので 明確な定義がないんですかね?
120 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:21:26 ] 逆にレキシカルクロージャ以外クロージャではないと言ってる過激派もいるけどね。
121 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:30:11 ] レキシカルクロージャってのも議論が混乱してて分からない俺涙目 どっかに分かりやすい解説ない?
122 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:52:26 ] 匿名メソッドは親メソッドのローカル変数を参照できる
123 名前:デフォルトの名無しさん [2008/02/05(火) 17:08:47 ] >>89 まさにこれ? dobon.net/vb/dotnet/control/tstoolstrippanel.html
124 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:13:36 ] 静的スコープってのは、クロージャの中身がローカル変数になることをいうの? 動的スコープて何?
125 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:18:49 ] C#についてるのってレキシカルクロージャだっけ?
126 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:02:51 ] >>124 動的スコープのクロージャはマクロみたいなものでC#ではありえない。 コードにするとこんな感じ。 var f = DFUNC(a) { return a + b; } // この時点で b は存在しない。 void A() { var b = 2; f(3); // 6が戻る。 } void B() { f(3); // b がないので実行時エラー }
127 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:06:58 ] >>126 なるほどなー それはわかりやすい
128 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 19:07:36 ] スクリプト言語でありそうなコードだね
129 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:56:31 ] java屋の質問なんだけど、名前空間とディレクトリ階層が一致しなくてもいいみたいなんだが みんなルール決めて変な事にならないようにしてるの? javaみたいに言語仕様で縛らないのは何か意味があるのかな。
130 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:58:45 ] むしろJavaが変
131 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:05:48 ] なんで言語仕様でディレクトリの構成が縛られないといけないんだ
132 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:10:56 ] 言語なんて複数やってるもんなのにjava屋とかいっておきながら井の中の蛙とは一体
133 名前:129 mailto:sage [2008/02/05(火) 21:12:36 ] >>130 んー、C#が変だとは思ってないんだが、クラス名の衝突を防いだりするためなんだから、ファイルもディレクトリ作ってぶつからないようにするんでないの?
134 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:17:57 ] >>129 今まで違和感無かったか?俺はあったぞ。
135 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:25:05 ] >>133 論理的な構成と物理的な構成が同じじゃなきゃいけないってのは原始的な感じがする
136 名前:129 mailto:sage [2008/02/05(火) 21:40:50 ] チームで開発するときとかは、○○系はこのディレクトリに入れてって会社や個人でルールを決めてるってことか。 javaだとパッケージのルールだけ決めるだけだったから、C#には暗黙のルールでもあるのかな?って思ったんだ。 C#を悪く言ってるつもりはないんだけど、そう聞こえてたらごめん。
137 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:06 ] いやいや別に無問題
138 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:15 ] ArrayListって2.0ではListにとってかわられたんじゃないの?
139 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:15 ] 悪く言ってるようには聞こえてないよ
140 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:43:55 ] たしかにもうListばかり使ってるな
141 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:44:30 ] >>138 非ジェネリックのクラスを使う事ってある? 俺にはあんまり目的が思いつかんなー
142 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:46:27 ] Silverlightでは非ジェネリックコレクションは削除されるって噂だよ
143 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:48:26 ] Silverlightみたいな環境だとジェネリックって重いような木がするんだけどどうなんだろ
144 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:51:26 ] ジェネリックって重いってどこから出てきた都市伝説だよ
145 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:52:17 ] 重いっつかコードが肥大化するでしょ? Webにはどうなんかなーと
146 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:52:26 ] ArrayList使うくらいならList<object>使った方がなんぼかマシだ
147 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:53:27 ] ジェネリックが特殊化されるのは値型の場合のみでしかも実行時だよ
148 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:54:19 ] テンプレートじゃあるまいに
149 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:59:14 ] だいたいランタイムライブラリはクライアントにあるのに、 Webだからどうこうって意味不明だろ。
150 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:13:27 ] ArrayList使いまくってて しかもジェネリックが搭載されたのを知らないやつは まだ余裕で使ってるぜ? 1.1縛りな開発とかだと知っててもジェネリック使えないしな List<T>に慣れるとArrayListには戻れんな
151 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:20:05 ] そもそもジェネリックって何の事かわかってない C#はじめたばっかりの俺 ぐぐってみる
152 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:20:27 ] WPFはGDI+にとってかわるのかな?
153 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:24:21 ] WPFはノウハウが全く違うから普及するのに10年ぐらいかかりそうだな
154 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:26:21 ] Hashtableはよく使う。
155 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:37:17 ] >>152 WPFのソフトウェアレンダリングコードはGDI+からだいぶ流用したらしい。 社内的にはとってかわってるのかもね。
156 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:41:29 ] >>154 何か理由があって使ってるの?
157 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:43:29 ] 画像とハッシュテーブルがどうからむのかよくわからん(´・ω・`)
158 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:43:35 ] Hashtableは名前がダサい HashTableならいいのに
159 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:45:03 ] C#で作ったプログラムは必ず使う側に.NETが入っている必要があるんでしょうか?
160 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:45:28 ] いいえ
161 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:47:13 ] .NETがいらないC#プログラムを作るにはどうしたらいいんでしょうか? using System;とかありますがああゆうの全部.NETのクラスライブラリだとかなんですか? そこら辺のことが書いてあるサイトとかないでしょうか
162 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:49:27 ] >>161 無理 自分で1からコンパイラ作れば可能だけどさ
163 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:49:50 ] >>156 マルチスレッド絡み、やや微妙な制約はあるけどね。 ほんとはjavaのConcurrentHashMapだったかみたいな 専用のがあるといいんだけど。
164 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:50:17 ] >>161 mono
165 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:51:17 ] >>162 コンパイラ作るだけじゃダメ CLIを実装しないと Silverlightは.NETじゃないといえば.NETじゃないかも
166 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:53:24 ] >>165 C#をネイティブコードにするコンパイラがあればいいんだろ。 別にILしなければならない理由はない。
167 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:54:58 ] ライブラリどうすんのよ…
168 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:00 ] ネイティブにして、移植したライブラリを使用したとして、 その環境は .NET ではないと言えるのだろうか。
169 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:01 ] すまんCLIはいらないみたい でも言語仕様に記載されてるBCL(標準クラスライブラリ)は全部実装する必要がある
170 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:55:37 ] c#暦1ヶ月です。 MSDNのページがさっぱり理解できないんですが、ある程度使えるようになったら読めてくるもんなのでしょうか?
171 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:58:43 ] 日本語版は理解できなくても無理はない 英語版読め
172 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:32 ] つーかどこが分からんの?
173 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:34 ] >>170 カンでさがしてサンプルコード張って動かしてみるのが正しい使いかた 理解するんじゃない感じるんだ
174 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:59:42 ] クラスの解説を読めるようになるのは初心者脱出の第一歩だな C#の言語仕様についての説明のページはVB.NETと違って初心者向けに書かれてないから結構難しい
175 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:00:11 ] なんでC#ってネイティブコード吐けないんだろ
176 名前:161 mailto:sage [2008/02/05(火) 23:00:46 ] monoはうにx版.NETみたいな感覚でした、それは置いておいて無理ですか、把握しましたありがとう
177 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:40 ] 無理じゃないと言っているのだが。
178 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:44 ] >>175 .NETを使うために作られた言語だから
179 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:01:45 ] 一応マルチプラットフォームを考えてるんだろうが、 だったら MS が色んなプラットフォームで処理系作りやがれと。
180 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:02:45 ] 吐けないんじゃない。吐かないだけ。
181 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:03:27 ] 馬鹿でかいBCLが障害
182 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:03:51 ] >>175 フレームワーク使う言語としては正しいけどね・・・
183 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:12 ] >>177 馬鹿?
184 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:17 ] ネイティブコード吐ければもっと普及すると思う
185 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:04:54 ] 何でネイティブコードにこだわってるんだ?馬鹿なの?
186 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:05:26 ] >>185 そこは突っ込みどころと違う
187 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:06:24 ] >>185 バカはお前だろ
188 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:06:35 ] そもそも.NETを普及させるための言語なわけだから ネイティブコードを吐けるようにして普及を図ったところで意味がない
189 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:07:04 ] CPU ごとに別のマシン語はかないといけないとなると 処理系作るの面倒だし・・・。
190 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:07:04 ] もう.NETとかいう思想自体が古いけどな
191 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:08:17 ] >>175 いきなりネイティブコード吐くとリフレクションやLCGと相性悪そうだがその辺考えてみた?
192 名前:170 mailto:sage [2008/02/05(火) 23:08:26 ] MSDNの読み方というか、歩き方みたいなのがいまいち分からんのです。 ググる時も、大抵先頭にくるMSDNはなるべく避けて、@ITとかのサイトに逃げてます・・・ 機械翻訳ぽいのがどうにも
193 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:08:32 ] >>190 何が古いんだ?具体的にどうぞ。
194 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:18 ] 新しいのが出てないのに古いとはなかなか言い辛いでしょう >>192 俺がMSDN渡り歩けるようになったのはプログラミング歴5年目くらいです 非常に遅いな
195 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:10:32 ] というかネイティブコードじゃないこととフレームワークは関係ないだろ。
196 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:12:17 ] >>192 基本的にMSDNはリファレンス。辞書。 分からないときに引くものであって、教科書じゃない。 MSDN2になって翻訳は随分まともになったと思うが。
197 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:13:07 ] >>192 @ITは正しい選択
198 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:13:54 ] まあ変なVB系Tipsサイトよりは
199 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:14:04 ] そしてブーデー川俣の記事読むのか
200 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:17:31 ] .NET Tipsで十分場合が多い
201 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:18:13 ] 緑のバイク
202 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:19:46 ] C#、でぐぐってでた1ページ目が日本語C#情報の9割だと思う俺
203 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:20:18 ] むしろ9割9分くらいだろ
204 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:24:27 ] 何件表示するかの設定によるんじゃ
205 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:54:25 ] 多次元配列の初期化で、配列初期化子は変数かフィールド初期化子の中でのみ使用できます。新しい式を使用してください。 というエラーが取れなくて困っています。 int[ , ] hoge = new int[ , ] { { 1, 2 }, { 1, 2 } }; は問題ないのに、 int[][ , ] hoge = new int[][ , ] { { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★ { new int[]{ 1, 2 }, new int[]{ 1, 2 } }, // ★ }; とすると、★の行を指して上記のエラーがでます。 intからint[]に型を変えただけだと思っているのですが、何が違うのでしょうか。
206 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:58:49 ] >>205 int[]の[,]なんだから逆 int[,][]
207 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:00:10 ] 基本やり直し。 配列初期化子ってわかる?
208 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:01:33 ] >>207 お前は分かってるのかよ。わかってるなら書け。
209 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:01:51 ] >>207 そんな大げさな間違いじゃない
210 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:03:03 ] >>206 ほんとだ… ありがとうございます。
211 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:21:43 ] >>179 いろんなプラットフォームありますよ。 x86, x64, IA-64 .NET Compact Framewrok .NET Micro Framework どれもWindows上というのはご愛敬w。 後は申し訳程度にSSCLIがFreeBSD対応だった気がする。
212 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:23:00 ] Linuxはmonoがあるしなぁ MSも支援してるし
213 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:25:52 ] 質問した当人ですがあらゆるWindows上で使えたらなぁとか思ってました
214 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:26:23 ] フィールドって言葉がイマイチなじめない メンバ変数って言いたくなる
215 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:46:59 ] >>213 「あらゆるWindows」ってなにがあるの?
216 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:48:40 ] Windows1.0
217 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:49:29 ] ごめんなさい凡そ今いるWindowsユーザーです だから.NETなくて良いって条件さえあればVistaは知らないけどいけるかな
218 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:49:50 ] 最後にとが抜けたorz
219 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 00:50:30 ] .net入れればいいじゃん。
220 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:13:06 ] 今時.NETくらい誰でも入れてるだろ、とかいう認識の俺はだめなんだろうな
221 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:14:33 ] .NET程度が使えない環境は切り捨てられるべき
222 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:24:51 ] private void foo(string hoge, string piyo) { いろいろ処理 foo(fuga, hogehoge); } と private void foo(ref string hoge, ref string piyo) { string hoge0 = hoge; string piyo0 = piyo; いろいろ処理 foo(ref fuga, ref hogehoge); } どっちが良いんでしょうか? 渡す文字列は100文字程度で再帰による関数の呼び出しは100~5000回くらいです 後者が良い気がするのですが、文字列100文字程度なら前者のがいいのかなぁと考えてます
223 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:26:39 ] やっとまともな質問だなw 後者でいいよ、むしろなんで前者選ぼうと思ったの?
224 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:27:31 ] ___ ━┓ / ―\ ┏┛ /ノ (●)\ ・ . | (●) ⌒)\ . | (__ノ ̄ | \ / \ _ノ /´ `\ | | | |
225 名前:222 mailto:sage [2008/02/06(水) 01:28:48 ] >>223 やっぱりそうですか >>224 参照渡しって初めて知りまして、なんかやばいですか?
226 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:29:08 ] 5000plyも呼べたっけ?
227 名前:222 mailto:sage [2008/02/06(水) 01:31:12 ] 実際はあんな形ではないんですが、想定してるのは5000回くらいまでです
228 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:31:22 ] ああ末尾ね
229 名前:222 mailto:sage [2008/02/06(水) 01:36:42 ] すみません、fugaとhogehogeはいろいろ処理、と書かれてる部分で引数を元に 値を設定されたstring型です
230 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:43:15 ] >>225 なんかやばいかどうかは使いどころ たとえば,参照渡しだと副作用完了点が関数内部まで拡大する可能性がある. 2*n*val_func(n) ≠2*n*ref_func(n) かもしれない
231 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:48:55 ] とりあえず自宅のC#3.0で下記を試したら,一つだけ結果違った static void Main(string[] args) { int n; n = 5; Console.WriteLine(2 * n * valfunc(n)); n = 5; Console.WriteLine(2 * n * reffunc(ref n)); n = 5; Console.WriteLine((2 * valfunc(n)) * n); n = 5; Console.WriteLine((2 * reffunc(ref n)) * n); Console.ReadLine(); } private static int valfunc(int n) { n = -n; return n; } private static int reffunc(ref int n) { n = -n; return n; } あと再帰に関してはrefもvalも計算コストはそんなに変わらないと思っている. とある言語の実装だと「refは,呼び出し元でコピーした変数を値渡しして,戻ってきたら本物に上書き」みたいなことやってたみたい.
232 名前:222 mailto:sage [2008/02/06(水) 01:53:51 ] 参照渡しじゃなくてポインタ使えればなぁ、と思うんだけどそうもいかないんですよね >>230 それだと非常にやばいです、それとあまり差がないんですか、ありがとうございます どの道わからなければ安全そうな値渡しにしようと思ってたのでこれでいってみます ありがとうございました
233 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:05:19 ] C#ってオブジェクト渡しは全部参照渡しみたいなもんじゃないの?
234 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:07:22 ] 参照型は参照渡し 値型は値渡し
235 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:07:53 ] FileInfoとか渡したらどうなるんだろうね
236 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 02:09:55 ] 参照だろ
237 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 07:28:13 ] stringは参照渡しだからrefなんざつけんでいい stringの代入はコピーではなくポインタを代入してるだけ
238 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 07:40:12 ] >>232 stringを渡すときrefつけるのとつけないので結果が変わる場合があるのはわかってる?
239 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 08:23:49 ] >>234 参照型を値で渡すのと参照渡しは違うよ。 揚げ足取りじゃなくて全然違う。
240 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:26:56 ] なぜ説明を書かないのだろう。
241 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 09:59:58 ] 揚げ足取りだから
242 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:34:02 ] MSDNでrefで検索して最初に出て来るページにすっかり書いてあるだろJK
243 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:03:23 ] メソッド内で生成された参照型のインスタンスへの参照を、呼び出し元で受け取るには、refなりoutなりを使って参照の参照を渡す必要がある。(returnは別として) 呼び出し元で作成したインスタンスを操作するなら、インスタンスの参照を渡せばいいから、refはいらない。 引数をメソッド内で変更したい場合、Stringみたいに操作する度に新しいインスタンスが生成されるタイプのクラスは前者。StringBuilderみたいに新たなインスタンスを生成せずに操作できるタイプのは後者。
244 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:16:06 ] 読み返してみるとくどくて意味不明だな。すまん。 徹夜明けだからもう寝るわ。
245 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 14:51:23 ] using System; using System.Text; namespace ConsoleApplication1{ class Program { static void Main(string[] args) { StringBuilder strbld = new StringBuilder("Start"); EditValue(strbld); Console.WriteLine(strbld.ToString()); //出力:Start+Edit ChangeValue(ref strbld); Console.WriteLine(strbld.ToString()); //出力:Changed NotChangeValue(strbld); Console.WriteLine(strbld.ToString()); //出力:Changed Console.ReadKey(true); } static void EditValue(StringBuilder value) { value.Append("+Edit"); } static void ChangeValue(ref StringBuilder value) { value = new StringBuilder("Changed"); } static void NotChangeValue(StringBuilder value) { value = new StringBuilder("NotChanged"); } }} こういうことか。勉強になった。Thx
246 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:00:13 ] 違うだろ
247 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:06:43 ] 参照型の参照渡しはポインタtoポインタ(**object)だな まぁ,C風に覚えてもかまわないと思われ
248 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:16:11 ] >>246 どう違うの? 出力結果を見ると違わないんだけど。 アホにも分かるように教えてくれ。
249 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:22:19 ] >>248 >>246 ではないが NotChangeValue の後が違うかと。
250 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:29:56 ] ん?stringもref stringも 関数内で引数を書き換えなきゃ変わらんだろ
251 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:48:50 ] あーそうか、ChangeValueとかNotChangeValueとかいう関数名が分かってないようにとられた原因か。 ChangePtrとNotChangePtrに名前を変更して読んでちょうだい。 上記二つのメソッドは参照の参照を変更しようとしているから、 参照渡しをしないNotChangePtrの方は当然参照が変更されない EditValueというメソッドは、参照型を値渡しで受け取り、それのインスタンスメソッドによって インスタンス自身が変化する。 こういう認識でいいんだよね?
252 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:51:24 ] >>250 意味分からん。 コードで書くとどういうこと?
253 名前:デフォルトの名無しさん [2008/02/06(水) 15:52:24 ] 他Formから値を参照したいのだがわからないww 初心者過ぎて笑われそうだが… Form1,2で 1に設置しているRadiobuttonをCheckすることで 2に値の変化を与えたい。 わかりにくい説明ではあるが誰か教えてくださいな^ω^
254 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:53:18 ] >>249 コンパイルして走らせてみた? 出力結果は間違いないよ?
255 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:53:45 ] >>253 C#の基礎というかプログラミングの基礎のページ見て来い
256 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:55:22 ] >>253 "デリゲート"でググれ
257 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 15:59:35 ] すまんID出ないんだったな。 >>245 >>248 >>251 >>254 全部同一人物です。 以後コテハン245になるとしよう。
258 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:00:24 ] >>250 static void Main( string[] args ) { string str = "250 は"; Manuke( str ); Console.WriteLine( str ); Teinou( ref str ); Console.WriteLine( str ); Console.ReadKey(); } static void Manuke( string s ) { s = "間抜け"; } static void Teinou( ref string s ) { s = "低能"; }
259 名前:坊 [2008/02/06(水) 16:03:50 ] ありがとっす^ω^
260 名前:坊 [2008/02/06(水) 16:05:29 ] あっ >>253 ですww 困ったらまたきますんでw
261 名前:254 mailto:sage [2008/02/06(水) 16:05:47 ] >>258 禿同。 参照渡しと値渡しの違いって中級者でも分かってない人が多いって記事をどっかで見たことある。
262 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:06:01 ] >>258 そんなレベルの話してたのか?
263 名前:262 mailto:sage [2008/02/06(水) 16:07:05 ] あ、値渡しはともかく参照渡しってCのアドレス(ポインタ)渡しと結局同じだと思ってたけど違うの?って意味な
264 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:08:55 ] >>258 だからそうやって引数を書き換えなきゃ同じだろ
265 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:11:19 ] >>264 彼らは参照渡しは知ってても使い方を知らないんだろう
266 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:13:00 ] >>258 が話の流れと日本語を読めないってことだけは分かった
267 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:14:53 ] >>263 まあ凡そ。 それを大前提に進んでた話なんだけど>>258 が爆発した
268 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:16:08 ] かわいそうな>>258 がいるスレ
269 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:27:43 ] で、話の大元の>>222 に立ち返ったとして何を議論してたんだっけ?
270 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:32:29 ] >>222 は前者でいいってことじゃね 余計な副作用を与えないために
271 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:05:58 ] >>247 というか、むしろそのほうが分かりやすいような気が 「参照情報」なんて回りくどい言い方せずに、「アドレス」って言ったほうがイメージが伝わりやすいような
272 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:36:51 ] >>271 根本に返って冷静に考えてみ。 アドレスの方が本来間接的な表現な上に間違ってるでしょ。 参照をもし言い換えるのなら、俺なら「位置情報」と言うな。
273 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:37:58 ] いやそりゃアドレスじゃん、英語のアドレスが住所としか略されないとでも思ってるのか?
274 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:38:52 ] 位置情報を英語に置き換えりゃアドレスになんだろ 機械翻訳で訳される2単語が実用される英語だとでも思ってんのかね
275 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:40:47 ] >>272 厳密な意味ではいろいろあるだろうけど、初心者にとっては直感的にはアドレスが一番しっくりくると思うが
276 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:41:26 ] 最近はスレタイも読めないバカが増えたな
277 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:43:29 ] >>273 住所にすら略されないが?
278 名前:275 mailto:sage [2008/02/06(水) 18:44:59 ] ×初心者 ○日本人の初心者 まぁ瑣末事だけどw
279 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:51:16 ] >>274 言葉にはそれぞれ意味上のふり幅ってものがあるんだよ。 特に英語のような多義的な言葉を文脈によって使い分ける傾向が高い言語ではね。 "address"は多義的過ぎる上に、コンピュータの世界では別の抽象レベルで 既に別の意味で使われているから望ましくない。 もっと意味のふり幅が少ない言い方を工夫すべき。 ……ここまで補足しないとわからないかねえしかし。。
280 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:53:19 ] エイリアスでええやん
281 名前:デフォルトの名無しさん [2008/02/06(水) 19:00:55 ] アプリケーション設定を暗号化して保存したいんですが、いまいち system.comnfigurationクラスの使い方がよくわかりません。 どっか良いサンプルないですか? MSDN読んでもいまいちよくわかりません。
282 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:34:25 ] 暗号化は変なサンプルも多いから気をつけろよ
283 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:00:59 ] ポインタの参照渡し
284 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:27:31 ] 最近のスレの内容・・・予想以上に.NET普及は早そうだな >>281 BinaryFormatterとかでは駄目なの?
285 名前:デフォルトの名無しさん [2008/02/06(水) 22:37:14 ] メソッドに渡す引数の属性で[in]や[out]があるんですが、 これはC#のrefやoutとは違うものなんでしょうか
286 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:41:38 ] そいつはマーシャラに対する指令
287 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:41:57 ] [Out]はoutと同じ。 refは[In][Out]相当。 [In]単独は、アンマネージとの相互運用で使うことがある。
288 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:45:50 ] C#の中だけで完結する限りは[in]や[out]は無意味
289 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:47:46 ] C/C++で作ったコードをC#で使えるようなラッパーを作りたいんですが 参考になるようなHPとか本あったら教えてください
290 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:48:35 ] 俺も知りたい
291 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:48:49 ] C++/CLIでいいじゃないか。
292 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:51:14 ] >>289 本は知らんが、このあたりのキーワードでMSDNとか 探してみればなんかヒントあるんじゃね。 * COM Interop * P/Invoke * C++/CLI
293 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:54:18 ] VC#2008対応の解説本早く出せよ。
294 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:57:05 ] 誰に言ってるのw 君統合失調の初期症状じゃないのマジで
295 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:59:48 ] 確かにアンマネージドとの連携について詳しい本があったら欲しいな Win32API叩く度に検索して調べるの面倒になってきた
296 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:00:45 ] つMSDN
297 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:08:54 ] >>295 Win32API使うだけなら、P/Invoke.netとかでいいだろ。
298 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:10:21 ] >C#の中だけで完結する限りは[in]や[out]は無意味 そうでもない。
299 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:16:48 ] >>298 具体的にkwsk
300 名前:デフォルトの名無しさん [2008/02/06(水) 23:18:40 ] WebBrowserコントロールでブラウザ作ってるんですが、yahoo.co.jpを開いて閉じるとフリーズしてしまいます。 Googleとかだと大丈夫なのですが。 なんででしょうか? バグってるんでしょうか?
301 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:20:26 ] 説明にもなってない それで解決できるはずも無い まあ確かにWebBrowserは色々胡散臭いが
302 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:24:52 ] あなたのコードがバグってるんでしょうね
303 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:33:14 ] WebBrowserはJavaScript周りがバグりまくっている。 JavaScript以外にもFlashを使っているサイトを表示した直後も半フリーズ状態になる。 で、結論は「使うな」。 IEコンポーネントで全て置き換えろ
304 名前:デフォルトの名無しさん [2008/02/06(水) 23:46:28 ] 新規プロジェクト作ってWebBrowser貼り付けて、下記の1行を追加しただけで終了時に固まる。 public Form1() { InitializeComponent(); webBrowser1.Url = new Uri("www.yahoo.co.jp "); } で、原因はWebBrowserは開いたページの内容によっては内部で立ち上がった謎のスレッドが終わらなくなる 直る見込みはない 諦めろ
305 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 23:50:33 ] >直る見込みはない 何故ですかね?MSにやる気がないから?
306 名前:デフォルトの名無しさん [2008/02/06(水) 23:55:02 ] >>305 WebBrowser Controlが登場して何年経ったと思ってるんだ 海外の方でも2年近く前から話題になっているくらいの問題だぞ www.eggheadcafe.com/aspnet_answers/NETFrameworkNETWindowsForms/Apr2006/post26457510.asp 直るならとっくの昔に直ってる
307 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:09:08 ] >>304 固まらなかったよ
308 名前:デフォルトの名無しさん [2008/02/07(木) 00:29:46 ] >>304 VS2005 Win2003R2x64 固まる
309 名前:デフォルトの名無しさん [2008/02/07(木) 00:34:05 ] >>304 固まるというか、ウィンドウは閉じてるのにVS2005がデバッグ実行中のままになった
310 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:42:20 ] >>304 XP VS2008 .NET Framework3.5 固まらない
311 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:42:25 ] WebBrowser使ったこと無いからよく分からんが スレッドがバックグラウンドになってないんじゃないか?
312 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:44:07 ] WebBrowserと名前のつくコントロールは、 大昔のVBやDelphiからあったが、 どれもこれもまともに使える代物じゃなかったな。
313 名前:307 mailto:sage [2008/02/07(木) 00:44:20 ] VS2005Pro XPx64SP2 IE:7.0.5730.11 Flash:9.0.115.0 プラットフォーム:x86 固まらない
314 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:47:52 ] コンストラクタ内で実行しなけりゃいいんじゃね?
315 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 00:48:36 ] >固まる環境の人 Navigateメソッドでもなる?
316 名前:デフォルトの名無しさん [2008/02/07(木) 00:58:16 ] >>315 なった コンソール用のテストコード書いてみたが、こちらも見事に固まる ちなみに終了シグナルは飛んできて一見終わった様に見えるが、 残骸が残っていて悪さしているようだ class test { ManualResetEvent _mre = new ManualResetEvent(false); public void run() { Thread thread = null; try { _mre.Reset(); thread = new Thread(new ThreadStart(entry)); thread.SetApartmentState(ApartmentState.STA); thread.Start(); } finally { _mre.WaitOne(); } } void entry() { WebBrowser bra = new WebBrowser(); browser.Navigate("www.yahoo.co.jp/ "); while (_browser.ReadyState != WebBrowserReadyState.Complete) { // 省略 } _mre.Reset(); } }
317 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:02:56 ] >>306 海外とか知らねえよバカ
318 名前:デフォルトの名無しさん [2008/02/07(木) 01:29:08 ] テストプログラム www2.uploda.org/uporg1237632.zip.html
319 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:37:03 ] >>318 は www.google.co.jp になっているから、www.yahoo.co.jp に変更して試して見るべし
320 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:40:36 ] >>316 ちなみにIEのバージョンは?
321 名前:デフォルトの名無しさん [2008/02/07(木) 01:43:14 ] >>320 Windows Server 2003R2 x64 IE 6.0.3790.1830 SP1 .NET3.0は入れてない
322 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 01:52:31 ] 家のパソコンにIE6が入ってるから試そうと思ったけど繋がらないや 帰るか
323 名前:デフォルトの名無しさん [2008/02/07(木) 02:15:42 ] >>318-319 このエラーでた 意味はわからん msdn2.microsoft.com/ja-jp/library/ms172219.aspx
324 名前:デフォルトの名無しさん [2008/02/07(木) 08:25:57 ] >>284 binaryformatterは暗号化していないので解析しようと思えば すぐできてしまうから、パスワードなんかは保存したくないわけです。 system.security.cryptographyのクラス群で暗号化してから保存すれば 同じことなんですが…。 アプリケーション設定が.net2.0以降すごく使いやすくなっているみたいなので、 そちらで暗号化できるならそっちを使いたいなあと思った次第です。 設定クラスの定義、設定ファイルの読み出し、保存を毎回毎回アプリ作るたびに 実装するのって、エラー処理なんかまで含めて考えると意外と面倒くさいもんで。。
325 名前:デフォルトの名無しさん [2008/02/07(木) 12:58:22 ] またWebBrowser被害者か
326 名前:デフォルトの名無しさん [2008/02/07(木) 14:16:27 ] loaderLock マネージ デバッグ アシスタント (MDA: Managed Debugging Assistant) は、Microsoft Windows オペレーティング システムのローダー ロックを保持するスレッドでマネージ コードを実行しようとする試みを 検出します。 このような実行は不正であり、デッドロックの発生につながり、DLL がオペレーティング システムのローダーに よって初期化される前に使用される可能性があります。
327 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:00:57 ] >>323 IEのアドイン全部停止して試してみるとかどう?
328 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:19:01 ] 質問です。 インターネット上にあるpng形式のファイルを取得して保存したいと考えています。 そこで、 Stream objStream; objStream = wrGETURL.GetResponse().GetResponseStream(); StreamReader objReader = new StreamReader(objStream); string filepath; filepath = "C:\\hoge\\hoge.png"; if (File.Exists(filepath)) { File.Delete(filepath); } StreamWriter w = new StreamWriter(filepath); w.Write(objReader.ReadToEnd()); w.Close(); objStream.Close(); とやりましたが、保存できないようです。 StreamReaderのどのメソッドを使えば、インターネット上の画像ファイルの読み込みを一括でおこなえるのでしょうか?
329 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:20:48 ] どこでおかしくなってるのかちゃんと調べろよ。
330 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:26:48 ] StreamReader/StreamWriterはストリームを文字列で扱うクラス。 画像みたいなバイナリファイルに使っちゃ駄目。
331 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:28:07 ] File.Copy()でファイルをコピーする場合、 途中で止めるにはどうすればいいですか? プログラムを強制終了しても、止まらないようなのですが・・・
332 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:42:42 ] File.Copyだと止められないんじゃない SHFileOperation使えば
333 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 15:55:34 ] >>332 ダイアログがうざいから SHFileOperation使いたくなくてFile.Copy()にしたんですが やっぱり止める方法はないんですかね・・・ FileStreamでnバイトずつ読み込み→書き込み→停止信号監視 とやれば止められそうですが遅くなりそうで
334 名前:デフォルトの名無しさん [2008/02/07(木) 16:19:46 ] >>327 変化なし
335 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 16:39:19 ] >>331 Windows APIのCopyFileExだと コールバック付きで途中中断もできる。 こっちはだめ?
336 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 16:47:50 ] >>335 ありがとうございます そんなのがあるんですか Win32APIだとVISTAへの対応が心配ですが試してみます
337 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:18:48 ] CopyFileExだとファイル単位でコールバックだね
338 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:20:09 ] >>337 >ファイル単位 そうですかぁ・・・ ファイルコピー/移動中にスキップしたりしたいので >>333 の方法しかないですかね オーバーヘッド食いそうだなぁ('A`)
339 名前:337 mailto:sage [2008/02/07(木) 17:27:08 ] >>338 すまん嘘だった
340 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:27:48 ] そして属性やNTFSサブストリームが消える罠
341 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:37:11 ] それらもコピーされると書いてある。 msdn.microsoft.com/library/ja/jpfileio/html/_win32_CopyFileEx.asp
342 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 17:51:44 ] うん、338へのレスだったんだ
343 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 18:07:53 ] >>318 WebBrowserConstorlは基本的にメッセージポンプが必要。 だたメッセージポンプなしでも特定の条件が重なったときは動作する。 そのコードだと動くほうが例外的。
344 名前:デフォルトの名無しさん [2008/02/07(木) 21:17:54 ] >>343 詳しく
345 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:04:02 ] >>318 を下記のように修正 thread = new Thread(new ThreadStart(entry2)); void entry2(){ bool once = false; EventHandler apidle = delegate(object sender, EventArgs e){ if (once) return; else once = true; entry(); // 元のentry()をcall Application.ExitThread(); }; Application.Idle += apidle; Application.Run(); Application.Idle -= apidle; }
346 名前:デフォルトの名無しさん mailto:sage [2008/02/07(木) 22:16:18 ] >>324 クライアントにパスワード残して「解析しようと思えば」っておかしいだろ・・・ 本気でやるなら認証鯖立てるしかないんじゃね?
347 名前:デフォルトの名無しさん [2008/02/07(木) 22:20:22 ] >>345 おぅ 動いた
348 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 00:07:17 ] >>343 ナイス! ただ、 >>WebBrowserConstorl これタイプミスしてなければ...
349 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:03:13 ] コメントにtodoとか入れておいたものがタスク一覧に現れるのは開いているファイルだけのようですが ソリューションかプロジェクトの全てのファイルを一括で確認する方法はありませんか?
350 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:28:45 ] スレッドモデル指定なしのCOMを使ってるのか COMのスレッドモデルは死ぬほどややこしいからな〜
351 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 01:53:29 ] ありません。
352 名前:デフォルトの名無しさん [2008/02/08(金) 09:04:24 ] >>346 確かに暗号化してあってもクライアントにパスワードを残すのはよろしくないですが、 ログイン名だけは記憶できるようにしたいとか、接続先URLも攻撃を避けるために 隠蔽したいとか、どうしてもクライアントに暗号化して残したい情報はあると思ってます。 windows認証(DPAPI)で暗号化して, windowsのパスワードが安全なポリシーに従って 設定されていれば、それなりの安全性は保てると思うんですが、やっぱまずいっすかね。
353 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 09:30:50 ] 誰から守りたいわけ?
354 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:29:04 ] 普通の配列 int[] array から List<int> list に中身をコピーするメソッドって無いですか? foreach(int i in array){ list.Add(i); } ってしないと駄目ですか?
355 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:45:31 ] >>354 C#3.0用 array.ToList() 多分中身は>>354
356 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 11:46:08 ] new List<int>(array); // たぶん中身は(ry
357 名前:デフォルトの名無しさん [2008/02/08(金) 11:54:26 ] >>355 ,356 ありがとうございます。 10分も悩んでしまいました;;;
358 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 12:56:50 ] ToList()だとインスタンスが書き換わらない? AddRangeって手もあるよ
359 名前:デフォルトの名無しさん [2008/02/08(金) 14:55:57 ] >>345 動かなくね?
360 名前:デフォルトの名無しさん [2008/02/08(金) 15:03:37 ] 動かん a-draw.com/uploader/src/up31487.zip.html
361 名前:359,360 mailto:sage [2008/02/08(金) 15:07:43 ] >>345 、>>360 は>>345 の指示で>>318 を修正したもの で、Windows XP Pro SP2だと普通に動いた。 が、Windows Server 2003 R2 x64、Windows XP x64だと動かない。 腐ってやがる・・・
362 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:24:14 ] 早すぎたんだ
363 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:25:44 ] つまり>>304 と>>316 は別の問題だったわけか。 64bit環境はないからテストできんなぁ。 64bit環境で32bit指定したexeの場合はどうなの?
364 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:32:00 ] うちはXPx64だけど32bit指定でも64bit指定でも問題なかった
365 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 15:32:18 ] これ、どうなればいいの? TEST押したらdoneが出るだけ?
366 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:06:01 ] >>365 doneダイアログが出た後にフリーズしなければok 問題がある場合はdoneダイアログが出てスレッドは終了しているはずなのに直後にフリーズするはず あと、俺の環境でも32bitだと問題なし
367 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:06:57 ] レスをざっと見た感じNT5.2x64以外は大丈夫なんじゃね? NT5.2x64なんて使ってる奴いるの?
368 名前:デフォルトの名無しさん mailto:sage [2008/02/08(金) 17:07:08 ] なるほど、Vista64でAny x86 x64 すべて動作。 ってVS2008ですが。2005でやったほうがいいかな
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でマネージドを公開するいい例が無いでしょうか・・?
470 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:28:03 ] ラッパより糖衣だろう
471 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:28:58 ] >>469 support.microsoft.com/default.aspx?scid=kb;ja;815065
472 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:34:32 ] ILかw これはひどい
473 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:39:54 ] >>471 逆PInvokeはさすがに知らんかった。 どの言語から使いたいのかわからないけどCOMが一番取り回しが楽だよ。 登録の問題はSxSで回避できるし。
474 名前:467 mailto:sage [2008/02/11(月) 13:51:19 ] もう圧倒的にCOMがいいのは重々承知なんですが、 OpenSource系のWin32だし苦手なC++なので手が入れられないんですよね。 逆アセンブリ?もちょっと・・
475 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 13:57:48 ] じゃあやっぱりC++/CLI
476 名前:467 mailto:sage [2008/02/11(月) 14:03:55 ] ですよねー。それがいいみたいですね。 よく分かってないので、C++/CLIでのラッパーの作り方とか調べてみます。
477 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:59:09 ] そこらへんくわしい書籍ないかな? あんまり見かけない気がする てかC++/CLI関係の本がないか。。。
478 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:24:41 ] 装飾付きRTFファイルに装飾付きRTFデータを追記する方法で困っています 装飾部分が毎回同じ(黄色のハイライトのみ)なので単純合体の方法で 現存のRTFファイルをテキスト読込し最後の2行の終了部を削る 追加するRTFデータをRTFファイル出力してからテキスト読込して 最初の2行の装飾部を削ってテキストを合体させテキスト出力する そのくらいしか思いつきません 他によい方法はありますでしょうか?
479 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:39:30 ] フォームにリッチテキストボックスを2つ置いて、起動時に引数でファイル読込して 片方に追加させファイルに書込んで終了する単独ソフトを作った方がいいのかなあ
480 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:46:07 ] Qtで作成させたウィンドウのイベントをフックするプログラムを作りたいのですが、 スパイ++で覗いたところ、QWidgetというクラスで、キャプションはlbOKというオブジェクトです このlbOKをクリックするイベントを送りたいのですがどうしたらいいでしょうか? ウィンドウハンドルやウィンドウProcなども分かっています よろしくお願いいたします
481 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:58:02 ] 実際にクリックしてみてどんなメッセージが飛んでるか、 Spy++で調べて、SendMessageで再現すればいいよ。
482 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:59:07 ] >>480 SendMessage, BM_CLICK
483 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:09:20 ] >>481 >>482 なるほど参考になりました SendMessageですね!! さっそくSpy++で調べてやってみます!!
484 名前:デフォルトの名無しさん [2008/02/11(月) 21:28:58 ] Vistaの「Task Dialog」で OPENFILENAME構造体のFlugsにEnableTemplateHandle、またはEnableHookを選択するとXP以前の外観に戻ってしまうんです。 ダイアログボックスをカスタマイズするには、ウィンドウメッセージをフックする必要があるので、EnableHookを必ず選択しないといけなく新しい外観のままカスタマイズすることはできないのです C++では使えないようなんですが ttp://msdn2.microsoft.com/ja-jp/library/43xtah3y.aspx C#ではどうなんでしょう おねがいします。
485 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 21:42:45 ] ものすごい初心的な質問だと思うんですが ボタンだけを配置したフォームでキーイベントを受け取りたいのですが どうすれば良いのか教えてください
486 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:55:36 ] 結局はゆうが細かったということで
487 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:55:49 ] ContextMenuStripでShow()した時に、 ContextMenuStripが閉じるまでShow()から制御が戻らないようにしたいんだけど、 どうすればよい? TrackPopupMenu()みたく、メニュー側でモーダルループ持たせたいんだけど。。。
488 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 05:27:39 ] HttpWebRequestを用いて通信したとき、 200successや404notfoundなどの コードはどのように取得したらいいのでしょうか? よろしくお願いいたします。
489 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:52:18 ] >>488 HTTPの応答時のステータスコードを取得する ttp://dobon.net/vb/dotnet/internet/httpstatuscode.html
490 名前:デフォルトの名無しさん [2008/02/12(火) 09:00:56 ] >>488 HttpWebResponse.StatusCodeとHttpWebResponse.StatusDescriptionに はいってんじゃね? 404だと例外放るからWebExceptionキャッチして、webException.Response をHttpWebResponseにキャストして、同様にStatusCodeなんかを見る。
491 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:47:34 ] >>489 >>490 ありがとうございます HttpWebResponseにキャストしなくちゃいけなかったんですね 大変助かりました
492 名前:デフォルトの名無しさん [2008/02/12(火) 15:07:00 ] PDFファイルの中の文字を検索とかってできるんかね?
493 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:35:42 ] ネットの海からライブラリを探すしかない
494 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:43:15 ] 仕様は公開されてるから自分でできるよ
495 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:55:27 ] PDFってバイナリでしょ? 画像も入るからむずかしくね?
496 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:56:11 ] そういやGoogleボットはPDF内もクロールしてるな できるんじゃね PDFのgrep作ったら俺にもちょうだい
497 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:05:22 ] >>495 バイナリエディタで見ればわかるが、少なくとも文字はただのテキスト。
498 名前:デフォルトの名無しさん [2008/02/12(火) 17:27:13 ] UserControlでスムーズスクロールを実装するにはどうやればいいのでしょうか?
499 名前:デフォルトの名無しさん [2008/02/12(火) 18:06:14 ] ああ、つまりアレか PDFファイルを開いて文字列だけ正規表現か何かで抜き出せばいいのか
500 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:27:22 ] 画像と画像じゃない部分は区別しなくていいの?w ダメだろそんなルーズな方法
501 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:42:02 ] pdfのライブラリでテキストだけ抜き出せるべ
502 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:18:19 ] バイナリから文字列っぽい部分拾ってくるだけなら、ただのstringツールだ
503 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 23:24:58 ] PDF -> テキスト ならTeXについてくるツールでいいんじゃね
504 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:14:16 ] 携帯から失礼します GameState = Title; switch (GameState) { case Title: 処理 if("Aを押したら") { GameState = Main; } break; case Main: 処理 break; } こんな感じのプログラムを打っているのですが、実行結果が少しおかしいのです。 タイトル画面からAを押したらメイン画面に移行します。しかし、メイン画面での処理が始まりません。 試しにGameStateにMainを入れて始めたら、メイン画面の処理が行われました。 ちなみに、タイトル画面にメイン画面の処理を全て入れてタイトル画面→メイン画面と移行させたらメイン画面の処理が行われました。 しかし、タイトル画面ではタイトルの処理だけ、メイン画面ではメインの処理だけさせたいのでこれでは意味がないのです。 説明下手で申し訳ないです。何か分かりましたら教えて頂けないでしょうか?
505 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:20:14 ] >>504 breakしてんだから始まるわけないじゃん 処理のフローをちゃんと見直せ
506 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:29:16 ] アフォすぎてワラタ
507 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:38:51 ] PDFのフォーマットは失禁するほど複雑だし(1300ページ超)、文字列も何種類かあるし、 自前で解析なんてやってられない
508 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:39:28 ] なんでPDFなんてできたんだ
509 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 01:45:06 ] お答えありがとうございます。アホな質問に答えて頂き感謝します。 しかし、break文を消した所、 コントロールはひとつのcaseラベル(case 0)から別のラベルへ流れ落ちることはできません。 と、エラーが出ました。恐らく case Title 処理 case Main と書いてあるためだと思われますが、これだ ここまで書いて思ったのですが、なんか質問する以前の問題のような気がしました。もっと勉強し直して来ます……すいませんでした
510 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:12:19 ] >>509 だからフローを見直せって switchの使い方がおかしいんだろ
511 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:17:44 ] >>510 はい、もう一度見直します。もっとじっくり考えます。今日はこれが出来るまで寝ないつもりで頑張ります。
512 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:21:23 ] C#以前に構造化プログラムを理解してないんだろ 初心者はif while以外使うな これだけでプログラム書ける
513 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:25:24 ] 今時構造化プログラミングが何かすらソフトウェア工学で教えなかったりするらしいな
514 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:36:53 ] それってまずいだろw 構造化プログラムが書けなきゃOOPなんて絶対むりやん
515 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 02:45:56 ] そもそもソフトウェア工学学んだりしてるやつがほとんど居ないだろ 独学も含めてな
516 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 04:33:15 ] なんとか無事に出来ましたので報告します。やはりswitch文の使い方に問題がありました。 今思うとなんでこんなことを、と恥ずかしさで死にそうです。しかし、今回の経験を通してswitch文だけではなく、enum型、メソッドの使い方を学びました。 こんだけ必死になったのも、自分の醜態を晒したからだと思いますw これからも日々精進で頑張ります。 長々となりましたが、自分のしたいことが出来ましたので報告とさせて頂きました。色々とお見苦しい所があったかと思います。失礼しました。
517 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 04:38:38 ] うん、良い子だ
518 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 04:47:40 ] 俺ん時はソフトウェア工学教える授業でちゃんとあったんだよな んで、人伝に聞いただけなんだけどJava使っていきなりOOPだとか って考え直したらソフトウェア工学自体やってねえだけか
519 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 04:48:47 ] >>516 解決してよかったね
520 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 09:52:19 ] 三十郎か
521 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 10:30:13 ] >>516 報告乙。恥ずかしさを思い出して氏ね。
522 名前:484 mailto:sage [2008/02/13(水) 12:38:08 ] その後いろいろ調べてみたところ、Vistaで利用できる新しいファイルダイアログボックスをカスタマイズするには、 COMベースのAPIを利用する必要があるということがわかりました C++での利用例を参考に(この時点では表示できている)、C++のヘッダーファイルを読み、C#で実装しました そして、コンパイルし動かしてみると、メモリアクセス違反が発生し、ダイアログが表示されません どうしてなんでしょうか? ソースコードは www.uploda.org/uporg1248711.zip.html 開発環境はVS2005Pro 最新のMicrosoft Windows SDK for Windows Vistaが必要だと思います。 もちろん、Vistaでのみの動作です。 お願いします
523 名前:484 mailto:sage [2008/02/13(水) 12:44:54 ] すいません、アップロードに失敗したのでこちらをお願いします。 www.uploda.org/uporg1248719.zip.html
524 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 14:23:08 ] >>513 順次構造・繰り返し構造・分岐構造やフローチャート程度のものなら高校でやるよ。 工業系でない一般高校でも。
525 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 14:51:28 ] >>524 まじ?一体いつから・・・ 俺ん時はなかったな
526 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 15:49:29 ] くだ質でスンマセンですが List<hoge>fuga1と List<hoge>fuga2が 含まれるリストが同じか否かを知るには、どうやればいいですか?
527 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 16:24:39 ] >>526 Enumerable.SequenceEqual
528 名前:526 mailto:sage [2008/02/13(水) 16:51:15 ] >>527 C#3.0まだ勉強してないです・・・ とりあえずカッコ悪いけどforeachで回します
529 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 17:50:38 ] カウンタ使わないと無理じゃないの? それならforのほうが
530 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 18:30:05 ] えっ?
531 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:21:46 ] ^^;
532 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:34:39 ] >>526 まずは要素数を比較 一致するならリストをソートして先頭から順に一致するか検査
533 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:48:25 ] >>532 ソートしたらO(n logn)になっちゃうやん
534 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:49:25 ] 順序も含めて「同じ」かもしれないだろ
535 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 19:59:29 ] >>532 アフォ過ぎてお茶吹いたwww
536 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:06:13 ] 順序無視ならHashSet<T>が使えるな
537 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:14:51 ] 使ったこと無いけど、Dictionaryのキーだけバージョンか
538 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:21:22 ] うるせー ソートして何が悪い 俺はソートが好きなんだよ
539 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:22:29 ] HashSetは集合演算用だろ よくしらんけど
540 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:37:11 ] >>536 同じ要素が複数あったらダメダな
541 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:41:05 ] 集合演算したいだけならふつうのSetがあるだろ
542 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:41:37 ] >>538 ププププ
543 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 20:43:39 ] fuga1.TrueForAll(fuga2.Contains) みたいなことやるよりはマシか
544 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:06:24 ] >>533 >>535 アホは君らだ。
545 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:25:31 ] そーっとしとこう
546 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 22:34:35 ] マジレスしてい〜い?
547 名前:526 mailto:sage [2008/02/13(水) 23:00:19 ] スンマセン自分のせいでスレのふいんきが 結局どんなのが良いんですかね? ソートしちゃうのが一番単純ですが、ソートに使えそうなフィールドがない場合や IComparable付けてない場合だと駄目ですよね?? fuga1.TrueForAll(fuga2.Contains)はいいかなと思ったんですが、駄目なんですか?
548 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:06:45 ] つかそもそもソートしていいの?
549 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:11:55 ] 重複はあるの?
550 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:26:42 ] >>547 問題を具体的に示しなよ。 正解教えてあげるからさ。
551 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:29:19 ] >>546 * * * + いいよん n ∧_∧ n + (ヨ(* ´∀`)E) Y Y *
552 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:31:16 ] 最近のC#erってのはアルゴリズムもわかっとらんのか
553 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:35:55 ] いやここ初心者スレだし
554 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:36:58 ] ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html この辺読んでるんだが、アセンブリの厳密名とか署名とか、なんか色々面倒くさいと感じた。 当分気にしなくてもいいんだろうか。
555 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:38:20 ] つまり回答者のお前らも初心者だったのか
556 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:40:21 ] 悔しさが滲み出る良レス
557 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:40:42 ] >>547 それじゃ一方が他方の部分集合であることしか分からんじゃん。 それに、O(n^2)
558 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:45:36 ] ソートした後の結果が同じかどうか知りたいのであれば 最初からListを使うべきではないんだと思うな SortedListあるいはDictionaryあたりを使うべきなんじゃないかね
559 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:48:16 ] (・∀・)ニヤニヤ
560 名前:526 mailto:sage [2008/02/13(水) 23:53:15 ] >>548 >つかそもそもソートしていいの? 「いい」というのは、「並びが変わってしまっていい」という意味ですか? 対象のリストは大丈夫です。必要ならソート用Listをコピーして用意すればいいと思いますが >>549 ないです。ある場合はまた面倒なんでしょうかね・・・? >>557 重複がないので↓で大丈夫だと思うのですが?(というか大丈夫でした) bool b; if(fuga1.Contains==fuga2.Contains) { b = fuga1.TrueForAll(fuga2.Contains); } >>552 さんのいうとおりアルゴリズムの基本もちゃんと分かってない阿呆なので、この辺で失礼します。 ありがとうございました。
561 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:54:05 ] ソートなんかしたらO(n logn)で無駄だろ 普通に要素比較しろ
562 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:54:23 ] >>557 二つのリストの長さは等しいの?
563 名前:デフォルトの名無しさん mailto:sage [2008/02/13(水) 23:56:27 ] >>561 アホ。
564 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:00:44 ] 何なのこの流れ
565 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:05:29 ] 要素数はいくつなんだ? 100とかじゃないよな?
566 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:06:12 ] >>563 いや、アホはお前だろw
567 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:09:15 ] 質問者も逃げ出したのか
568 名前:526 mailto:sage [2008/02/14(木) 00:11:20 ] スンマセン、>>560 はfuga1.Contains==fuga2.Containsはミスです。 ふと思ったんですが、Listをコピーしておいて(←参照型だから軽いですよね)、 ContainsがtrueだったらRemoveしておけば多少早くなりませんか? bool b = true; if (fuga1.Count == fuga2.Count) { foreach (hoge f in fuga1) { if (fuga2.Contains(f)) { fuga2.Remove(f); } else { b = false; break; } } } else { b = false; } 重複の場合はどうしょ・・・・
569 名前:526 mailto:sage [2008/02/14(木) 00:12:19 ] しまったスペースが お見苦しくてスマンセン
570 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:17:20 ] >>568 二つのリストに同じ要素が入っているとしても順番までも同じとは限らないの?
571 名前:526 mailto:sage [2008/02/14(木) 00:25:17 ] >>570 順番は違います(とくに規則性はないです) 順番が一意に決まってるのならもっと早い方法があるってことですか?
572 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:26:39 ] うん
573 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:36:47 ] ハッシュテーブルに突っ込めばいいじゃん。
574 名前:デフォルトの名無しさん [2008/02/14(木) 00:38:43 ] wpfでfarameを使ってwebページにnavigateした後にそのページのDOMを取得するには どうしたらいいんでしょう。windows.formsのwebbrowserでdocumentを取るみたいに したいんですが。
575 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:43:52 ] >>574 WPFって何なのですか? 新規作成のメニューにあって気になってたんですが・・・・
576 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 00:47:33 ] WPF は流石にぐぐったらいくらでも情報出てくる。
577 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:03:31 ] 概要さらっとぐらい教えてくれたっていいのに・・・ まあいいか、自分で調べるわ
578 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:32:54 ] どう考えても調べたほうが速いし正確
579 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 01:45:48 ] 大体解ったのでもういいです channel9.msdn.com/screencasts/thailandscreencast.wmv
580 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 03:49:37 ] WPF 結構色々できますね、XMLのドキュメントはバイナリー化されているんだ、なるほど。 やっていたらもう四時になっしまった、寝なきゃ・・・
581 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 05:01:10 ] regsvr32使って登録したアンマネージドなDLLは, そのまま[DllImport]で呼べると思ってたんだけど DLLが見つかりませんって実行エラーがでる... これってどうやればいいんですか? DLLはいろんなファイルや他のDLL参照してるから 今のフォルダ構成から動かせられないって制限付きなんですが...
582 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 05:51:47 ] てs
583 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 05:55:50 ] >>581 DLLが見つからないんじゃない?
584 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 06:05:27 ] regsvr32ならCOM呼び出しになる 参照設定で追加
585 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 06:19:26 ] C#を使い、.net無し環境で動くまともなプログラムは作れますか?
586 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 06:31:21 ] なにをしてまともと言うのか
587 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 06:58:01 ] えっと、HelloWorldくらいなら出来る、とかそういうレベルではなく 普通に配布されているようなユーティリティのようなものを作れるのかなと WinAPIを直接触ってしまったらしまったでC#でやる意味もない気もしますし 自分でもうまくまとまらないですすみません
588 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 07:08:28 ] Linuxへの移植も可能っぽいし(framework部は動かないが)、やろうと思えばできるんじゃない つかC#から.net切ったら何も残らないと思うのだが
589 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 07:09:29 ] なるほど・・・C/C++をやってきての段階なので、ちょっと概要を調べつくしつつ 使い分けできるようにしていきたいと思ってます、ありがとう
590 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 07:19:00 ] むり
591 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 07:21:20 ] >>590 安価つけよう、なぜか>>589-590 で笑っちまった
592 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 07:47:20 ] いや無理じゃないぜ C#単体では動かないが
593 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 08:35:40 ] むりなものはむり
594 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:07:26 ] Windows限定なら.NETFrameworkなし環境用のexeを作るツールがある でも借りたPCで.NETインスコ不可等の事情がない限り、そのまま配布してほしいな よく考えてみたらスレ違いな気がする…
595 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:08:45 ] ngenは意味ないしなぁ ネイティブコンパイラなんてあったっけ
596 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:13:37 ] gugurekasu
597 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 09:44:14 ] >>588 てか、そこは「Linux 版の .NET 環境もあるよ」と教えるべきでは。 >>595 www.remotesoft.com/ でも、言語仕様の時点で .NET Framework の存在を仮定してる言語のネイティブコンパイラ使ってもなぁ。
598 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:09:07 ] >>597 念のために言っておくと .NET Framework の存在は仮定してない。 # C# が必要とする BCL は Micro Framework に比べてもはるかに小さいし、アセンブリやリフレクションの概念さえない。 ただし、RTTI や GC を含む基本的な言語システムはどうしても必要になってくるけど。
599 名前:デフォルトの名無しさん [2008/02/14(木) 10:23:30 ] TextBoxでマルチラインを有効にした状態で行間設定はできないのでしょうか? 行間がビチビチで読みにくいのですが。
600 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:48:15 ] >>597 monoって今ぶっちゃけどうなんすか? 専用スレが寂れまくってますが。
601 名前:581 mailto:sage [2008/02/14(木) 10:51:26 ] >584 参照設定でDLLを追加してみましたが,同じ結果でエラーが出ました 追加情報: System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。 ---> System.DllNotFoundException: DLL '***.dll' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E) Webサービスで参照させているのが影響してたりしますでしょうか...? (テスト環境はローカル) 参照の追加ダイアログで確認する限り,DLLへのパスはあっています
602 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 10:58:44 ] ソケットでサーバーで接続元のIPアドレスとポート番号を取得するにはどうすればいい?
603 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 11:24:11 ] Socket クラス使ってんなら RemoteEndPoint があるだろ
604 名前:デフォルトの名無しさん [2008/02/14(木) 13:56:30 ] >>600 anonsvn.mono-project.com/Mono-1.2.6_openSUSE-10.3.i686.iso.torrent
605 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:02:22 ] >>604 踏むのが怖い
606 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:04:59 ] torrentだから例え踏んでもその先に行けないだろう、キミは
607 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:05:39 ] C#伸びていくのかねぇ
608 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:11:18 ] なんだかんだある程度広がるのは確実だろうなぁ VSのC#への偏向具合もあるし、MSは.NETひいてはC#を当分主軸として動きそうだし
609 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:16:39 ] なんだかんだだよななんだかんだ なんだかんだWindowsシェア広いし 俺としてはASPが強力だと思えるからWindowsサーバがどれくらい増えるか気になる
610 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 14:28:36 ] vista以降は.NET標準で入ってるから、windowsが廃れない限り確実に伸びるんじゃないですかね?
611 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:06:37 ] windowsサーバをまともに構築する苦労というかは結構でかい気がするな というのも初心者がWindowsサーバ構築して公開して悲惨なことになっているのを見てだけど
612 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:14:53 ] そんなんOS問わずだと思うが
613 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:17:34 ] そうかねぇ、初心者が構築したってんだからそうでもないだろ linuxなんて最初からセキュリティ割とがちがちだし
614 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:19:08 ] 初心者のLinuxサーバ構築よりマシかと、動いたところでいっぱいいっぱいで もう触らないとか、目も当てられない状況になる事多々ありなんですが 素敵な踏み台サーバーは勘弁、某大学とかとかwww
615 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:19:48 ] WindowsServerがセキュリティは上だよ。
616 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:21:31 ] 初心者linuxサーバはインスコから合わせて解説通りやる ポート開放やデフォのセキュリティからちょこっと解放したり Windowsは普通にデフォのWin環境で鯖構築するから目も当てられない これくらいは常識以下 某大学は偶然狙われただけだろう、狙われればどこも同じなんて状況だよ そんな悲惨なのが溢れてる まあそういうとこは大学のページほどアクセスやらされ辛いわけだがな
617 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:22:41 ] WinXPやなんかで公開するのか? そりゃ見事にアウトゾーンだがまあ初心者ならやるか・・
618 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:23:07 ] えー、めんどくさくなって全部ONにしてtelnetポート開けっぴろげだぜベィベー とかよ
619 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:30:03 ] 想像だけで語るスレはここですか?
620 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:41:44 ] WindowsServerは、馬鹿が使っても大丈夫なようになっているから、 生半可な知識でLinux鯖立てる人より安全。 なぜなら、彼らはOSのバージョンアップのやり方を知らないから。makeも知らない。 だから、人件費が削減できて、結果的に(フリーのLinuxより)Windowsを買った方が安くつく。 だから売れる。商売が成り立つ。もちろん知識のある人の多い会社はわざわざOSを買ったりしないが。 WinならWindowsUpdate一発だから。GUIだから馬鹿でもやれる。 大学のサーバは本当にひどい。 VineLinux3.2(M大、N大)とか、PHP3系(S大、W大)とか、普通に使っているし。 証明書なしで学外からパスワードを入力させる。うちの大学のことだが。 でもさすがにWinXPで鯖立てる大学は知らない。犯罪だしな。
621 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:45:03 ] 犯罪にはならないよ
622 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:45:38 ] XPで鯖立てたら犯罪って。中途半端な知識だなぁ。
623 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:48:43 ] ヒント:同時接続数
624 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:50:11 ] wwwwwwwwwwwwwwww
625 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:51:09 ] 大学は本当にヤバイですよ このスレで質問してるような自分が相当できる人だと思われてる・・・
626 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:53:23 ] で、C#の質問はまだ?
627 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:54:15 ] ×大学は本当にヤバイですよ ○私の大学は本当にヤバイですよ
628 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:57:27 ] >>627 俺の大学、高木先生に「この大学に入学するな」リストに入ってるwww
629 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 17:58:46 ] どこ?
630 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:01:49 ] ttp://takagi-hiromitsu.jp/diary/20071201.html
631 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:05:30 ] 間違えた。 ttp://takagi-hiromitsu.jp/diary/20071117.html
632 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:06:52 ] スラドで話題になってた奴か
633 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:11:48 ] やべ、俺の大学もリストアップされてるwww
634 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:16:00 ] どこ?
635 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 18:49:31 ] 法政
636 名前:デフォルトの名無しさん [2008/02/14(木) 20:59:55 ] wpfで作られるWindow1クラスのクラス名とかWindow1.xamlのファイル名とか リファクタリングしてもxamlの方が更新されなくて、いちいち手動で直さないと いけないのがすごく面倒くさいんですが、なんか良い方法ってあるんでしょうか? それとも、Window1でそのまま使った方が良いのかな…。なんか気分が悪い。
637 名前:デフォルトの名無しさん [2008/02/14(木) 21:04:32 ] デフォルト設定ならWindows Serverの方が圧倒的に堅い。 素人が余計な事をしなければ、ある程度のセキュリティを確保できる。 が、ガチガチのセキュリティを確保しようとすると、やれレジストリだ何だと鬼のように難しい。 そしてちょっと凝った事をしようとすると「動かん」「バグですか」となる。 一方、デフォルトのLinuxはオープン。来る者拒まずな感じ。 そのかわりガチガチにするのは楽。 素人が訳も解らずにネット上の「入門」とか言ってるサイトに転がってる設定ファイルをコピペ するだけでも、それなりになる。 そして自分が何をやったのか、訳も解ってないのに偉そうになる。
638 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 21:12:15 ] >>637 それはもう常識でしょう、語らなくてもいいです、スレ違い(笑
639 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 22:57:56 ] なんでサーバの話してんの?
640 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:01:10 ] 少しくらいログ読めば?
641 名前:デフォルトの名無しさん mailto:sage [2008/02/14(木) 23:17:01 ] UIのコンテナ関係の質問です。 元のコンテナをDisableにすると中のコントロールも灰色になってしまうのですが、 これを自前でドローする以外で回避するにはどうしたらいいでしょうか?
642 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 00:14:04 ] 自前ドローだけで回避できるのか? WS_DISABLEDが伝播してきてるんじゃないのかね
643 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 02:41:57 ] >>641 見たこと無いな、そんな機能 色は変えなくてもDisable? それでなけれぱ、一旦コンテナから離して、優先順位を上にしてしまうのが楽チンそうな気がする。
644 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:02:09 ] ちょっと教えて下さい。 HttpRequest/HttpResponceを使ってWebサーバと通信して居ます。 WebサーバからCookieが送られて来るのですが、JavaScript中に埋め 込まれて送られてきます。 HttpResponceで受け取ったデータの中を舐めても良いのですが、もっ とスマートにCookieを取り出したいのですが、何か良い方法は無いで しょうか? ちなみに、IEがDocument Setting\ユーザ名\Cookieに保存するCookie ファイルを直接読み出す方法を考えて見たんですが、ログインユーザ を意識しないでやる方法を探して居ます。 何か良い方法は無いものでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 10:23:20 ] >>644 Cookies
646 名前:デフォルトの名無しさん [2008/02/15(金) 11:18:22 ] DateTime型のToString()メソッドで、XML SchemaのdateTime型(CCYY-MM-DDTHH:MM:SSZ)形式を 一発で出す方法は無いでしょうか? DateTime dt = DateTime.Now(); dt.ToString("s"); でCCYY-MM-DDTHH:MM:SSまでは出る事がわかったのですが。 (タイムゾーンが出ないです) TimeSpanを使って長ったらしい内容にしないと無理でしょうか? 後々、バグの原因になりそうなので簡潔に書いておきたいのですが。
647 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 11:35:15 ] dt.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss':'zzz"); とか?
648 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:15:14 ] つーかDateTime構造体にタイムゾーン情報って含まれてたっけ? 単なるlong値じゃねーの
649 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:17:49 ] UTCかGMTかの区別は入ってるよ。 あとは実行した環境のタイムゾーン見ればよし。
650 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 12:18:09 ] UTCかローカルタイムか、ね
651 名前:デフォルトの名無しさん [2008/02/15(金) 12:48:47 ] >>647 XMLスキーマのdateTimeってGMT+タイムゾーンだからそれじゃダメじゃね? >>648 .NET2.0から仕様が変わってタイムゾーンを保持するようになった
652 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:06:17 ] >>644 HttpWebRequest/HttpWebResponseではJavaScriptが動作しないので、 埋め込まれていたら無理。 IEで利用しているCookieを取得するには、InternetGetCookie。
653 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:51:37 ] >>651 なら 'GMT'zzだね。
654 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 13:54:03 ] 'Z'
655 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:10:52 ] DateTimeはカスタムクラスを作っておいて必ずそれを呼ぶ様にした方がいい。 特にDBとか使ってるときにDB側の日付型の違いで地獄に堕ちるのを防いでくれる。
656 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:26:17 ] >DB側の日付型の違い これって結構あるものなんですか?標準と微妙に違ってたり、とか?
657 名前:デフォルトの名無しさん [2008/02/15(金) 14:36:05 ] フォームの質問です。 メインウィンドウからダイアログ1を開く→OK押す(ダイアログ1消える)→ダイアログ2が起動 (重い処理なのでプログレスバー表示)→完了(ダイアログ2消える)→メインウィンドウに戻る をしたいのですが、1を消すタイミングでclose()、dispose()してるにも関わらず ダイアログ2が終わるまで1のダイアログが残ってしまいます。(1の上に2が重なってるイメージ) どうやれば、1のダイアログをすぐに消すことが出来るんでしょうか。
658 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:38:22 ] 親ウィンドウをdisposeって普通しないんじゃ? 最小化すればいいんでないの
659 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:40:35 ] >>656 selectした際に特に変換せずに抜き出すと、各社ばらばら。 あと内部保持形式がUTCだったり設定依存だったりと。 俺は日付に関する値でも迷わずvarcharにしている。 で、どうしてもという時は、where句で必要に応じてvarchar -> dateとかキャストして使うようにしている。
660 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 14:45:12 ] >>658 良く嫁
661 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:08:45 ] >>659 すごいですね・・・DBやったことないんで知りませんでした 地獄には堕ちたくないですよねやっぱ
662 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:10:05 ] 重い処理とやらをUIスレッドでやってるだけじゃね?
663 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:10:29 ] SQL92準拠にしとけばいい
664 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 15:19:41 ] >>657 ダイアログ2を開く処理はどこに書いてる? ダイアログ1のOKボタンのハンドラに書いてないか?
665 名前:デフォルトの名無しさん [2008/02/15(金) 15:22:06 ] >>663 そんなの関係ねぇ〜
666 名前:657 [2008/02/15(金) 16:28:57 ] >664 処理の流れは、 1.メインウィンドウ ダイアログ1を開く処理(xxx.ShowDialog()) 2.ダイアログ1 処理 (DialogResult.OKを返す) 3.メインウィンドウ DialogResult.OKを受け取った後、ダイアログ1を閉じる処理 (close()、dispose()) 4.メインウィンドウ ダイアログ2を開く処理(yyy.ShowDialog()) 5.ダイアログ2 処理 (処理後にclose()、dispose()) 5でダイアログ2が消えると同時に3のclose()が働いてるようです。 因みに3の直後でmessagebox.show()でメッセージを表示すればダイアログ1は消えます。
667 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 16:43:11 ] 再描画
668 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:02:16 ] DateTimeにnullが代入できないのはどうにかならんのだろうか nullに相当する時間をきめてやるとか、処理がめんどい
669 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:17:58 ] Nullable<DateTime>
670 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:36:22 ] DateTime.MinValueでいいんじゃね
671 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:40:08 ] Nullableと?って何が違うの?
672 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 18:43:09 ] 同じ。
673 名前:デフォルトの名無しさん [2008/02/15(金) 19:42:34 ] DateTimeをクラス化すればいい
674 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 20:35:05 ] >>669 ジェネリックかじってたけどこれは知らんかった >>670 それも考えたけどフレムワクのバージョンとか 環境の違いで値が変わる可能性がないとは言い切れない とか妄想したんで使ってない >>673 その考えはなかった
675 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 22:35:36 ] >>671 構文糖衣ってやつ。
676 名前:644 mailto:sage [2008/02/15(金) 23:42:22 ] >>645 ,652 回答ありがとうございます。早速試して見ます。
677 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:45:01 ] >>675 クラス型と値型との違いはないの?
678 名前:デフォルトの名無しさん mailto:sage [2008/02/15(金) 23:51:49 ] >>677 T?に対応するのはNullable<T>構造体だよ。 だからどっちも値型。
679 名前:デフォルトの名無しさん [2008/02/16(土) 00:58:29 ] monoからDateTime.cs引っ張ってきてクラス化してみようと思ったが面倒なんで途中でやめた
680 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:01:14 ] 世界がお前の偉業を待ち望んでる 最後までやれ
681 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 01:06:41 ] >>678 なるほどなー Nullableって使いやすくて大好きさ
682 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 12:50:26 ] 2つのIEnumeratorを並行して列挙したいんだけど 自分で列挙子を直接操作する以外の方法ある?
683 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:00:14 ] >>682 > 並行して列挙 って何?
684 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:05:41 ] ZipWithみたいなのが欲しいってこと? ttp://blogs.wankuma.com/mnow/archive/2008/01/24/119056.aspx#119332
685 名前:682 mailto:sage [2008/02/16(土) 13:19:55 ] >>684 うん .NET3.5も含めて,標準の方法はないということでいいのかな
686 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 13:23:31 ] >>685 であれば残念ながら標準では無いですな。 必要なら作るしかない。 ちなみにMicrosoft Parallel Extensions to .NET Framework 3.5の中にも internalメソッドでZipWithが入ってる。 標準で入れてくれてばいいのに。
687 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 14:32:58 ] Haskell を馬鹿にするわけじゃないけど、 zip with って名前が何だかださくない?
688 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:05:04 ] WriteLineみたいな英単語の先頭ごとに大文字にするクラス名・メソッド名の記法はなんていうの? ハンガリアン記法で調べてかかったページを見ても書いてないんだけど。
689 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:22:11 ] >名前付けのガイドライン
690 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:34:52 ] >>688 CamelCaseと言います。 ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9 JIS X 3015だと「らくだ形式」って訳されてますな。
691 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:37:15 ] 違わないか?w
692 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:45:17 ] "名前付けのガイドライン"でググってMSDNで確認した、後に >690のリンクに飛んだら、吹いた。 MSとWikiPediaならどっちもどっちだけど、 書いてる奴マジやる気ないんだな。
693 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:46:53 ] 「Pascal 形式」じゃねーの? 少なくともハンガリアン記法は関係ない
694 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 15:52:32 ] ハンガリアンはMS自らによって完全否定されました
695 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:02:38 ] >>693 「Pascal 形式」であってるよ。 ttp://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%A1%E3%83%AB%E3%82%B1%E3%83%BC%E3%82%B9 > >アッパーキャメルケース (UCC)、またはパスカルケース(PascalCase) > 複合語の先頭を、大文字で書き始める。 > つづり例:CamelCase > >ローワーキャメルケース (LCC)、または単にキャメルケース > 複合語の先頭を、小文字で書き始める。 > つづり例:camelCase
696 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:13:07 ] 微妙に話が変わるけどReSharper 4.0でCompletion with CamelHumpsが入るっぽいな。 たとえば"SqlBulkCopy"というメソッドを"SBuC"みたいな書き方で補完できるらしい。 ttp://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+EAP+Notes#ReSharper4.0EAPNotes-CompletionwithCamelHumps
697 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:26:38 ] なにそれ気持ち悪い
698 名前:デフォルトの名無しさん mailto:sage [2008/02/16(土) 16:28:12 ] ハンガリアンは誤解された形で広まってしまっただけで、 元々の考えは別に悪い物ではない。
699 名前:デフォルトの名無しさん [2008/02/17(日) 05:08:52 ] 独自の設定ファイルを簡単に読み書きできるクラスってないでしょうか。 また設定ファイルの一部はデータグリッドに表示して編集もしたいです。
700 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 05:22:32 ] 独自のファイルを操作するクラスは独自に作るんじゃないのか?
701 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 09:36:59 ] List<Hoge> listの中身をランダムにソートしたいです。 list.Sort( delegate( Hoge a, Hoge b ) { return rand.Next( -1, 2 ); } ); のように、ランダムに-1〜1が返るようにして実装したつもりなのですが、動かすと Array.Sort が x. CompareTo(x) を呼び出したときに、IComparer または依存する IComparable メソッドは 0 を返しませんでした。 という例外が発生します。 どこが悪いのでしょうか?
702 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 10:24:55 ] 比較関数は推移性とかを満たしていることが前提だからな
703 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:09:15 ] >>699 DataSetとか。 でも、保存するのが単純な値などかによっても善し悪しあるから、 素直に2.0以降は独自クラス作ってシリアライズのが楽。
704 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:10:32 ] >>701 エラーは、自分自身との比較は0を返せって意味だけど、 そもそもソートの比較関数は、例えばA<BでB<Cのとき、A<Cでなければならかなかったはず。 答えがランダムじゃだめだと思う。 一旦別のリストにコピーしてから、 そのリストの添え字をRandom.Nextで生成してAddしていけば?
705 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:40:16 ] >>701 ランダム並べ替えが目的なら、昔からある定番アルゴリズムを使えばよし。 Sortメソッドは、一定のルールに基づいて並べ替えを行うメソッドなので、ランダム並べ替えに使うのは良くない。コードを読む人が混乱する。 static void Shuffle<T>(ref IList<T> list) { Random r = new Random(); for (int i = 1; i < list.Count; i++) { int j = r.Next(list.Count); T tmp = list[ i ]; list[ i ] = list[ j ]; list[ j ] = tmp; } }
706 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:41:43 ] >>701 「i番目の要素をi以上配列の長さ未満のランダムな要素と交換する」をすべてのiについて行えばシャッフルできるはず。 ところで、 Enumの名前とプロパティの名前をできるだけ同じにしたいときがあるんですがどうしてます? ↓こういう場合です。 class MyIO { enum MyIOMode { Syncronized, Asyncronized } public MyIOMode MyIOMode { get; set; } MyIO() { MyIOMode = MyIOMode.Asyncronized; } } System.IO.FileModeみたいに複数のクラスで使われるならenumを名前空間に直接書いてもいいんですが、 そのクラスでしか使わないとなるとクラスの中に書きたいと思うのです。
707 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 11:44:45 ] >>705 ref にする意味ってあるの?
708 名前:705 mailto:sage [2008/02/17(日) 11:48:40 ] すまん。refは不要というか不可だ。
709 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:02:17 ] >>705 for (int i = 1 だとまずくね? Count=1 や 2 なら問題ないけど Count=3 だと リスト先頭だった要素は Shffule 後にも先頭にいる確率が 4/9 になる
710 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:09:57 ] >>706 MSのガイドラインによると,ネストした型を外に見せるのは推奨されない 外に書いていい
711 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:24:01 ] >>710 そんなガイドラインあったっけ? っていうか.NETのライブラリだって普通にネストした型を公開してるよね。 たとえばListViewItemCollectionなんてそのはずだけど
712 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 12:47:31 ] >>711 msdn2.microsoft.com/ja-jp/library/ms229027 (VS.80).aspx コレクション系は例外に当たるみたい(List<T>+Enumeratorとか)
713 名前:712 mailto:sage [2008/02/17(日) 13:00:34 ] 親とデザイン的に強く結び付いてるときは(親のprivateメンバにアクセスするとか) 稀に入れ子の型にすることもあるってことかな 単に親でしか使われないからというだけではなく
714 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:07:51 ] というより当該のガイドラインそのものが合理的根拠がない「俺様ルール」か、 それが言いすぎならせいぜい「村の掟」に過ぎないってことじゃないの?
715 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:19:19 ] それを言うなら名前付けの規則とか 名前空間をあんまり深くしすぎるなとかだって同じだろ 単にMSの好みだから従わなくていいと言ってしまえばそれまで
716 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 13:43:17 ] 変なプログラムの例ならCプログラミング診断室を読むといいよ
717 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:06:20 ] Cプログラミング診断室で昔何度か探し回ったものの書籍紹介しかなくて泣いたのはいい思い出 ちょっと下にスクロールするだけだったと思わなかったのは俺だけかなぁ
718 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:15:49 ] 君だけだろwwwww
719 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:18:56 ] 俺だけか…てかあそこ読む意味をあんま理解してない辺りまだまだですね、すみません
720 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 14:42:17 ] >>717 え?ちょw今知ったwww本借りてきたのにwwwww
721 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:21:58 ] 定数文字列を格納する一番(?)スマートな手段というのはどんなものなのでしょうか? 現状 struct hoge{ const string piyo = "abcde"; const string fuga = "abcde"; const string hogehoge = "abcde"; const string piyopiyo = "abcde"; const string fugafuga = "abcde"; : } といった具合にだーっと書いています、文字列定数の数は50個程度、文字列長は10~300文字程度です 調べれば定数と言えばconstと出てくるのでこれで通していたのですが もっと良い手段があるのではないかと思い質問しました。 それではよろしくお願いします
722 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:24:30 ] >>721 リソースとして埋め込むかテキストファイルにでも書いておいたらいいんでない?
723 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 15:47:36 ] >>721 .NET Frameworkの中では SR.GetString("キー文字列") みたいにしてるよ そういう風にしとくと後で実装変えられて便利
724 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:01:01 ] Icon ico = Properties.Resources.IconFile1; 以上の部分で、以下のようなエラーが出ます エラー CS0103: 名前 'Properties' は現在のコンテキスト内に存在しません。 以前までは正常に動いていたためどこかを変えてしまったせいかとも考えたのですが エラー文から見るにPropertiesが無いといっているように思えます しかし、ソリューションエクスプローラから見るとProperties/Resources/IconFile1はしっかり存在します こういった場合はどういう間違い・おかしな部分が考えられるのでしょうか?
725 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:24:31 ] >>724 開発しているのにまずエラーコードやエラーメッセージでググらずに2chに書き込んでる部分かな
726 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:30:00 ] >>725 なにを根拠に言っているか笑えてきますが既に検索済みです。
727 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 16:30:34 ] ああゆう断定形はネタだよ、ガチで言っちゃってるやつはすぐふぁびょるから見もの
728 名前:デフォルトの名無しさん mailto:sage [2008/02/17(日) 17:22:34 ] バルーンを手動で表示させると、最初だけふきだしの先っぽが違う方向に出るのは何故なんだぜ? ツールチップに関するコードは↓のみなんだけど、回避する方法は無いものか… toolTip1.Active = false; if( textBox1.Text.Length > 5 ){ toolTip1.Active = true; toolTip1.Show( "hoge", textBox1 ) }
729 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 10:30:35 ] ツンデレ
730 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:15:37 ] ArrayListで2つのコレクションがあるんだけど、どちらもPointerなのね この2つのコレクションに含まれてる要素で、重複するものだけを取り出したいんだけど、どうやればいいんでしょ? たとえば、 1つめのコレクションhoge1には、{P1, P2, P3, P6, P7, P8 } 2つめのhoge2には{P2, P7} とあるとき、P2とP7だけ取り出したいんです foreach( Point p in hoge2) { if( hoge1.Contain(p)) { point.add(p) } } とやったら、if分のところで、比較ができないというエラーが出マスタ 今回、ジェネリックは使わないので、ArrayListでお願いしますm(__)m
731 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 12:58:58 ] 日本語でおkっていうか。 Pointer って何? そういうクラスってことでいいの? だとしたらポインタとごっちゃになるろくでもない名前だけど。 比較ができないってエラーメッセージはググった限り .NET のエラーメッセージには存在しないようだけど?
732 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 13:49:25 ] >>731 スマソ Point型と間違えたわ 2つのコレクションは、どちらもPoint型変数が入ってるのよ
733 名前:730 mailto:sage [2008/02/18(月) 14:10:04 ] もっと調べたら、ObjectとPointが比較できないとか、明示的なキャストが必要です、とか出てきマスタ。
734 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:03:21 ] .NET Framework 2.0かそれ以下かでArrayList.Containsの挙動が違うらしいが。 1.xならContains使わずにループでunboxingして比較するしかないんじゃない?
735 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 17:30:49 ] ArrayList はジェネリックじゃないから、Contain() の引数は Object 型でないとダメだぞ。 Add() する時にもちゃんと Point から Object にキャストしてるんでしょ?
736 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:24:08 ] どうもありがとう >>734 ソースコードはC#1.0のときに書かれたものですが、.今はNET2.0で使ってます >>735 Add()するときはObjectにして加えてます。 なるほどそうか。 Contein()の引数を、Point型のままにしてますた。 Object型にキャストしてから引数に使えばいいんだ・・・。 やってみます。 どうもありがとうございます。 しかし、受け継いだソースがC#1.0向けに書かれたソースなので、 ArrayListを全部ジェネリックに書き換えるのが手間だと思っていたけど、 結局書き換えた方が後々楽な気がしてきた・・・orz
737 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:07:39 ] >>736 アップキャストしてどうすんだよ ポリモルフィズムを理解してないんじゃねーの?
738 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:21:04 ] >>735
739 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:52:22 ] ぽまいら、変数とかの命名でプレフィックスとかつけてまつか?
740 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:59:30 ] 必死になっていい単語思いつかないときに時々使う
741 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 21:59:33 ] どっちでもいいけどクラス外から見えるメンバにプレフィックス付けたら死刑
742 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:03:04 ] クラス外から見えるメンバって静的メンバ定数のことか? それ以外にまさかないよね?
743 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:08:24 ] アクセス制御とstaticかどうかは関係ないだろ publicフィールドはゆるさーんて言いたいだけ?
744 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:13:52 ] public フィールドなんてキチガイしか書かんだろ。 構造体ならともかく。
745 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:16:27 ] メンバって言ってるんだからC#の世界ならパブリックメソッドとプロパティとイベントでしょ。 個人的にはいまだに型名にプリフィクスつけるよ。 少数派なのは認識してるが、やっぱり構造体、クラス、列挙体がぱっと見ただけで 区別つく方が好都合な場面が多い。 特にクラスのつもりで構造体扱っちゃうような「致命的な凡ミス」を防げる蓋然性があがるし。
746 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:18:40 ] オレはC#の場合はプロトタイプや使い捨てのプログラムでは書く 命名規則はプロパティと同様にしておいて、 class Hoge{ public int Foo; } 必要になったら class Hoge{ private int foo; public int Foo{ get{return foo;} set{foo=value;} } } あまりオススメはしない
747 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:38:37 ] プレフィックスつけるってそもそも設計ミスじゃない? つーかVBer以外で使う人いるの? 結構人見てきたけどVBerだけだったよ。
748 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:42:24 ] まあ関連するプロジェクトが全て自分の管理下にあるならリネームなんて一発だしな。 リフレクションで型名とかメソッド名が文字列に埋め込まれてると痛いが。
749 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:50:45 ] >>736 私は、キャストが手間という理由でジェネリック使いまくり。 違う型のリストが複数あるとき、インテリセンスで要素の型が判別できるのが特に嬉しい。 >>737 ArrayList はポリもーフィズムとアップ・ダウンキャストを前提に使うものなのでは。 初心者用スレだし、一応ツッコミ。
750 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 22:52:14 ] メソッドやプロパティのほとんどを日本語にしているから プレフィックスがないと入力が不便。
751 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:21:15 ] プレフィックスが教えてくれるのは変数の型だけだぜ!! って誰かが言ってたな。
752 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:29:43 ] 前に見た糞プロジェクトで、フィールドに普通に名前つけて プロパティ名が全部p_なんちゃらとかなってて思わずワロタよ
753 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 23:30:03 ] .NET Frameworkのクラスライブラリのソースコードのメンバ変数はプリフィックスだらけ
754 名前:デフォルトの名無しさん [2008/02/18(月) 23:55:21 ] >>753 privateなフィールドなら好きにすればいいが、public メンバにやったら殺す
755 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:04:58 ] >>751 元々のハンガリアンは変数の型をプレフィックスにするんじゃないぜ!! って、Joelが言っている。 local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B
756 名前:デフォルトの名無しさん [2008/02/19(火) 00:16:12 ] >>744 publicなフィールドってやっぱだめ? set getでフィールド渡すだけだと、いちいちプロパティの宣言するのが面倒くさくて ついついやっちまうんだけど。
757 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:19:24 ] C#3.0の自動プロパティで駆逐されると信じたい public int MyProperty { get; set } これだけ
758 名前:デフォルトの名無しさん [2008/02/19(火) 00:20:31 ] 重い処理を行うプログラムがあり、BackgroundWorkerを使ってるんですが、 画面への出力にはDoWorkからフォーム操作を行おうとすると「あるスレッドで作成された コントロールに対して、別のスレッドのコントロールを親にすることはできません。」と出ます。 それは分かるんですが、フォームへの描画自体に時間がかかる場合、その処理自体を バックグラウンドで行うにはどうやれば良いのでしょうか。
759 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:21:22 ] バッファに書き込んどけ
760 名前:758 [2008/02/19(火) 00:43:11 ] 説明が抜けてましたが、実際は子ウィンドウから処理を実行し、親ウィンドウに 複数のウィンドウ(タブ)を追加するといった処理をしたいです。(タブを追加する処理が重い) バッファに書き込む方法はSetStyle()だと思うんですが、どうも親ウィンドウのフォームでは SetStyle()が指定できないようでした。。
761 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 00:55:36 ] Bitmapに描いとくってことだろ
762 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:38:40 ] プレフィックスつけてるひと、けっこういるのね 型名とかコントール名とか、どうやって省略したらいいか困るときがある int int_x=0; string str_name = "taro"; textbox tbx_input = new textbox(); みたいな感じで頭に三文字略称をつけろとかいう つまんないローカルルールが社内で流行ってて しかも人によって略称が違うときがあって逆に混乱するという ちゃんと取り決めしてないのにプレフィックスつけろって… プレフィックス一覧とかあると助かるんだけど、いいのが ない
763 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:54:45 ] ないと思うけどlong int_x = 0;
764 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:55:16 ] var int_x = 0;
765 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 01:55:18 ] コントロールはわからないでもないけど その他の型名を付けることに関しては全く無意味だと思う
766 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:23:59 ] VS2005でSocket通信を行っているのですが、LANケーブルを抜かれた等の経路切断の検出方法に困っています。 調べたところ、TCP KeepAliveを使えば出来そうな気配なのですが、C#用の資料が全然見つかりません。 資料もしくはサンプルのポインタを教えてください。 私が調べたかぎりでは ttp://vsug.jp/tabid/63/forumid/45/threadid/8051/scope/posts/Default.aspx がかなり近いケースで、ほぼ要求事項は同じです。(違いは私はクライアント側になります) たしかにこのSetSocketOptionを設定しても、検出はできませんでした。 // KeepAliveの設定 _tcpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.KeepAlive, 30000); レス3番目の方法はどこにどう実装していいものやらわからず、またどうやって検出するのかもわからない状況です。 必要あればサンプルも貼ります。
767 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:32:52 ] >>766 TCPに任せちゃうんじゃなくて,自分でソケットをラップした通信ライブラリを作ってそこでACKみたいなのをやりとりすれば 直ぐ確認できるはず
768 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 03:45:01 ] >>757 それをプロパティにするとなんかメリットあるの? いつもpublicフィールドにしちゃうけど
769 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 08:23:15 ] >>762 型名っていうかクラスと構造体とenum(とそれぞれのインスタンス)を 区別するためだけ、なんだけどね 要はクラスならcを頭につけるとかそういうやつ
770 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 09:37:26 ] 描画をバックグラウンドって、 描画からみの処理自体を細切れにしてやるしかないな。
771 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 09:41:50 ] >>768 あとで実装変えられる
772 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 09:51:58 ] >>771 あーやっぱめんどくさいからpublicフィールドで十分かな(´・ω・`)
773 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 09:53:02 ] propコードスニペット使えよ
774 名前:デフォルトの名無しさん [2008/02/19(火) 11:14:22 ] プロパティーを使っておくと、リフレクションを使ったライブラリやコードを組むときに便利だよ C#3.0から導入される匿名型は自動的にプロパティーとして実装される事もあるし、とりあえず以下の例を見てもらえれば解る。 Button と DataGridView コントロールをフォームに置く。 以下のコードを実行する、C#は日本語でもコードできるのでそのままいけます、DataGridViewのタイトルに注目、プロパティーの名前がそのまま出る。 class 行の定義 { public int 行番号 { get; set; } public string 内容 { get; set; } } ボタンのイベントに対して 行の定義[] データテーブル = new 行の定義[] { new 行の定義() { 行番号 = 1 , 内容 = "ABC" } , new 行の定義() { 行番号 = 2 , 内容 = "DEF" } , new 行の定義() { 行番号 = 3 , 内容 = "GHI" } , }; dataGridView1.DataSource = データテーブル;
775 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 11:16:41 ] >>774 それぐらいだともはやこれでいい気がするけどな。 dataGridView1.DataSource = new [] { new { 行番号 = 1 , 内容 = "ABC" } , new { 行番号 = 2 , 内容 = "DEF" } , new { 行番号 = 3 , 内容 = "GHI" } , };
776 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 11:25:40 ] 2008は、発売されてまだ日が経っていないので、まだ知らない人いるかなと思ってそう書いたんですが・・・ とふと気付くとプロパティーを省略形にしていたorz C#3.0では、get; set; と書くと、自動的に中身が作られます。
777 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 11:39:29 ] ああ駄目だ、配列の初期化までC#3.0になっているorz もう戻れないな……
778 名前:766 mailto:sage [2008/02/19(火) 11:54:56 ] >>767 御返事ありがとうございます。 > TCPに任せちゃうんじゃなくて,自分でソケットをラップした通信ライブラリを作ってそこでACKみたいなのをやりとりすれば > 直ぐ確認できるはず 自分でそこまでできるスキルがありませんorz サンプルがあれば頑張って追いかけてみるんですが素で書くのは無理そうです。。。 サーバ側が自分でいじれればアプリ側でチェックかけるのですが、サーバ側は担当外なので変更不可です。。。
779 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 12:48:55 ] となるとネットワークインタフェイスと会話する必要がありそうだね こっちは門外漢なのでヒントだけおいておきますね support.microsoft.com/kb/239924/ja
780 名前:766 mailto:sage [2008/02/19(火) 13:38:53 ] >>779 ヒントありがとうございます。レジストリいじるですか。。。ちょっと気が引けますけど試してみます。
781 名前:デフォルトの名無しさん [2008/02/19(火) 15:11:44 ] >>776 おおお、そうなのか! 2008のpropスニペットで{get;set;}としか入らないから なんじゃこりゃ…と思っていたところ。
782 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:25:50 ] VS2005(C#2.0)です。 インスタンスを文字列で生成するには Activator.CreateInstance(Type.GetType("クラス名")); で生成するのは判ったんですが、"クラス名"が存在しているかどうか(生成可能かどうか)を 事前に判断するにはどうしたらいいでしょうか? データを読んでいって、専用の派生クラスがあればそれで、 無ければ汎用の基底クラスで生成しようと思ってるんです。 ご教示よろしくお願いします。
783 名前:782 mailto:sage [2008/02/19(火) 15:37:05 ] あ、GetTypeしたときにnullかどうか、 もしくはCreateInstanceして例外をキャッチすればいいのか。
784 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:44:07 ] >>746 よくPGの人は、HogeとかHogehogeとかFooとかって書いてるけど、なんでへんてこりんな単語を使うの? ホゲ、ホゲホゲ、ホゲ、フーーー!とかってカタカナで書くと、ぬこが喧嘩してるのかと思う
785 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 15:48:04 ] >>760 最初からタブを用意しておいてHideにしておき、必要が出たらVisibleにするのはどうなの?
786 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 16:27:27 ] すいません質問です。 列挙型の変数でToString使用しようとすると、『使用しないでください』、といったポップアップの説明が出ます。 代替としてSystem.Enum.Parseを使えと言ってますが、 現在の値の文字列を取得したいので、GetNameのような気がしますがどうでしょうか?
787 名前:デフォルトの名無しさん mailto:age [2008/02/19(火) 17:07:01 ] すいません、質問です。 複数条件を確認する場合のif文の書き方について教えてください。 こんな感じで書きたいのですが、C#の場合はエラーとなってしまいます。 C#ではどのように書いたらよいのでしょうか。 if((a=="")or(b="")){ }else{ } いくつか検索をしてみたのですが、かっこのなかの条件が一つの場合の 例しかヒットしませんでしたのでここで質問をしてみました。 どうぞよろしくお願いします。
788 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:08:31 ] >>787 ||
789 名前:デフォルトの名無しさん mailto:age [2008/02/19(火) 17:12:09 ] >>788 ありがとうございました。
790 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 17:46:22 ] >>784 ja.wikipedia.org/wiki/Hoge
791 名前:デフォルトの名無しさん [2008/02/19(火) 18:27:11 ] 2008ってVistaから搭載されてるガジェット作れるようになった?
792 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 18:48:46 ] >>784 メタ変数ってやつだよ
793 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 19:23:06 ] >>790 日産フーガって・・・メタ構文変数だったのか
794 名前:デフォルトの名無しさん [2008/02/19(火) 21:27:36 ] 質問です。DBにA列とB列があり A B ---------- 1 日本 1 東京 1 大阪 2 アメリカ 2 ニューヨーク 3 中国 3 北京 のような形で格納されています。 これをGridに表示させる際に 1 日本 東京 大阪 2 アメリカ ニューヨーク 3 中国 北京 といった形で出力したいのですが、どのようにコードを組んだらいいのか 悩んでおります。 何か良い方法などありますでしょうか?
795 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:32:27 ] while(Aカラムが存在するまで): Aカラムに該当するレコードを配列に格納 while(配列が存在するまで): 配列からBカラムを抽出 end end
796 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:36:28 ] >>794 こんな感じ? var table = new[]{ new { A = 1, B = "日本" }, new { A = 1, B = "東京" }, new { A = 1, B = "大阪" }, new { A = 2, B = "アメリカ" }, new { A = 2, B = "ニューヨーク" }, new { A = 3, B = "中国" }, new { A = 3, B = "北京" } }; var q = from x in table group x.B by x.A; foreach (var x in q) { Console.Write(x.Key); foreach (var y in x) Console.Write("\t{0}", y); Console.Write("\n"); }
797 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:43:16 ] データの持ち方を間違ってる。 テーブル構造を見直すか、アプリ側で処理する。
798 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 21:56:55 ] テーブル構造を指摘する人って・・・
799 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:05:52 ] RDBの場合レコードの並びは保証されてないから国名をどうやって判定するのよ 前ブランクのあるなしかい?
800 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:11:11 ] 国コード 国名 地域名 1 日本 東京 普通こんな感じにしないか
801 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:12:44 ] まあ、それ言い出したら >>800 のテーブルも正規化されてないでしょ。 そこはスルーでいいんじゃないかと。
802 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:23:58 ] >>800 気持ちはわかるが、国コードと国名が冗長な気がする
803 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:40:35 ] つか日本なら普通、国コードは81だろ
804 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 22:43:17 ] +81
805 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:38:27 ] 42にすれば全て解決
806 名前:デフォルトの名無しさん mailto:sage [2008/02/19(火) 23:40:24 ] むしろカラム一枚で 81<>jp<>tokyo みたいにすれば最強。 で、レコード一枚でケツに繋げていくの。
807 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 09:59:09 ] .NET Frameworkのバージョンが異なるアセンブリ間で StringやImage等のオブジェクトをやりとりするのは問題ないのでしょうか?
808 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 14:43:16 ] 意味ワカンネ
809 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 14:45:03 ] 具体的にどういう状態?
810 名前:807 mailto:sage [2008/02/20(水) 15:05:03 ] // .NET Framework2.0で作ったアプリ System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom(他の人が.NET Framework3.5で作ったDLL); Hoge hoge = (Hoge)asm.CreateInstance(DLLが公開しているクラス名); string str = hoge.Name; Image img = hoge.GetImage(); と、違うバージョンで作られたStringやImageを使っても大丈夫なのかなと。
811 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 15:08:38 ] そもそも同一プロセスに異なるバージョンのCLRはロードできないんじゃなかったっけ。 リモート使った場合は余計にシラネ。
812 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 15:14:47 ] 2.0-3.5はCLRが同じバージョンだから問題ないはず。 2.0/3.0にSP1を当てておけばより確実だと思う。
813 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:34:41 ] >>797-802 分類基準は一番最初の数値じゃないのかな? 昔のコボラーさんたちが良く使うで、国番号でソートしておいて、国番号が変わったところで切り出すという常套手段。 C#でやるなら 796 だね、これなら番号がソートできないデータ型でもいける、データ構造を変えるなら二重テーブル、XMLを取り扱う気分で。
814 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 19:40:18 ] C#2.0での質問ですが、 ジェネリックのコレクションにadd()メソッドで加えたデータを、データグリッドに表示させる方法を教えてください
815 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 20:33:08 ] >>813 そういうレベルの話じゃなくてRDBの行に順序なんてない(ORDER BY でも同順位内は不定)ので「初めに返ってくる」とか「一番上」とかは 不定。意味ないから同じ順で返ってくること多いが毎回ランダムで返って 来ても正しい動作。 つーわけで質問のテーブルだと格納する情報が足りないので不可能が 答えになってしまい >>797 みたいな答えしかできないと
816 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:13:08 ] >>814 追加するデータのメンバーはフィールド?、それともプロパティー? 表示されるのはパブリックなプロパティーのみだよ 774 を参考にしてみて。 それでも解らなかったら詳細をどうぞ。 >>815 回答する側で勝手に必要条件やしてませんか? ……わかんないけど
817 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 21:25:50 ] >>810 なんかこわいっすね、一旦シリアライザでシリアライズしてから渡したほうが無難そうな予感がする。 バイナリフォーマッタ辺りでやれば大きくパフォーマンスも落ちないだろうし、自分ならそっち方面を狙いたいですね。 もし使うなら、こいつです System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
818 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:24:12 ] >>817 怖いって…… 実行エンジンのバージョンとコンパイルされたアセンブリのバージョンと ごっちゃにするなよ つーかBinayFormatterこそめちゃくちゃバージョン依存だろう xmlの方がまし
819 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 00:42:08 ] じゃあbyte[]やchar[]に変換したら
820 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 01:21:14 ] >>818 おぃおぃ(^^;
821 名前:814 [2008/02/21(木) 01:40:00 ] >>816 C#2.0で、クラスを class 行の定義 { int _行番号 string _内容 public int 行番号 { get{ return _行番号;} set{ _行番号 = value;} } public string 内容 { get{ return _内容;} set{ _内容 = value; } } とした場合、C#2.0で、行の定義クラスを配列として使う方法が分かりません。 この方法(クラスのインスタンスを配列として使う方法と、その場合の初期化)を教えてください 行の定義[] データテーブル = new 行の定義[](); としてもエラーが出てしまうし、 行の定義[] データテーブル = new 行の定義(); としてもエラーが出てしまいます
822 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 01:49:06 ] >>821 横やりだけど、()がいらない 行の定義[] データテーブル = new 行の定義[]; 初期化をいれるなら 行の定義[] データテーブル = new 行の定義[] { new 行の定義( 初期化内容 ) , new 行の定義( 初期化内容 ) , ... }; "new 行の定義"でコンストラクタでメンバを初期化する機能は2.0には無いので、引数付きコンストラクタを作っておく必要がある。
823 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 07:08:39 ] 行の定義[] データテーブル = new 行の定義[要素数];
824 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 13:34:30 ] 話を通じさせる為にも3.0に移行がお勧めだな、VS2008はなぜかVS2005より軽量と出来が良いので買い替え時としては悪くないし
825 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 14:24:46 ] でもお客に.Net3.5Frameworkを入れさせないといけないでしょ。OSも未だにXP止まりだし。 2.0でさえやっと普及した段階なのに、作りやすいからという理由だけで3.5を入れさせるわけにもいかず・・・。
826 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 14:32:05 ] 見積もり作り直してみたら? その分時間かかるけどな!!
827 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 14:38:42 ] >>825 じゃあしょうがないね。 ちなみにXPでも動く .Net3.5Framework はウインドウズアップデートでどうぞ。 客にやらせてもこの程度なら差し支えないかと、面倒ならインストーラーにぶち込んでもいいと思うけど。 これもClickOnceを使っているなら、意識する必要ないかもね。 インストーラーは開発前に吟味しておくとこういう時にいい結果を生むので手抜きはしないように。
828 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 15:13:05 ] >>825 C# 3.0/.NET Framework 3.0/3.5を使うかどうかは別として、 VS 2008は.NET Framework 2.0用のアプリケーションも書ける。
829 名前:デフォルトの名無しさん [2008/02/21(木) 16:25:33 ] Form1の上にForm2を表示しようとしています。 private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { form2.Show(this); } とすれば、一応表示されるのですが タスクバーにForm2のアイコンが表示されるのです。 アイコン表示しなくするにはどうすればいいのでしょうか?
830 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 16:27:20 ] Form のメンバ一覧をじっくり眺めてみるんだ
831 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 16:30:01 ] >>830 ShowIconってあるじゃないっすか ありがとうございます
832 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 19:08:36 ] >>821 配列版は出ているので、ジェネリックのコレクション版で System.Collections.Generic.List 版でも作っておきます。 class 行の定義 { int f1; string f2; public int 行番号 { get { return f1; } set { f1 = value; } } public string 内容 { get { return f2; } set { f2 = value; } } public 行の定義(int a1, string a2) { 行番号 = a1; 内容 = a2; } } 実行するコード System.Collections.Generic.List<行の定義> table = new List<行の定義>(); table.Add(new 行の定義(1, "ABC")); table.Add(new 行の定義(2, "DEF")); table.Add(new 行の定義(3, "GHI")); dataGridView1.DataSource = table; これなら2.0でも大丈夫……だと思う
833 名前:814 mailto:sage [2008/02/21(木) 19:43:48 ] >>822 >>832 ありがとうございます。勉強になります >>832 のコードを試してみたところ、2.0でそのまま動きました。 配列よりジェネリックのコレクションの方が勝手がいいので、すごい参考になります。
834 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 19:51:19 ] >>833 という事は、追加削除もしたいと? ならDataSourceにtableを直接セットせずにBindingSourceでアダプタをかましてからセットすると追加なども可能になるよ、参考までに。
835 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 00:18:56 ] 基底クラスのコンストラクタを呼び出すときに,派生クラスのコンストラクタの引数をそのまま渡さずに ちょっと処理をしてその結果を渡したいんだけど,一つの式で書けるなら メソッド呼び出しも含めて実質何でもできると考えていいの?
836 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 01:04:07 ] メソッド呼び出しは出来る メソッド呼び出せばなんでも出来る
837 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:09:27 ] 画像を分割するのってどうやれば良いんだ? パズル的なのを作りたいんだが…
838 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:19:45 ] Bitmap作ってGraphics.DrawImage
839 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 13:25:29 ] DrawImageか、dクス
840 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:12:22 ] ColorをXmlSerializerからデシリアライズしたいです。 とりあえずひな形を作るためにシリアライズしたのですが、<PackedValue>4278848010</PackedValue> というものが吐かれていました。 RGB+αとPackedValueの相互変換ができれば解決すると思うのですが、 ググってもよく分かりませんでした。 相互変換のやり方を教えていただけると助かります。 よろしくお願いいたします。
841 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:17:33 ] FromArgbだろどうせ
842 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:46:35 ] >>841 RGB=10,10,10のColorをデシリアライズして出てきたPackedValueが 4278848010で、 同じColorをToArgbして表示してみると、-16119286だったんですが…
843 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:50:26 ] つFF0A0A0A = 4278848010
844 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:52:20 ] 各整数型の値域は把握しとくといいぜ
845 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 14:55:07 ] 16進数も分かってないバカがプログラム書くな
846 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:03:54 ] ここ初心者用。
847 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:11:58 ] 初心者用はC#という意味だろw
848 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:13:20 ] つか、なんでARGBはint扱いなんだと思う。 取り扱いが面倒くさすぎ。 Color.FromArgb(0xFF0a0a0a)とか書けないから、いちいち Color.FromArgb(0x0a, 0x0a, 0x0a)って書いてる。 Cの書き方に慣れてないから知らないだけなのかな。 ひょっとしてもっといい書き方あるんですか?
849 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:14:52 ] unchecked((int)0xXXXXXXXX)) うん余計面倒だな
850 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:17:16 ] >>848 intの方が楽でええがな ビット演算子だけで扱えるし
851 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 15:17:48 ] uintはCLSに準拠しないからとかなんとか
852 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:44:03 ] >>847 このスレではいじめ禁止
853 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:50:04 ] >>848 WinAPIがそういう仕様だから、互換の関係しょうがないだろうと思う 最近HDR(輝度レンジの大きいRGB表現)が登場してRGBが浮動小数点表現になってきつつあるので、どこかの段階で作り変える必要はあるかもしれない。
854 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:50:55 ] 静的型チェックがしっかりしていて,なおかつ実務で使える機能がお多くて,さらにとっつきやすくて,その上曲がりなりにもネイティブで実行される これだけ長所があるのに何を今更
855 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 17:54:57 ] >>853 848の不満はAPIとは関係ないよ uintじゃ無いのが面倒ってだけだから それにAPIとの互換を重視するならABGRじゃないと駄目だし 今更GDI+拡張するとも思えん WPFならすでに各色floatで表現できる
856 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 20:34:21 ] 今はxvYCCとか色々あるからなぁ
857 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 21:19:36 ] 標準はRGBの方がいいよ、その他は特種扱いで プログラムがややこしくなりすぎリる
858 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:32:56 ] タブページへの描画について質問です(検索してもうまく答えが見つからないのでキーワードだけでもいいです) private TabControl tabControl1; private TabPage tabPage1; private TabPage tabPage2; 以上のように宣言をし、定義しています。 tabPage1にはリストビューを使ってデータの一覧を表示しており、うまくいっています (このようにして→this.tabPage1.Controls.Add(this.listView1);) tabPage2には円グラフを描きたいのですがうまく行きません。 Graphics g = tabPage2.CreateGraphics(); g.DrawLine(new Pen(Color.AliceBlue), 30, 30, 100, 100); まずは上記のようにして線を引いてみようと思ったのですが失敗してしまいます。 どういった方法があるのでしょうか?
859 名前:デフォルトの名無しさん mailto:sage [2008/02/23(土) 23:56:34 ] クラスライブラリのプロジェクトを作り、プロジェクトのプロパティから 署名→アセンブリの署名にチェック→キーファイルを新規作成(パスワード保護無し)してkeyfile.snkを作成 として署名しました。 このクラスライブラリの公開キートークンを知りたいのですが、IDE上から調べる方法はあるのでしょうか? VC#2008Expressです。
860 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 01:05:16 ] >>858 どこでDrawLineを呼んでるのかと どのように失敗してるのかがよく分からないんだけど 多分、tabpage2のOnPaint()をoerrideするか、Paintイベントで書くかしてないんじゃないの? 例えば tabPage2.Paint += new PaintEventHandler(tabPage2_Paint); void tabPage2_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; g.DrawArc(Pens.Black, 10, 10, 100, 100, 0, 90); }
861 名前:デフォルトの名無しさん [2008/02/24(日) 04:12:20 ] linqとかほとんど誰も使わないような構文を言語に組み込むくせに 何で正規表現リテラルが言語仕様に無いんだよ。 この言語設計者ってアホなの?
862 名前:デフォルトの名無しさん [2008/02/24(日) 05:59:55 ] Connector/NETの5.0だとパラメータのプレースホルダとしての接頭辞に「?」しか使えなかったけど 5.2にしてみたら「@」も使えるっぽくなっているんですが 一時変数として「@」を使っていたところまでプレースホルダと判定されちゃってエラーに;; この対処法をご存知の方いませんでしょうか?
863 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:22:28 ] >>861 俺はバリバリ使ってるが・・・
864 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 06:34:11 ] スクリプト言語ではないから、正規表現をライブラリに投げるのは正しいと思う
865 名前:デフォルトの名無しさん [2008/02/24(日) 06:54:19 ] C#つかうより断然Bccのほうがいいだろ 過去のソースも使えるし ドットNetなしで動くし あと開発環境が重すぎ
866 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 07:01:57 ] BCCがいいのは認める だけど.NET使ったら戻れないな
867 名前:デフォルトの名無しさん [2008/02/24(日) 07:08:46 ] C#は、デルファイ言語、ボーランドC++のパクリだろ それにC++言語の方が有名
868 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 07:53:47 ] 有名(笑)
869 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 08:52:44 ] >>867 それを作ってた開発者が C#を開発したんじゃなかったっけ
870 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 09:09:15 ] 定期的にその話題でてくるなぁ。 Anders Hejlsbergね。 元ボーランド社員のDelphi開発者。 現MS Technical Fellow。C#開発者で、.NET Frameworkの設計にも深く関わってる。
871 名前:デフォルトの名無しさん [2008/02/24(日) 10:06:22 ] .NET Remotingを使ってメッセージ通知をしあうプログラムを書いているのですが、 サーバーとなっている方の親クラスに通知する方法が思いつきません。 下記のようにやってみたのですが、これだと呼出毎にインスタンスが出来てしまって イベントの意味がなくなってしまいます・・・ なにか良い方法はないでしょうか? // server class MsgServer : MarshalByRefObject { public event EventHandler CallRecv = null; public string Recv(string message) { if (CallRecv != null) CallRecv(this, new EventArgs()); }
872 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 10:34:48 ] 俺の場合は、知らせたいクラスのオブジェクトはひとつしか作らなかったから staticでインスタンスを持っておいて、それにアクセスした。
873 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:06:06 ] >>861 stringの拡張メソッドにMatchでもつけてみたらどうだ
874 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 18:09:40 ] LINQで正規表現を組み立てられないかな
875 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 21:19:02 ] 「デルファイ言語」
876 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:32:24 ] むしろ正規表現はExpressionTreeに組み込める気がする 今の実装はどうなってるんだろうね
877 名前:デフォルトの名無しさん mailto:sage [2008/02/24(日) 23:46:27 ] >>876 正規表現のコンパイルオプション次第で、LCG使ってIL出力して高速化できた気がする。 あの部分のソースコードも公開されたのかな。後で見てみるか。
878 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:22:54 ] 質問です。 HttpRequestHeaderで既に定義されている環境変数(User-Agentなど)を HttpWebRequest.Headersに直接指定したいのですが、 --- このヘッダーは、適切なプロパティを使用して変更しなければなりません。 パラメータ名: name --- このようなエラーが出てしまって出来ない状況です。 WebClientでは可能なのですが、HttpWebRequestのほうが細かいことができる感じなので どうにかして指定する方法はないものでしょうか? 具体的にはtextBoxにベタ書きしてある複数行のリクエストヘッダを直接指定しようとしています。 どうかご教示お願い致します。
879 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 00:34:32 ] 諦めれ
880 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:25:15 ] Web認証してログインするクライアントソフトを作っているのですが、 HttpWebResponseで返されたHTMLに含まれているボタンを押すには どうすればいいでしょうか? 具体的にはHTMLソース上で <input type="submit" name="login" value="ログイン" accesskey="s" /> と書かれているボタンオブジェクトです。 よろしくお願いいたします。
881 名前:デフォルトの名無しさん [2008/02/25(月) 01:30:49 ] >>880 <input type="submit" name="login" value="ログイン" accesskey="s" /> を包んでる<form …>タグはどうなってるの? そこに書いてあるmethodによって、actionに書いてあるURLへのデータの送り方が変わってくる。 「HTML フォーム cgi」とかで検索するともっと詳しく分かるかもね。
882 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 01:33:06 ] >>881 ありがとうございます <form action="xxxxxxxxx/index.php " method="post" style="margin-bottom:0px;"> と書いてあるのでPostメソッドでしょうか?
883 名前:デフォルトの名無しさん [2008/02/25(月) 01:37:19 ] @IT:.NET TIPS WebRequest/WebResponseクラスでPOSTメソッドによりデータを送信するには? - C# VB.NET www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.html
884 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:23:42 ] なんでこういう所に出すのにusingすら使わないんかねぇ・・・
885 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:44:19 ] >>883 それでやってみましたが、もとのログイン画面に戻ってきてしまいますね・・・ 念のため、fiddlerでブラウザが送信しているPOSTメッセージをキャッチして 比較してみたのですが、同じものを送ってるんですが・・・・ Windowsアプリのように、Clickイベントを送ることはできないのでしょうか?
886 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 02:55:50 ] 普通にHTTP POSTで送れると思うのだが。
887 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 03:09:27 ] すみません 送信文字列に「&」が含まれていたようで、 それを個別に%26に変えないといけないようでした お騒がせしました ありがとうございました
888 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:27:06 ] フォームの上に表示される青いバー(最大化ボタンとかあるやつ)を 消すにはどうすればいいでしょうか?
889 名前:デフォルトの名無しさん mailto:sage [2008/02/25(月) 10:29:51 ] FormBorderStyle.Noneにするとか ControlBoxとTextをなくすとか Regionでクライアント領域だけにするとか