ふらっとC#,C♯,C#(初心者用) Part24
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/02/03(日) 17:44:27「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
ふらっとC#,C♯,C#(初心者用) Part23
http://pc11.2ch.net/test/read.cgi/tech/1200033660/
0002デフォルトの名無しさん
2008/02/03(日) 18:07:09http://pc11.2ch.net/test/read.cgi/tech/1194956418/
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
http://pc11.2ch.net/test/read.cgi/tech/1162950198/
Windows Live プログラミング
http://pc11.2ch.net/test/read.cgi/tech/1188112572/
初心者のためのプログラミング言語ガイド Part6
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
0003デフォルトの名無しさん
2008/02/04(月) 12:47:32一行にするにはどうしたらいいんでしょうか
0004デフォルトの名無しさん
2008/02/04(月) 13:40:250005デフォルトの名無しさん
2008/02/04(月) 14:26:19MSの説明を見たのですが、基底クラスを引数に取れる利点がよくわかりません
0006デフォルトの名無しさん
2008/02/04(月) 15:22:03イベントハンドラを一つにまとめられる、じゃ不満か
0007デフォルトの名無しさん
2008/02/04(月) 15:23:38デリゲートの話なのか
0008デフォルトの名無しさん
2008/02/04(月) 15:26:34そうですデリゲートの話です
一般的な説明じゃ何使うのかさっぱりで
0009デフォルトの名無しさん
2008/02/04(月) 15:28:32複数の関数入れて例外が起きたら残りは実行されないのかな
今サンプル動かそうとしてるけど俺あほすぎて時間がかかってる orz
0010デフォルトの名無しさん
2008/02/04(月) 15:48:14似たようなデリゲート型をたくさん宣言しなくならなくちゃ
ならないような状況になれば分かるかと
>>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" );
}
0011デフォルトの名無しさん
2008/02/04(月) 15:59:03covarianceなら、登録できるメソッドが増えるから分かるんですが、
contravarianceは減ってしまいますよね?
だからわからないんです
0012デフォルトの名無しさん
2008/02/04(月) 15:59:06ありがと!やってみた
例外出たら止まるんか、超わかったw
感謝します
0013デフォルトの名無しさん
2008/02/04(月) 16:15:05どっちも増える
0014デフォルトの名無しさん
2008/02/04(月) 16:22:28基底クラスのほうを渡せてもあんまり意味ないと思うのでよく分からないんです
よろしければ具体的な例を教えてください
0015デフォルトの名無しさん
2008/02/04(月) 16:35:16event 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
0016デフォルトの名無しさん
2008/02/04(月) 16:42:49あ、よくわからずイベントハンドラの追加とか書いてましたがなんとなくぴんときた
buttonクラス内にはevent EventHandler Click;みたいにきっとあるんだなあ
0017デフォルトの名無しさん
2008/02/04(月) 16:45:43Click += Hoge2; これはコンパイルエラー
これなんでまずいんですか?
文法的に許しちゃいけない理由が見あたらないんですが・・・
0018デフォルトの名無しさん
2008/02/04(月) 18:11:45>>10の例だと
M1();
M2();
M3();
って書くのがそんなにめんどくさいの?
って言いたくなるんだが
もっと、こう、デリゲードじゃないとそれは無理だね
みたいに納得できる例はないだろうか?
0019デフォルトの名無しさん
2008/02/04(月) 18:14:120020デフォルトの名無しさん
2008/02/04(月) 18:25:57識者の人はやくきてくれー><
0021デフォルトの名無しさん
2008/02/04(月) 18:28:02あちこちのフォームで好き勝手に登録できる
0022デフォルトの名無しさん
2008/02/04(月) 18:42:50引数eにMouseEventArgs型のオブジェクトが渡される保証がない
(EventArgs以下ならなんでも入れられる可能性がある)
>>18 イベントにイベントハンドラを複数登録できるようにするため
>>21 それきちんと後片付けしないとメモリリークするよ
0023デフォルトの名無しさん
2008/02/04(月) 18:45:31>イベントにイベントハンドラを複数登録できるようにするため
順番って登録した順番に依存するんじゃないの?
アーキテクチャ的にまずくね?
0024デフォルトの名無しさん
2008/02/04(月) 18:49:03メインのオブジェクトがあって、
サブのオブジェクトたちがそれぞれイベント付けたりできるじゃん
親アプリにプラグインがたくさんある場面とか。
親は一発ですべての登録されたイベントを発行できる
ちなみに
dlg -= M1;
みたいにそれぞれ取り外しもできるし
dlg = null;
でクリアもできる
0025デフォルトの名無しさん
2008/02/04(月) 18:50:02そうね。むしろ順番に依存するようなのをデリゲートで書くべきじゃない
0026デフォルトの名無しさん
2008/02/04(月) 18:51:240027デフォルトの名無しさん
2008/02/04(月) 18:52:04勉強足りなすぎです。
0028デフォルトの名無しさん
2008/02/04(月) 18:55:18だまれ小僧
0029デフォルトの名無しさん
2008/02/04(月) 18:55:48関数を引数にとって、関数内で任意の処理ができるんだから同じじゃないの?
0030デフォルトの名無しさん
2008/02/04(月) 18:56:12>>1読めカス
0031デフォルトの名無しさん
2008/02/04(月) 18:56:47何がまずいの?w
いやもちろんまずい場面もありうるだろうが、そんなのむしろ例外的じゃないの?
っていうかC#ってVBのカスタムイベントみたいなことって出来ないんだっけ?
0032デフォルトの名無しさん
2008/02/04(月) 18:57:310033デフォルトの名無しさん
2008/02/04(月) 19:00:42ごめんそういうことがいいたかった
0034デフォルトの名無しさん
2008/02/04(月) 19:07:30addとremoveは定義できるよ
raiseはない
0035デフォルトの名無しさん
2008/02/04(月) 19:14:20ならハンドラを呼び出す順番もその気になれば一応制御できるんだよね?
0036デフォルトの名無しさん
2008/02/04(月) 19:15:49結果的に>>1が投げた質問で盛り上がってる俺ら
0037デフォルトの名無しさん
2008/02/04(月) 19:20:08デリゲートオブジェクトは呼び出し対象の情報しか持ってないのに何を基準に並べ替えるの?
0038デフォルトの名無しさん
2008/02/04(月) 19:24:37俺も具体的な用途があまりあるとは思ってないんだけど、抽象的な可能性の話だよ。
例えば標準のFIFO動作をLIFOに変更するとかさ。
0039デフォルトの名無しさん
2008/02/04(月) 19:49:51誰かcontravarianceの使い方を教えてくだしぁ><
0040デフォルトの名無しさん
2008/02/04(月) 19:52:410041デフォルトの名無しさん
2008/02/04(月) 19:53:19ここそういうスレじゃないから
0042デフォルトの名無しさん
2008/02/04(月) 20:09:03くだ質スマンセン
0043デフォルトの名無しさん
2008/02/04(月) 20:13:35作られるのはintとかプリミティブ型だけ
0044デフォルトの名無しさん
2008/02/04(月) 20:28:480045デフォルトの名無しさん
2008/02/04(月) 20:31:17値型の中でも言語に組み込みのものをいう
0046デフォルトの名無しさん
2008/02/04(月) 20:31:220047デフォルトの名無しさん
2008/02/04(月) 20:31:360048デフォルトの名無しさん
2008/02/04(月) 20:39:59004942
2008/02/04(月) 20:40:33参照型の場合・・・変数宣言した瞬間にスタック上に参照情報が生成され、初期値としてnullが入る。
ということですよね?
実は手元の入門書で↓のような例文で、
int hoge
hoge = 123;
object obj;
obj = (object)hoge;
「object obj; で、変数objのインスタンスをヒープ上に生成し、参照情報をスタック上に格納」
とあって混乱したのですが、間違いってことでしょうか?
0050デフォルトの名無しさん
2008/02/04(月) 20:43:11>変数objのインスタンスをヒープ上に生成
うんここはまちがいだな
参考までになんて本?
0051デフォルトの名無しさん
2008/02/04(月) 20:46:38全く同じ
言語仕様でも同じと明記されてる
0052デフォルトの名無しさん
2008/02/04(月) 21:02:05ちがうよ。
0053デフォルトの名無しさん
2008/02/04(月) 21:06:030054デフォルトの名無しさん
2008/02/04(月) 21:06:05コンソールアプリケーションでデフォルトプリンタを取る方法って
普通のc#上には無いんでしょうか?
調べてみると、APIで取る方法とWSHで取る方法がありそうだけど
WSHはデフォルトプリンタを取得するサンプルが見当たらないし、
APIだとどうも負け組みかなって思っちまいます。
005542
2008/02/04(月) 21:10:22やっぱりそうですか・・・。
本は↓です。
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
0056デフォルトの名無しさん
2008/02/04(月) 21:20:320057デフォルトの名無しさん
2008/02/04(月) 21:22:37とりあえずうっちゃっておいても問題ない、というよりそんなの後回しに
すべきだと思うよ。
0058デフォルトの名無しさん
2008/02/04(月) 22:09:24C++とごっちゃになってるようにも読み取れるな
0059デフォルトの名無しさん
2008/02/04(月) 22:15:18そのライター結構いっぱい本書いてるけどやばい記述多いのかな
0060デフォルトの名無しさん
2008/02/04(月) 22:16:54入らないよ。
0061デフォルトの名無しさん
2008/02/04(月) 22:21:39006242
2008/02/04(月) 22:34:56とりあえず今は置いといて、本を読み進めようと思います。
0063デフォルトの名無しさん
2008/02/04(月) 22:41:55006442
2008/02/04(月) 22:58:38というか、当たり前か・・・
0065デフォルトの名無しさん
2008/02/04(月) 23:01:01if(debug){cout<<"24回"<<endl;
}
return true;
上の分の->これっていったいなにをしているんでしょう
また、if文カッコ内debugの中の変数は0か1かではなく、True Falseでも判定かのうなのでしょうか?
よろしくお願いします
0066デフォルトの名無しさん
2008/02/04(月) 23:05:01知ってる人います?
0067デフォルトの名無しさん
2008/02/04(月) 23:11:25っていうか俺あの著者の本を好む人が理解できん。
あの人低水準のこと = 基本だと思ってないか?w
っていうかどうでもいい無駄話が多すぎ。
0068デフォルトの名無しさん
2008/02/04(月) 23:13:05そうなの?
かなり分かりやすく書いてあるから、重宝してるんだが
ありがとう、著者にメール送ってみる!
0069デフォルトの名無しさん
2008/02/04(月) 23:14:41文体がお堅いっていうのはあるけどお浚いする為にはああゆうのが便利だと思ってる
入門は柔らかい文体の本一冊+Webで、くらいで
0070デフォルトの名無しさん
2008/02/04(月) 23:38:46俺は宣言するだけじゃメモリ確保すらされないと理解してるんだが。
だって、一度も代入してないのをいきなり使おうとすると
>未割り当てのローカル変数 'name' が使用されました。
って出るじゃん
0071デフォルトの名無しさん
2008/02/04(月) 23:45:49自分でコツコツ読むには何でも書いてあるいい本だよね
007265
2008/02/04(月) 23:51:020073デフォルトの名無しさん
2008/02/05(火) 00:01:030074デフォルトの名無しさん
2008/02/05(火) 00:05:59ポインタ演算子じゃないの?
0075デフォルトの名無しさん
2008/02/05(火) 00:14:140076デフォルトの名無しさん
2008/02/05(火) 00:14:390077デフォルトの名無しさん
2008/02/05(火) 00:21:42>って出るじゃん
英語のメッセージは
Use of unassigned local variable 'name'
なんだぜ?
allocateじゃなくてasign
0078デフォルトの名無しさん
2008/02/05(火) 00:29:570079デフォルトの名無しさん
2008/02/05(火) 00:35:38http://dobon.net/vb/dotnet/graphics/defaultprinter.html
これは調査済み?
0080デフォルトの名無しさん
2008/02/05(火) 00:43:11実際のコードに使ってる人なんているの?
0081デフォルトの名無しさん
2008/02/05(火) 00:44:400082デフォルトの名無しさん
2008/02/05(火) 00:45:00Cでポインタが難しいと言ってるのと変わらない。
0083デフォルトの名無しさん
2008/02/05(火) 00:46:37デリゲートとかクロージャがなくて困るケースってあります?
0084デフォルトの名無しさん
2008/02/05(火) 00:48:350085デフォルトの名無しさん
2008/02/05(火) 00:49:330086デフォルトの名無しさん
2008/02/05(火) 00:49:380087デフォルトの名無しさん
2008/02/05(火) 00:50:24ポインタと違って無くても困らない程度のもんだと思ってたんだが
0088デフォルトの名無しさん
2008/02/05(火) 00:52:020089デフォルトの名無しさん
2008/02/05(火) 00:53:22親のMDIフォームにToolStripContainerをDockStyle.Fillで張り付けた場合、
MDIの子ウィンドウが表示されなくなりますが、
これを表示させるようにするための解決法はございますでしょうか?
Excel2003のようなアプリを目指しています。
0090デフォルトの名無しさん
2008/02/05(火) 00:56:020091デフォルトの名無しさん
2008/02/05(火) 01:09:050092デフォルトの名無しさん
2008/02/05(火) 01:13:310093デフォルトの名無しさん
2008/02/05(火) 01:13:540094デフォルトの名無しさん
2008/02/05(火) 01:13:570095デフォルトの名無しさん
2008/02/05(火) 01:25:00何か難しそうだけどやってみるよ!!ありがと!
0096デフォルトの名無しさん
2008/02/05(火) 01:58:080097デフォルトの名無しさん
2008/02/05(火) 02:08:080098デフォルトの名無しさん
2008/02/05(火) 02:50:200099デフォルトの名無しさん
2008/02/05(火) 07:58:300100デフォルトの名無しさん
2008/02/05(火) 08:18:510101デフォルトの名無しさん
2008/02/05(火) 08:21:390102デフォルトの名無しさん
2008/02/05(火) 08:23:050103デフォルトの名無しさん
2008/02/05(火) 08:24:120104デフォルトの名無しさん
2008/02/05(火) 08:25:100105デフォルトの名無しさん
2008/02/05(火) 08:34:320106デフォルトの名無しさん
2008/02/05(火) 08:47:130107デフォルトの名無しさん
2008/02/05(火) 08:52:120108デフォルトの名無しさん
2008/02/05(火) 09:51:18遅くなってすません。
もう見てたんですが
もう一度見直したらしっかり使えるじゃまいですかw
ということでおかげさまで解決しました。
0109デフォルトの名無しさん
2008/02/05(火) 10:33:510110デフォルトの名無しさん
2008/02/05(火) 10:39:290111デフォルトの名無しさん
2008/02/05(火) 11:25:08以前作ったときは、n次元を1次元に無理矢理マッピングして
コーディングしたんだけど、
エレガントさに賭けていたので
0112デフォルトの名無しさん
2008/02/05(火) 11:38:260113デフォルトの名無しさん
2008/02/05(火) 11:39:37コードを見てみたいところだ
0114デフォルトの名無しさん
2008/02/05(火) 11:40:540115デフォルトの名無しさん
2008/02/05(火) 13:36:450116デフォルトの名無しさん
2008/02/05(火) 14:31:18匿名メソッドはクロージャではないと聞いたのですが
どこが違うのでしょうか?
0117デフォルトの名無しさん
2008/02/05(火) 15:03:470118デフォルトの名無しさん
2008/02/05(火) 15:13:38クロージャで正解。
クロージャの考え方はいろいろあってとくに手続き型の言語ではバリエーションが広い。
自分の使ってる言語と動作が違うからC#のは真のクロージャではないという議論が、
しばらくなされたことがあって、そのときに
>匿名メソッドはクロージャではない
という話が出回ったことがある。
0119デフォルトの名無しさん
2008/02/05(火) 15:17:28>>118
ありがとうございます
メソッド内で匿名メソッドを宣言したときに、
親メソッドの変数を参照できないとクロージャではないみたいな話を聞いたもので
クロージャ自体方言みたいなもので
明確な定義がないんですかね?
0120デフォルトの名無しさん
2008/02/05(火) 15:21:260121デフォルトの名無しさん
2008/02/05(火) 15:30:11どっかに分かりやすい解説ない?
0122デフォルトの名無しさん
2008/02/05(火) 16:52:260123デフォルトの名無しさん
2008/02/05(火) 17:08:47http://dobon.net/vb/dotnet/control/tstoolstrippanel.html
0124デフォルトの名無しさん
2008/02/05(火) 18:13:36動的スコープて何?
0125デフォルトの名無しさん
2008/02/05(火) 18:18:490126デフォルトの名無しさん
2008/02/05(火) 19:02:51動的スコープのクロージャはマクロみたいなものでC#ではありえない。
コードにするとこんな感じ。
var f = DFUNC(a) { return a + b; } // この時点で b は存在しない。
void A() {
var b = 2;
f(3); // 6が戻る。
}
void B() {
f(3); // b がないので実行時エラー
}
0127デフォルトの名無しさん
2008/02/05(火) 19:06:58なるほどなー
それはわかりやすい
0128デフォルトの名無しさん
2008/02/05(火) 19:07:360129デフォルトの名無しさん
2008/02/05(火) 20:56:31みんなルール決めて変な事にならないようにしてるの?
javaみたいに言語仕様で縛らないのは何か意味があるのかな。
0130デフォルトの名無しさん
2008/02/05(火) 20:58:450131デフォルトの名無しさん
2008/02/05(火) 21:05:480132デフォルトの名無しさん
2008/02/05(火) 21:10:560133129
2008/02/05(火) 21:12:36んー、C#が変だとは思ってないんだが、クラス名の衝突を防いだりするためなんだから、ファイルもディレクトリ作ってぶつからないようにするんでないの?
0134デフォルトの名無しさん
2008/02/05(火) 21:17:57今まで違和感無かったか?俺はあったぞ。
0135デフォルトの名無しさん
2008/02/05(火) 21:25:05論理的な構成と物理的な構成が同じじゃなきゃいけないってのは原始的な感じがする
0136129
2008/02/05(火) 21:40:50javaだとパッケージのルールだけ決めるだけだったから、C#には暗黙のルールでもあるのかな?って思ったんだ。
C#を悪く言ってるつもりはないんだけど、そう聞こえてたらごめん。
0137デフォルトの名無しさん
2008/02/05(火) 21:43:060138デフォルトの名無しさん
2008/02/05(火) 21:43:150139デフォルトの名無しさん
2008/02/05(火) 21:43:150140デフォルトの名無しさん
2008/02/05(火) 21:43:550141デフォルトの名無しさん
2008/02/05(火) 21:44:30非ジェネリックのクラスを使う事ってある?
俺にはあんまり目的が思いつかんなー
0142デフォルトの名無しさん
2008/02/05(火) 21:46:270143デフォルトの名無しさん
2008/02/05(火) 21:48:260144デフォルトの名無しさん
2008/02/05(火) 21:51:260145デフォルトの名無しさん
2008/02/05(火) 21:52:17Webにはどうなんかなーと
0146デフォルトの名無しさん
2008/02/05(火) 21:52:260147デフォルトの名無しさん
2008/02/05(火) 21:53:270148デフォルトの名無しさん
2008/02/05(火) 21:54:190149デフォルトの名無しさん
2008/02/05(火) 21:59:14Webだからどうこうって意味不明だろ。
0150デフォルトの名無しさん
2008/02/05(火) 22:13:27しかもジェネリックが搭載されたのを知らないやつは
まだ余裕で使ってるぜ?
1.1縛りな開発とかだと知っててもジェネリック使えないしな
List<T>に慣れるとArrayListには戻れんな
0151デフォルトの名無しさん
2008/02/05(火) 22:20:05C#はじめたばっかりの俺
ぐぐってみる
0152デフォルトの名無しさん
2008/02/05(火) 22:20:270153デフォルトの名無しさん
2008/02/05(火) 22:24:210154デフォルトの名無しさん
2008/02/05(火) 22:26:210155デフォルトの名無しさん
2008/02/05(火) 22:37:17WPFのソフトウェアレンダリングコードはGDI+からだいぶ流用したらしい。
社内的にはとってかわってるのかもね。
0156デフォルトの名無しさん
2008/02/05(火) 22:41:29何か理由があって使ってるの?
0157デフォルトの名無しさん
2008/02/05(火) 22:43:290158デフォルトの名無しさん
2008/02/05(火) 22:43:35HashTableならいいのに
0159デフォルトの名無しさん
2008/02/05(火) 22:45:030160デフォルトの名無しさん
2008/02/05(火) 22:45:280161デフォルトの名無しさん
2008/02/05(火) 22:47:13using System;とかありますがああゆうの全部.NETのクラスライブラリだとかなんですか?
そこら辺のことが書いてあるサイトとかないでしょうか
0162デフォルトの名無しさん
2008/02/05(火) 22:49:27無理
自分で1からコンパイラ作れば可能だけどさ
0163デフォルトの名無しさん
2008/02/05(火) 22:49:50マルチスレッド絡み、やや微妙な制約はあるけどね。
ほんとはjavaのConcurrentHashMapだったかみたいな
専用のがあるといいんだけど。
0164デフォルトの名無しさん
2008/02/05(火) 22:50:17mono
0165デフォルトの名無しさん
2008/02/05(火) 22:51:17コンパイラ作るだけじゃダメ
CLIを実装しないと
Silverlightは.NETじゃないといえば.NETじゃないかも
0166デフォルトの名無しさん
2008/02/05(火) 22:53:24C#をネイティブコードにするコンパイラがあればいいんだろ。
別にILしなければならない理由はない。
0167デフォルトの名無しさん
2008/02/05(火) 22:54:580168デフォルトの名無しさん
2008/02/05(火) 22:55:00その環境は .NET ではないと言えるのだろうか。
0169デフォルトの名無しさん
2008/02/05(火) 22:55:01でも言語仕様に記載されてるBCL(標準クラスライブラリ)は全部実装する必要がある
0170デフォルトの名無しさん
2008/02/05(火) 22:55:37MSDNのページがさっぱり理解できないんですが、ある程度使えるようになったら読めてくるもんなのでしょうか?
0171デフォルトの名無しさん
2008/02/05(火) 22:58:43英語版読め
0172デフォルトの名無しさん
2008/02/05(火) 22:59:320173デフォルトの名無しさん
2008/02/05(火) 22:59:34カンでさがしてサンプルコード張って動かしてみるのが正しい使いかた
理解するんじゃない感じるんだ
0174デフォルトの名無しさん
2008/02/05(火) 22:59:42C#の言語仕様についての説明のページはVB.NETと違って初心者向けに書かれてないから結構難しい
0175デフォルトの名無しさん
2008/02/05(火) 23:00:110176161
2008/02/05(火) 23:00:460177デフォルトの名無しさん
2008/02/05(火) 23:01:400178デフォルトの名無しさん
2008/02/05(火) 23:01:44.NETを使うために作られた言語だから
0179デフォルトの名無しさん
2008/02/05(火) 23:01:45だったら MS が色んなプラットフォームで処理系作りやがれと。
0180デフォルトの名無しさん
2008/02/05(火) 23:02:450181デフォルトの名無しさん
2008/02/05(火) 23:03:270182デフォルトの名無しさん
2008/02/05(火) 23:03:51フレームワーク使う言語としては正しいけどね・・・
0183デフォルトの名無しさん
2008/02/05(火) 23:04:12馬鹿?
0184デフォルトの名無しさん
2008/02/05(火) 23:04:170185デフォルトの名無しさん
2008/02/05(火) 23:04:540186デフォルトの名無しさん
2008/02/05(火) 23:05:26そこは突っ込みどころと違う
0187デフォルトの名無しさん
2008/02/05(火) 23:06:24バカはお前だろ
0188デフォルトの名無しさん
2008/02/05(火) 23:06:35ネイティブコードを吐けるようにして普及を図ったところで意味がない
0189デフォルトの名無しさん
2008/02/05(火) 23:07:04処理系作るの面倒だし・・・。
0190デフォルトの名無しさん
2008/02/05(火) 23:07:040191デフォルトの名無しさん
2008/02/05(火) 23:08:17いきなりネイティブコード吐くとリフレクションやLCGと相性悪そうだがその辺考えてみた?
0192170
2008/02/05(火) 23:08:26ググる時も、大抵先頭にくるMSDNはなるべく避けて、@ITとかのサイトに逃げてます・・・
機械翻訳ぽいのがどうにも
0193デフォルトの名無しさん
2008/02/05(火) 23:08:32何が古いんだ?具体的にどうぞ。
0194デフォルトの名無しさん
2008/02/05(火) 23:10:18>>192
俺がMSDN渡り歩けるようになったのはプログラミング歴5年目くらいです
非常に遅いな
0195デフォルトの名無しさん
2008/02/05(火) 23:10:320196デフォルトの名無しさん
2008/02/05(火) 23:12:17基本的にMSDNはリファレンス。辞書。
分からないときに引くものであって、教科書じゃない。
MSDN2になって翻訳は随分まともになったと思うが。
0197デフォルトの名無しさん
2008/02/05(火) 23:13:07@ITは正しい選択
0198デフォルトの名無しさん
2008/02/05(火) 23:13:540199デフォルトの名無しさん
2008/02/05(火) 23:14:040200デフォルトの名無しさん
2008/02/05(火) 23:17:310201デフォルトの名無しさん
2008/02/05(火) 23:18:130202デフォルトの名無しさん
2008/02/05(火) 23:19:460203デフォルトの名無しさん
2008/02/05(火) 23:20:180204デフォルトの名無しさん
2008/02/05(火) 23:24:270205デフォルトの名無しさん
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[]に型を変えただけだと思っているのですが、何が違うのでしょうか。
0206デフォルトの名無しさん
2008/02/05(火) 23:58:49int[]の[,]なんだから逆
int[,][]
0207デフォルトの名無しさん
2008/02/06(水) 00:00:10配列初期化子ってわかる?
0208デフォルトの名無しさん
2008/02/06(水) 00:01:33お前は分かってるのかよ。わかってるなら書け。
0209デフォルトの名無しさん
2008/02/06(水) 00:01:51そんな大げさな間違いじゃない
0210デフォルトの名無しさん
2008/02/06(水) 00:03:03ほんとだ…
ありがとうございます。
0211デフォルトの名無しさん
2008/02/06(水) 00:21:43いろんなプラットフォームありますよ。
x86, x64, IA-64
.NET Compact Framewrok
.NET Micro Framework
どれもWindows上というのはご愛敬w。
後は申し訳程度にSSCLIがFreeBSD対応だった気がする。
0212デフォルトの名無しさん
2008/02/06(水) 00:23:00MSも支援してるし
0213デフォルトの名無しさん
2008/02/06(水) 00:25:520214デフォルトの名無しさん
2008/02/06(水) 00:26:23メンバ変数って言いたくなる
0215デフォルトの名無しさん
2008/02/06(水) 00:46:59「あらゆるWindows」ってなにがあるの?
0216デフォルトの名無しさん
2008/02/06(水) 00:48:400217デフォルトの名無しさん
2008/02/06(水) 00:49:29だから.NETなくて良いって条件さえあればVistaは知らないけどいけるかな
0218デフォルトの名無しさん
2008/02/06(水) 00:49:500219デフォルトの名無しさん
2008/02/06(水) 00:50:300220デフォルトの名無しさん
2008/02/06(水) 01:13:060221デフォルトの名無しさん
2008/02/06(水) 01:14:330222デフォルトの名無しさん
2008/02/06(水) 01:24:51{
いろいろ処理
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文字程度なら前者のがいいのかなぁと考えてます
0223デフォルトの名無しさん
2008/02/06(水) 01:26:39後者でいいよ、むしろなんで前者選ぼうと思ったの?
0224デフォルトの名無しさん
2008/02/06(水) 01:27:31/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\
. | (__ノ ̄ |
\ /
\ _ノ
/´ `\
| |
| |
0226デフォルトの名無しさん
2008/02/06(水) 01:29:080227222
2008/02/06(水) 01:31:120228デフォルトの名無しさん
2008/02/06(水) 01:31:220229222
2008/02/06(水) 01:36:42値を設定されたstring型です
0230デフォルトの名無しさん
2008/02/06(水) 01:43:15なんかやばいかどうかは使いどころ
たとえば,参照渡しだと副作用完了点が関数内部まで拡大する可能性がある.
2*n*val_func(n) ≠2*n*ref_func(n)
かもしれない
0231デフォルトの名無しさん
2008/02/06(水) 01:48:55static 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は,呼び出し元でコピーした変数を値渡しして,戻ってきたら本物に上書き」みたいなことやってたみたい.
0232222
2008/02/06(水) 01:53:51>>230
それだと非常にやばいです、それとあまり差がないんですか、ありがとうございます
どの道わからなければ安全そうな値渡しにしようと思ってたのでこれでいってみます
ありがとうございました
0233デフォルトの名無しさん
2008/02/06(水) 02:05:190234デフォルトの名無しさん
2008/02/06(水) 02:07:22値型は値渡し
0235デフォルトの名無しさん
2008/02/06(水) 02:07:530236デフォルトの名無しさん
2008/02/06(水) 02:09:550237デフォルトの名無しさん
2008/02/06(水) 07:28:13stringの代入はコピーではなくポインタを代入してるだけ
0238デフォルトの名無しさん
2008/02/06(水) 07:40:12stringを渡すときrefつけるのとつけないので結果が変わる場合があるのはわかってる?
0239デフォルトの名無しさん
2008/02/06(水) 08:23:49参照型を値で渡すのと参照渡しは違うよ。
揚げ足取りじゃなくて全然違う。
0240デフォルトの名無しさん
2008/02/06(水) 09:26:560241デフォルトの名無しさん
2008/02/06(水) 09:59:580242デフォルトの名無しさん
2008/02/06(水) 10:34:020243デフォルトの名無しさん
2008/02/06(水) 11:03:23呼び出し元で作成したインスタンスを操作するなら、インスタンスの参照を渡せばいいから、refはいらない。
引数をメソッド内で変更したい場合、Stringみたいに操作する度に新しいインスタンスが生成されるタイプのクラスは前者。StringBuilderみたいに新たなインスタンスを生成せずに操作できるタイプのは後者。
0244デフォルトの名無しさん
2008/02/06(水) 11:16:06徹夜明けだからもう寝るわ。
0245デフォルトの名無しさん
2008/02/06(水) 14:51:23using 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
0246デフォルトの名無しさん
2008/02/06(水) 15:00:130247デフォルトの名無しさん
2008/02/06(水) 15:06:43まぁ,C風に覚えてもかまわないと思われ
0248デフォルトの名無しさん
2008/02/06(水) 15:16:11どう違うの?
出力結果を見ると違わないんだけど。
アホにも分かるように教えてくれ。
0249デフォルトの名無しさん
2008/02/06(水) 15:22:19>>246 ではないが NotChangeValue の後が違うかと。
0250デフォルトの名無しさん
2008/02/06(水) 15:29:56関数内で引数を書き換えなきゃ変わらんだろ
0251デフォルトの名無しさん
2008/02/06(水) 15:48:50ChangePtrとNotChangePtrに名前を変更して読んでちょうだい。
上記二つのメソッドは参照の参照を変更しようとしているから、
参照渡しをしないNotChangePtrの方は当然参照が変更されない
EditValueというメソッドは、参照型を値渡しで受け取り、それのインスタンスメソッドによって
インスタンス自身が変化する。
こういう認識でいいんだよね?
0252デフォルトの名無しさん
2008/02/06(水) 15:51:24意味分からん。
コードで書くとどういうこと?
0253デフォルトの名無しさん
2008/02/06(水) 15:52:24初心者過ぎて笑われそうだが…
Form1,2で
1に設置しているRadiobuttonをCheckすることで
2に値の変化を与えたい。
わかりにくい説明ではあるが誰か教えてくださいな^ω^
0254デフォルトの名無しさん
2008/02/06(水) 15:53:18コンパイルして走らせてみた?
出力結果は間違いないよ?
0255デフォルトの名無しさん
2008/02/06(水) 15:53:45C#の基礎というかプログラミングの基礎のページ見て来い
0256デフォルトの名無しさん
2008/02/06(水) 15:55:22"デリゲート"でググれ
0257デフォルトの名無しさん
2008/02/06(水) 15:59:35>>245
>>248
>>251
>>254
全部同一人物です。
以後コテハン245になるとしよう。
0258デフォルトの名無しさん
2008/02/06(水) 16:00:24static 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 = "低能";
}
0259坊
2008/02/06(水) 16:03:500260坊
2008/02/06(水) 16:05:29>>253
ですww
困ったらまたきますんでw
0262デフォルトの名無しさん
2008/02/06(水) 16:06:01そんなレベルの話してたのか?
0263262
2008/02/06(水) 16:07:050264デフォルトの名無しさん
2008/02/06(水) 16:08:55だからそうやって引数を書き換えなきゃ同じだろ
0265デフォルトの名無しさん
2008/02/06(水) 16:11:19彼らは参照渡しは知ってても使い方を知らないんだろう
0266デフォルトの名無しさん
2008/02/06(水) 16:13:000267デフォルトの名無しさん
2008/02/06(水) 16:14:53まあ凡そ。
それを大前提に進んでた話なんだけど>>258が爆発した
0268デフォルトの名無しさん
2008/02/06(水) 16:16:080269デフォルトの名無しさん
2008/02/06(水) 16:27:430270デフォルトの名無しさん
2008/02/06(水) 16:32:29余計な副作用を与えないために
0271デフォルトの名無しさん
2008/02/06(水) 18:05:58というか、むしろそのほうが分かりやすいような気が
「参照情報」なんて回りくどい言い方せずに、「アドレス」って言ったほうがイメージが伝わりやすいような
0272デフォルトの名無しさん
2008/02/06(水) 18:36:51根本に返って冷静に考えてみ。
アドレスの方が本来間接的な表現な上に間違ってるでしょ。
参照をもし言い換えるのなら、俺なら「位置情報」と言うな。
0273デフォルトの名無しさん
2008/02/06(水) 18:37:580274デフォルトの名無しさん
2008/02/06(水) 18:38:52機械翻訳で訳される2単語が実用される英語だとでも思ってんのかね
0275デフォルトの名無しさん
2008/02/06(水) 18:40:47厳密な意味ではいろいろあるだろうけど、初心者にとっては直感的にはアドレスが一番しっくりくると思うが
0276デフォルトの名無しさん
2008/02/06(水) 18:41:260277デフォルトの名無しさん
2008/02/06(水) 18:43:29住所にすら略されないが?
0278275
2008/02/06(水) 18:44:59○日本人の初心者
まぁ瑣末事だけどw
0279デフォルトの名無しさん
2008/02/06(水) 18:51:16言葉にはそれぞれ意味上のふり幅ってものがあるんだよ。
特に英語のような多義的な言葉を文脈によって使い分ける傾向が高い言語ではね。
"address"は多義的過ぎる上に、コンピュータの世界では別の抽象レベルで
既に別の意味で使われているから望ましくない。
もっと意味のふり幅が少ない言い方を工夫すべき。
……ここまで補足しないとわからないかねえしかし。。
0280デフォルトの名無しさん
2008/02/06(水) 18:53:190281デフォルトの名無しさん
2008/02/06(水) 19:00:55system.comnfigurationクラスの使い方がよくわかりません。
どっか良いサンプルないですか?
MSDN読んでもいまいちよくわかりません。
0282デフォルトの名無しさん
2008/02/06(水) 19:34:250283デフォルトの名無しさん
2008/02/06(水) 21:00:590284デフォルトの名無しさん
2008/02/06(水) 21:27:31>>281
BinaryFormatterとかでは駄目なの?
0285デフォルトの名無しさん
2008/02/06(水) 22:37:14これはC#のrefやoutとは違うものなんでしょうか
0286デフォルトの名無しさん
2008/02/06(水) 22:41:380287デフォルトの名無しさん
2008/02/06(水) 22:41:57refは[In][Out]相当。
[In]単独は、アンマネージとの相互運用で使うことがある。
0288デフォルトの名無しさん
2008/02/06(水) 22:45:500289デフォルトの名無しさん
2008/02/06(水) 22:47:46参考になるようなHPとか本あったら教えてください
0290デフォルトの名無しさん
2008/02/06(水) 22:48:350291デフォルトの名無しさん
2008/02/06(水) 22:48:490292デフォルトの名無しさん
2008/02/06(水) 22:51:14本は知らんが、このあたりのキーワードでMSDNとか
探してみればなんかヒントあるんじゃね。
* COM Interop
* P/Invoke
* C++/CLI
0293デフォルトの名無しさん
2008/02/06(水) 22:54:180294デフォルトの名無しさん
2008/02/06(水) 22:57:05君統合失調の初期症状じゃないのマジで
0295デフォルトの名無しさん
2008/02/06(水) 22:59:48Win32API叩く度に検索して調べるの面倒になってきた
0296デフォルトの名無しさん
2008/02/06(水) 23:00:450297デフォルトの名無しさん
2008/02/06(水) 23:08:54Win32API使うだけなら、P/Invoke.netとかでいいだろ。
0298デフォルトの名無しさん
2008/02/06(水) 23:10:21そうでもない。
0299デフォルトの名無しさん
2008/02/06(水) 23:16:48具体的にkwsk
0300デフォルトの名無しさん
2008/02/06(水) 23:18:40Googleとかだと大丈夫なのですが。
なんででしょうか?
バグってるんでしょうか?
0301デフォルトの名無しさん
2008/02/06(水) 23:20:26それで解決できるはずも無い
まあ確かにWebBrowserは色々胡散臭いが
0302デフォルトの名無しさん
2008/02/06(水) 23:24:520303デフォルトの名無しさん
2008/02/06(水) 23:33:14JavaScript以外にもFlashを使っているサイトを表示した直後も半フリーズ状態になる。
で、結論は「使うな」。
IEコンポーネントで全て置き換えろ
0304デフォルトの名無しさん
2008/02/06(水) 23:46:28public Form1()
{
InitializeComponent();
webBrowser1.Url = new Uri("http://www.yahoo.co.jp");
}
で、原因はWebBrowserは開いたページの内容によっては内部で立ち上がった謎のスレッドが終わらなくなる
直る見込みはない
諦めろ
0305デフォルトの名無しさん
2008/02/06(水) 23:50:33何故ですかね?MSにやる気がないから?
0306デフォルトの名無しさん
2008/02/06(水) 23:55:02WebBrowser Controlが登場して何年経ったと思ってるんだ
海外の方でも2年近く前から話題になっているくらいの問題だぞ
http://www.eggheadcafe.com/aspnet_answers/NETFrameworkNETWindowsForms/Apr2006/post26457510.asp
直るならとっくの昔に直ってる
0307デフォルトの名無しさん
2008/02/07(木) 00:09:08固まらなかったよ
0308デフォルトの名無しさん
2008/02/07(木) 00:29:46VS2005
Win2003R2x64
固まる
0309デフォルトの名無しさん
2008/02/07(木) 00:34:05固まるというか、ウィンドウは閉じてるのにVS2005がデバッグ実行中のままになった
0310デフォルトの名無しさん
2008/02/07(木) 00:42:20XP
VS2008
.NET Framework3.5
固まらない
0311デフォルトの名無しさん
2008/02/07(木) 00:42:25スレッドがバックグラウンドになってないんじゃないか?
0312デフォルトの名無しさん
2008/02/07(木) 00:44:07大昔のVBやDelphiからあったが、
どれもこれもまともに使える代物じゃなかったな。
0313307
2008/02/07(木) 00:44:20XPx64SP2
IE:7.0.5730.11
Flash:9.0.115.0
プラットフォーム:x86
固まらない
0314デフォルトの名無しさん
2008/02/07(木) 00:47:520315デフォルトの名無しさん
2008/02/07(木) 00:48:36Navigateメソッドでもなる?
0316デフォルトの名無しさん
2008/02/07(木) 00:58:16なった
コンソール用のテストコード書いてみたが、こちらも見事に固まる
ちなみに終了シグナルは飛んできて一見終わった様に見えるが、
残骸が残っていて悪さしているようだ
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("http://www.yahoo.co.jp/");
while (_browser.ReadyState != WebBrowserReadyState.Complete) { // 省略 }
_mre.Reset();
}
}
0317デフォルトの名無しさん
2008/02/07(木) 01:02:56海外とか知らねえよバカ
0318デフォルトの名無しさん
2008/02/07(木) 01:29:08http://www2.uploda.org/uporg1237632.zip.html
0319デフォルトの名無しさん
2008/02/07(木) 01:37:030320デフォルトの名無しさん
2008/02/07(木) 01:40:36ちなみにIEのバージョンは?
0321デフォルトの名無しさん
2008/02/07(木) 01:43:14Windows Server 2003R2 x64
IE 6.0.3790.1830 SP1
.NET3.0は入れてない
0322デフォルトの名無しさん
2008/02/07(木) 01:52:31帰るか
0323デフォルトの名無しさん
2008/02/07(木) 02:15:42このエラーでた
意味はわからん
http://msdn2.microsoft.com/ja-jp/library/ms172219.aspx
0324デフォルトの名無しさん
2008/02/07(木) 08:25:57binaryformatterは暗号化していないので解析しようと思えば
すぐできてしまうから、パスワードなんかは保存したくないわけです。
system.security.cryptographyのクラス群で暗号化してから保存すれば
同じことなんですが…。
アプリケーション設定が.net2.0以降すごく使いやすくなっているみたいなので、
そちらで暗号化できるならそっちを使いたいなあと思った次第です。
設定クラスの定義、設定ファイルの読み出し、保存を毎回毎回アプリ作るたびに
実装するのって、エラー処理なんかまで含めて考えると意外と面倒くさいもんで。。
0325デフォルトの名無しさん
2008/02/07(木) 12:58:220326デフォルトの名無しさん
2008/02/07(木) 14:16:27オペレーティング システムのローダー ロックを保持するスレッドでマネージ コードを実行しようとする試みを
検出します。
このような実行は不正であり、デッドロックの発生につながり、DLL がオペレーティング システムのローダーに
よって初期化される前に使用される可能性があります。
0327デフォルトの名無しさん
2008/02/07(木) 15:00:57IEのアドイン全部停止して試してみるとかどう?
0328デフォルトの名無しさん
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のどのメソッドを使えば、インターネット上の画像ファイルの読み込みを一括でおこなえるのでしょうか?
0329デフォルトの名無しさん
2008/02/07(木) 15:20:480330デフォルトの名無しさん
2008/02/07(木) 15:26:48画像みたいなバイナリファイルに使っちゃ駄目。
0331デフォルトの名無しさん
2008/02/07(木) 15:28:07途中で止めるにはどうすればいいですか?
プログラムを強制終了しても、止まらないようなのですが・・・
0332デフォルトの名無しさん
2008/02/07(木) 15:42:42SHFileOperation使えば
0333デフォルトの名無しさん
2008/02/07(木) 15:55:34ダイアログがうざいから
SHFileOperation使いたくなくてFile.Copy()にしたんですが
やっぱり止める方法はないんですかね・・・
FileStreamでnバイトずつ読み込み→書き込み→停止信号監視
とやれば止められそうですが遅くなりそうで
0334デフォルトの名無しさん
2008/02/07(木) 16:19:46変化なし
0335デフォルトの名無しさん
2008/02/07(木) 16:39:19Windows APIのCopyFileExだと
コールバック付きで途中中断もできる。
こっちはだめ?
0336デフォルトの名無しさん
2008/02/07(木) 16:47:50ありがとうございます
そんなのがあるんですか
Win32APIだとVISTAへの対応が心配ですが試してみます
0337デフォルトの名無しさん
2008/02/07(木) 17:18:480338デフォルトの名無しさん
2008/02/07(木) 17:20:09>ファイル単位
そうですかぁ・・・
ファイルコピー/移動中にスキップしたりしたいので
>>333の方法しかないですかね
オーバーヘッド食いそうだなぁ('A`)
0340デフォルトの名無しさん
2008/02/07(木) 17:27:480341デフォルトの名無しさん
2008/02/07(木) 17:37:11http://msdn.microsoft.com/library/ja/jpfileio/html/_win32_CopyFileEx.asp
0342デフォルトの名無しさん
2008/02/07(木) 17:51:440343デフォルトの名無しさん
2008/02/07(木) 18:07:53WebBrowserConstorlは基本的にメッセージポンプが必要。
だたメッセージポンプなしでも特定の条件が重なったときは動作する。
そのコードだと動くほうが例外的。
0344デフォルトの名無しさん
2008/02/07(木) 21:17:54詳しく
0345デフォルトの名無しさん
2008/02/07(木) 22:04:02thread = 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;
}
0346デフォルトの名無しさん
2008/02/07(木) 22:16:18クライアントにパスワード残して「解析しようと思えば」っておかしいだろ・・・
本気でやるなら認証鯖立てるしかないんじゃね?
0347デフォルトの名無しさん
2008/02/07(木) 22:20:22おぅ
動いた
0348デフォルトの名無しさん
2008/02/08(金) 00:07:17ナイス!
ただ、
>>WebBrowserConstorl
これタイプミスしてなければ...
0349デフォルトの名無しさん
2008/02/08(金) 01:03:13ソリューションかプロジェクトの全てのファイルを一括で確認する方法はありませんか?
0350デフォルトの名無しさん
2008/02/08(金) 01:28:45COMのスレッドモデルは死ぬほどややこしいからな〜
0351デフォルトの名無しさん
2008/02/08(金) 01:53:290352デフォルトの名無しさん
2008/02/08(金) 09:04:24確かに暗号化してあってもクライアントにパスワードを残すのはよろしくないですが、
ログイン名だけは記憶できるようにしたいとか、接続先URLも攻撃を避けるために
隠蔽したいとか、どうしてもクライアントに暗号化して残したい情報はあると思ってます。
windows認証(DPAPI)で暗号化して, windowsのパスワードが安全なポリシーに従って
設定されていれば、それなりの安全性は保てると思うんですが、やっぱまずいっすかね。
0353デフォルトの名無しさん
2008/02/08(金) 09:30:500354デフォルトの名無しさん
2008/02/08(金) 11:29:04int[] array
から
List<int> list
に中身をコピーするメソッドって無いですか?
foreach(int i in array){ list.Add(i); }
ってしないと駄目ですか?
0355デフォルトの名無しさん
2008/02/08(金) 11:45:31C#3.0用 array.ToList()
多分中身は>>354
0356デフォルトの名無しさん
2008/02/08(金) 11:46:08// たぶん中身は(ry
0357デフォルトの名無しさん
2008/02/08(金) 11:54:26ありがとうございます。
10分も悩んでしまいました;;;
0358デフォルトの名無しさん
2008/02/08(金) 12:56:50AddRangeって手もあるよ
0359デフォルトの名無しさん
2008/02/08(金) 14:55:57動かなくね?
0360デフォルトの名無しさん
2008/02/08(金) 15:03:37http://a-draw.com/uploader/src/up31487.zip.html
0361359,360
2008/02/08(金) 15:07:43で、Windows XP Pro SP2だと普通に動いた。
が、Windows Server 2003 R2 x64、Windows XP x64だと動かない。
腐ってやがる・・・
0362デフォルトの名無しさん
2008/02/08(金) 15:24:140363デフォルトの名無しさん
2008/02/08(金) 15:25:4464bit環境はないからテストできんなぁ。
64bit環境で32bit指定したexeの場合はどうなの?
0364デフォルトの名無しさん
2008/02/08(金) 15:32:000365デフォルトの名無しさん
2008/02/08(金) 15:32:18TEST押したらdoneが出るだけ?
0366デフォルトの名無しさん
2008/02/08(金) 17:06:01doneダイアログが出た後にフリーズしなければok
問題がある場合はdoneダイアログが出てスレッドは終了しているはずなのに直後にフリーズするはず
あと、俺の環境でも32bitだと問題なし
0367デフォルトの名無しさん
2008/02/08(金) 17:06:57NT5.2x64なんて使ってる奴いるの?
0368デフォルトの名無しさん
2008/02/08(金) 17:07:08ってVS2008ですが。2005でやったほうがいいかな
0369デフォルトの名無しさん
2008/02/08(金) 21:14:420370デフォルトの名無しさん
2008/02/08(金) 21:20:19「再描画すべき所があればWindowsメッセージキューに即割り込んでPaintイベントを発生する」
という理解でいいんでしょうか?
いちおう↓とか読んだのですが、いまいちピンと来ないもので。
ttp://dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
0371デフォルトの名無しさん
2008/02/08(金) 21:35:48訳分からんやつはそも参加しない話
そしてPGなんて略し方(笑)
0372デフォルトの名無しさん
2008/02/08(金) 23:09:26PointFの引数になぜPointを代入できるのは仕様でしょうか?
0373デフォルトの名無しさん
2008/02/08(金) 23:10:370374デフォルトの名無しさん
2008/02/08(金) 23:14:32C言語で書いた関数(メソッド)を使いたいと思っています。
ですが、.Cファイルをコンパイル、リンクする方法がわかりません。
プロジェクトに.cファイルをぶち込むと、テキストファイル?として
認識され、うまくリンクされていません。
VC++だと.Cファイルも使えたのですが、C#ではできないのでしょうか?
.Cファイルをincludeする方法がありましたら、教えてください。
スレ違いでしたら誘導お願いします。
0375デフォルトの名無しさん
2008/02/08(金) 23:15:330376デフォルトの名無しさん
2008/02/08(金) 23:21:380377デフォルトの名無しさん
2008/02/08(金) 23:23:15暗黙の型変換が出来るように演算子がオーバーロードされている。
public static implicit operator PointF(Point p)
0378デフォルトの名無しさん
2008/02/08(金) 23:26:38VC++でC向けのDLLとしてコンパイルしてC#からDllImport
またはC++/CLI
0379デフォルトの名無しさん
2008/02/08(金) 23:37:400380デフォルトの名無しさん
2008/02/08(金) 23:40:200381デフォルトの名無しさん
2008/02/08(金) 23:41:03ほぼOKじゃね
メッセージキューに割り込むってか
WndProcを直接呼ぶ
0382デフォルトの名無しさん
2008/02/08(金) 23:41:30式で検索したら出てきました、ありがとうございました。
ということは内部で構造体を作り直してるのでやりすぎると遅くなりますね。
0383374
2008/02/09(土) 01:33:43簡単には、C#でCのファイルは使えないんですね。
DllImportでの使用か、C#で書き直すか(限りなく大量ですが。)
検討してみます。
VC++でプログラム組んだほうが早い気もするし、困ったもんです。
ありがとうございました。
0384デフォルトの名無しさん
2008/02/09(土) 01:58:47DLLコピーし忘れ事故を一番防止できると思う
プロジェクトに加えておけば勝手にコピーしてくれるし
0385デフォルトの名無しさん
2008/02/09(土) 02:01:17普通にDLL作ってC#から読ませるだけやがね
0386370
2008/02/09(土) 03:35:09"直接呼ぶ"というのはどういう意味ですか?
WndProcは「.NETの外から来るWindowsメッセージを.NETのイベントに置き換えるメソッド」なので
Updateメソッド→Windowsメッセージ(WM_PAINT?)→WndProcメソッド→Paintイベント
という流れなんでしょうか?
あと、Paintイベントを発行するOnPaintメソッドがありますが、これは上記には絡まないんですか??
Paintイベントが発行されるまでの流れが分からなくて混乱しています。。(まだこの辺理解するには早いのかも
質問ばかりですみません。
0387デフォルトの名無しさん
2008/02/09(土) 07:53:57何が流れているの?
データ?処理?他?
0388デフォルトの名無しさん
2008/02/09(土) 08:34:49何か処理
class AData {
}
}
みたいに、自クラス内のみ、もしくはそのファイル内でのみ使えて、
外部からは見えないクラスを使いたいのですが、
アクセスレベルはどのように書けば良いのでしょうか。
0389デフォルトの名無しさん
2008/02/09(土) 09:12:25ちなみに、A、ADataとも、互いのprivateフィールドやメソッドにアクセス可。
ソースファイル単位のアクセスレベルはない。
0390デフォルトの名無しさん
2008/02/09(土) 10:53:43private void hoge() {
AData data = new AData();
data.ANum = 1;
}
private class AData {
private int ANum;
private AData(){}
}
}
のように書いてみたんですが、
AData data = new AData();
data.ANum = 1;
この部分で両方ともアクセスできない保護レベルになってると怒られるんですが…。
0391デフォルトの名無しさん
2008/02/09(土) 11:06:28AData は 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(){}
}
}
0392デフォルトの名無しさん
2008/02/09(土) 11:29:24WndProcとPaintイベントの間にOnPaintが挟まる。
メッセージキューは、位置としてはWndProcより前にあるのだが、
(Updateのように)これを介さずWndProcへ送られる場合もあって、
それを381は直接呼ぶと表現しているんだろう。
0393デフォルトの名無しさん
2008/02/09(土) 11:48:46それをやると、アクセシビリティに一貫性がありません、ADataのアクセシビリティは
フィールド○○よりも低く設定されています。
と怒られてしまいます。
0394デフォルトの名無しさん
2008/02/09(土) 11:59:09>>391の通りならエラーにはならない
どこかでAData型をAの外に見せてるんだろ
0395デフォルトの名無しさん
2008/02/09(土) 12:03:07今適当にやったけど、普通にできるぞ。本当にそのエラーなのか?
0396デフォルトの名無しさん
2008/02/09(土) 12:05:54public AData data;//ここでエラー
private void hoge() {
data = new AData();
data.ANum = 1;
}
private class AData {
public int ANum;
public AData(){}
}
}
たぶんこうなってると推測
クラス外から見えない型のオブジェクトを公開しても外から触れないだろ
0397デフォルトの名無しさん
2008/02/09(土) 12:11:49親から回すしかないですかね?
0398デフォルトの名無しさん
2008/02/09(土) 12:15:490399デフォルトの名無しさん
2008/02/09(土) 12:18:28兄弟だろうと姉妹だろうと参照もてばいいんじゃねーの
0400デフォルトの名無しさん
2008/02/09(土) 12:30:28日本語でおk。
0401デフォルトの名無しさん
2008/02/09(土) 12:50:32参照持たせた所で、それは「オブジェクト思考」じゃ無いって叩かれるのを避けたかったんじゃない?
オブジェクト思考がなんだか解らないの、声だけ大きいキチガイが身近に居るとか。
0402デフォルトの名無しさん
2008/02/09(土) 12:51:55それアリなの?おぶじぇくと思考的に
0403デフォルトの名無しさん
2008/02/09(土) 12:54:55でMSDN引いてみれば
0404デフォルトの名無しさん
2008/02/09(土) 12:59:43もう少し隠蔽すべきデータかどうか考えてみたら?
他の鯖認証してるツールのアクセスログとか見てみな。
0405デフォルトの名無しさん
2008/02/09(土) 13:50:050406デフォルトの名無しさん
2008/02/09(土) 14:08:52これじゃだめなん?
private class AData {
private int aNum;
protected internal int ANum { get { return aNum; } set { aNum = value; } }
protected internal AData() { }
}
}
0407デフォルトの名無しさん
2008/02/09(土) 14:17:220408デフォルトの名無しさん
2008/02/09(土) 14:21:100409デフォルトの名無しさん
2008/02/09(土) 14:54:120410デフォルトの名無しさん
2008/02/09(土) 15:02:590411デフォルトの名無しさん
2008/02/09(土) 15:22:58どうでもいい話は直ぐ飛びつくしキモいんだよな
0412370
2008/02/09(土) 16:30:52>WndProcとPaintイベントの間にOnPaintが挟まる。
Paintイベントは直接的にはOnPaintによって発行される、ということでしょうか
ということはもしかして「イベントHogeは常にOnHogeメソッドによって発行される」のですか?
もしそうならスッキリしますね。
そうすると、例えばpictureBoxインスタンスのPaintイベント処理は、
「pictureBox_Paintイベントハンドラを設定」と「overrideしたOnHogeの作成」
のどちらでも機能的に同じことができる、ということでしょうか?
(そういえば誰かが「同じことをするにも何通りものアプローチがあるから、1つに拘るな」と言ってたのを見た記憶が)
>>387
他のウィンドウに隠れて無効化されたコントロールを再描画する、という単純なものです。。。
0413デフォルトの名無しさん
2008/02/09(土) 23:17:26C#でメモリ確保の方法ってありますか?
指定したメモリ数を確保するツールを作りたいのです。
教えてください。
0414デフォルトの名無しさん
2008/02/09(土) 23:45:110415デフォルトの名無しさん
2008/02/09(土) 23:49:130416デフォルトの名無しさん
2008/02/10(日) 00:01:14new
0417デフォルトの名無しさん
2008/02/10(日) 00:12:19チェックなどを設けずに単にset{ this.hoge=hoge; } get{ return hoge; }とするのでも、プロパティ使う意味あるんでしょうか?
0418デフォルトの名無しさん
2008/02/10(日) 00:15:21一昔前にあったメモリを強制的に確保して開放するメモリ掃除ツールの模倣?
Console.ReadLine();
byte[] buffer = new byte[1024 * 1024 * 256];
buffer[1234567] = 5; //最適化防止用
Console.ReadLine()を抜けるとタスクマネージャにおけるPF使用量が増える。
ただNT系でメモリ掃除効果があるかは知らん。用途勘違いしてたら無視してくれ。
0419デフォルトの名無しさん
2008/02/10(日) 02:35:00この記事を読んで一瞬でも難しいと思った自分は、まだまだ修行不足なんだろうなぁ…
返り血が構造体なプロパティや、構造体なコレクションのforeachなんかは
自分もそのうち使うと思うので注意だけど、他にも初心者は気をつけとけ!っていう所ありますか?
0420デフォルトの名無しさん
2008/02/10(日) 02:58:23> 構造体なコレクション
これ,できるのか・・・継承とか委譲とかはクラスにしかできないとおもてた
0421デフォルトの名無しさん
2008/02/10(日) 03:25:22フィールドやセッターならエラー吐いてくれるからまだいいけど、
破壊的なメソッド呼び出しはエラーにならずに
コピーに対して無意味な操作をしてしまうって方が厄介なんだよね。
これのせいで値型のメソッドはimmutableであるべきだとか
そもそもフィールド操作と区別がつかないプロパティのシンタクスが
問題なんだとか主張もあったりなかったり。
0422デフォルトの名無しさん
2008/02/10(日) 05:54:21IEquatable<T>.Equals(T o)やIComparable<T>.CompareTo(T o)を
実装しないとパフォーマンスが非常に悪いことになる。
0423デフォルトの名無しさん
2008/02/10(日) 10:40:030424デフォルトの名無しさん
2008/02/10(日) 11:42:20unsafe { byte* buf = stackalloc byte[10]; }
0425デフォルトの名無しさん
2008/02/10(日) 13:09:390426sage
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になります。
0427デフォルトの名無しさん
2008/02/10(日) 13:59:2320020101 〜 20040131
20030101 〜 20030131
20020201 〜 20030115
こういうケースはどう並ぶの?
0428デフォルトの名無しさん
2008/02/10(日) 14:00:46「表示」だけじゃ無いんだよな?日付入力して更新ということであれば
1.チェックの1〜3でOKならTMPテーブルに書き込む
2.TMPに書き込めたらcommitして元データ削除
3.TMPから元テーブルにコピー
4.元テーブルからSQLで読み込み(ここでソート)
どうしても配列でソートなら「配列、ソート」でぐぐるか本嫁、基本だから
排他が気になるけど全デリート全インサートなん?
0429419
2008/02/10(日) 14:01:16そういえば、C#のjavaより良い点の一つが、値渡しができる構造体って教わりましたよ。
なんとか使いこなせるよう頑張ろう。
0430デフォルトの名無しさん
2008/02/10(日) 14:10:29こんなこというと,そんなもん大したコストじゃないだろとか言われそうだから先に言っとくけど,
構造体はそんなもんが問題になるような状況で使うもの
0431デフォルトの名無しさん
2008/02/10(日) 14:11:56何が頑張ろうだ、頑張るのはお前だw
0432デフォルトの名無しさん
2008/02/10(日) 14:13:09日本語って難しいよな
0433デフォルトの名無しさん
2008/02/10(日) 14:13:22君頭悪いでしょw
0434デフォルトの名無しさん
2008/02/10(日) 14:13:340435デフォルトの名無しさん
2008/02/10(日) 14:14:58同意
0436デフォルトの名無しさん
2008/02/10(日) 14:15:05なんか言ってること変じゃないか?w
よくわかってないのなら無理しない方がいいと思うよ
0437デフォルトの名無しさん
2008/02/10(日) 14:15:40同意?
0438430
2008/02/10(日) 14:19:21これでいいか?
0439デフォルトの名無しさん
2008/02/10(日) 14:23:39ボクシングは構造体にまつわる問題だ、と自分で言ってるのに、
どうして「ボクシングが問題になるような状況で」構造体を使うんだよw
0440デフォルトの名無しさん
2008/02/10(日) 14:25:43たとえば配列の要素にアクセスするような場面における参照型のオーバーヘッドを
回避することでしょ。
0441デフォルトの名無しさん
2008/02/10(日) 14:42:26GC負荷を減らしたいときに構造体が活用できることがある。
でも構造体を使うときはボクシングに気をつけないとかえってGC負荷を増やしてしまう。
だからGC負荷を減らしたいときは、ボクシングに気をつけながら構造体の活用を考えよう。
というような話を>>430はしたいのだろう。
0442デフォルトの名無しさん
2008/02/10(日) 14:49:390443デフォルトの名無しさん
2008/02/10(日) 14:52:350444デフォルトの名無しさん
2008/02/10(日) 14:55:33俺はほぼ全てのケースで構造体使っても早くならんと思ってるけどな
0445デフォルトの名無しさん
2008/02/10(日) 14:55:410446デフォルトの名無しさん
2008/02/10(日) 14:57:15例えば構造体のToStringをオーバーライドしてないとき。
public struct Hoge
{
public int Fuga;
}
Hoge hoge = new Hoge();
string str = hoge.ToString(); // ←ここでボクシングがおきる
他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり
0447デフォルトの名無しさん
2008/02/10(日) 15:04:16構造体は速くするためというよりは遅くならないための仕組みな気がするね。
>>446
>他にもIEquatable<T>を実装させずにDictionaryのキーにしたときとかボクシング起きまくり
GetHashCodeのオーバーライドも忘れずに。
0448デフォルトの名無しさん
2008/02/10(日) 15:40:000449デフォルトの名無しさん
2008/02/10(日) 15:56:38こんなメソッドを呼び出してることに相当するわけだから
0450デフォルトの名無しさん
2008/02/10(日) 16:06:28>>449
C#コンパイラが出力したIL見てみれば分かるけど
.NET 2.0以降ではconstrainedプレフィックスが使えるようになったので
ValueType.ToStringの呼び出しそのもののボクシングは回避できるようになった。
その意味では設計で対処されてる。
ただ、ValueType.ToStringが中でbase.GetType().ToString()を呼んでいるので
そこでボクシングとかGCヒープアロケーションは起きる可能性が高い。
0451デフォルトの名無しさん
2008/02/10(日) 16:28:540452デフォルトの名無しさん
2008/02/10(日) 17:13:59static 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を作るわけだから当たり前だけど
0453デフォルトの名無しさん
2008/02/10(日) 17:53:12ハッシュや比較はコレクションで大量に使うからきちんと実装しといたほうがいい。
IEquatable<T>やIComparable<T>などを実装しないならジェネリックでないコレクションを使ったほうが、
ボクシングの回数は少なくて済むから逆にパフォーマンスもいいんだよね。
0454デフォルトの名無しさん
2008/02/10(日) 18:06:28プログラミング.NET Framework第2版
を買いました。
もう4月までずっと春休みなので
休み中に読破しようかな〜
0455デフォルトの名無しさん
2008/02/10(日) 18:09:550456デフォルトの名無しさん
2008/02/10(日) 18:37:240457デフォルトの名無しさん
2008/02/10(日) 18:39:23この業界来ないように他業種の勉強しておいた方がいいと思うよ
0458デフォルトの名無しさん
2008/02/10(日) 19:28:08ほかに、領域確保の効率が悪くなることで参照型より負荷が高くなることもある。
0459デフォルトの名無しさん
2008/02/10(日) 19:28:520460デフォルトの名無しさん
2008/02/10(日) 19:37:27微妙に同意してしまうのだがw
0461デフォルトの名無しさん
2008/02/10(日) 20:01:22激しくだろ?
0462デフォルトの名無しさん
2008/02/10(日) 21:02:03という例の恥ずかしい法則でしょ
たとえば職業とかさw
お前が不幸なのはそれはお前だからだ、というのが真実なのにねw
0463デフォルトの名無しさん
2008/02/11(月) 08:22:09クリックで切り替えたときは何も起こらないのですが、何か原因があるのでしょうか?
0464デフォルトの名無しさん
2008/02/11(月) 11:13:360465デフォルトの名無しさん
2008/02/11(月) 11:14:290466デフォルトの名無しさん
2008/02/11(月) 11:31:270467デフォルトの名無しさん
2008/02/11(月) 12:48:18つまりC#(.NET)でアンマネージなDLLの開発が出来るかということだと思うんですが・・。
因みにWin32アプリの方をCOM対応にするとかはなしで。
0468デフォルトの名無しさん
2008/02/11(月) 12:54:25ただ、多くの場合まともに動かないから、素直にC++/CLIでラッパDLLを書いたほうがいい。
ここで気をつけなければならないのが、一つのプロセスには一つのCLRしかロードできないということ。
つまり、そのプロセスに別のバージョンのCLRを使うモジュールがロードされていると正常に動かない可能性がある。
0469デフォルトの名無しさん
2008/02/11(月) 13:23:56C++はかなり苦手なんだけど、ラッパDLLがいいんなんですね。
念のため調べたいので、どっかにCLRでマネージドを公開するいい例が無いでしょうか・・?
0470デフォルトの名無しさん
2008/02/11(月) 13:28:030471デフォルトの名無しさん
2008/02/11(月) 13:28:58http://support.microsoft.com/default.aspx?scid=kb;ja;815065
0472デフォルトの名無しさん
2008/02/11(月) 13:34:32これはひどい
0473デフォルトの名無しさん
2008/02/11(月) 13:39:54逆PInvokeはさすがに知らんかった。
どの言語から使いたいのかわからないけどCOMが一番取り回しが楽だよ。
登録の問題はSxSで回避できるし。
0474467
2008/02/11(月) 13:51:19OpenSource系のWin32だし苦手なC++なので手が入れられないんですよね。
逆アセンブリ?もちょっと・・
0475デフォルトの名無しさん
2008/02/11(月) 13:57:480476467
2008/02/11(月) 14:03:55よく分かってないので、C++/CLIでのラッパーの作り方とか調べてみます。
0477デフォルトの名無しさん
2008/02/11(月) 14:59:09あんまり見かけない気がする
てかC++/CLI関係の本がないか。。。
0478デフォルトの名無しさん
2008/02/11(月) 16:24:41装飾部分が毎回同じ(黄色のハイライトのみ)なので単純合体の方法で
現存のRTFファイルをテキスト読込し最後の2行の終了部を削る
追加するRTFデータをRTFファイル出力してからテキスト読込して
最初の2行の装飾部を削ってテキストを合体させテキスト出力する
そのくらいしか思いつきません
他によい方法はありますでしょうか?
0479デフォルトの名無しさん
2008/02/11(月) 16:39:30片方に追加させファイルに書込んで終了する単独ソフトを作った方がいいのかなあ
0480デフォルトの名無しさん
2008/02/11(月) 19:46:07スパイ++で覗いたところ、QWidgetというクラスで、キャプションはlbOKというオブジェクトです
このlbOKをクリックするイベントを送りたいのですがどうしたらいいでしょうか?
ウィンドウハンドルやウィンドウProcなども分かっています
よろしくお願いいたします
0481デフォルトの名無しさん
2008/02/11(月) 19:58:02Spy++で調べて、SendMessageで再現すればいいよ。
0482デフォルトの名無しさん
2008/02/11(月) 19:59:07SendMessage, BM_CLICK
0483デフォルトの名無しさん
2008/02/11(月) 20:09:20>>482
なるほど参考になりました
SendMessageですね!!
さっそくSpy++で調べてやってみます!!
0484デフォルトの名無しさん
2008/02/11(月) 21:28:58OPENFILENAME構造体のFlugsにEnableTemplateHandle、またはEnableHookを選択するとXP以前の外観に戻ってしまうんです。
ダイアログボックスをカスタマイズするには、ウィンドウメッセージをフックする必要があるので、EnableHookを必ず選択しないといけなく新しい外観のままカスタマイズすることはできないのです
C++では使えないようなんですが
ttp://msdn2.microsoft.com/ja-jp/library/43xtah3y.aspx
C#ではどうなんでしょう
おねがいします。
0485デフォルトの名無しさん
2008/02/11(月) 21:42:45ボタンだけを配置したフォームでキーイベントを受け取りたいのですが
どうすれば良いのか教えてください
0486デフォルトの名無しさん
2008/02/11(月) 22:55:360487デフォルトの名無しさん
2008/02/12(火) 00:55:49ContextMenuStripが閉じるまでShow()から制御が戻らないようにしたいんだけど、
どうすればよい?
TrackPopupMenu()みたく、メニュー側でモーダルループ持たせたいんだけど。。。
0488デフォルトの名無しさん
2008/02/12(火) 05:27:39200successや404notfoundなどの
コードはどのように取得したらいいのでしょうか?
よろしくお願いいたします。
0489デフォルトの名無しさん
2008/02/12(火) 08:52:18HTTPの応答時のステータスコードを取得する
ttp://dobon.net/vb/dotnet/internet/httpstatuscode.html
0490デフォルトの名無しさん
2008/02/12(火) 09:00:56HttpWebResponse.StatusCodeとHttpWebResponse.StatusDescriptionに
はいってんじゃね?
404だと例外放るからWebExceptionキャッチして、webException.Response
をHttpWebResponseにキャストして、同様にStatusCodeなんかを見る。
0491デフォルトの名無しさん
2008/02/12(火) 12:47:34>>490
ありがとうございます
HttpWebResponseにキャストしなくちゃいけなかったんですね
大変助かりました
0492デフォルトの名無しさん
2008/02/12(火) 15:07:000493デフォルトの名無しさん
2008/02/12(火) 16:35:420494デフォルトの名無しさん
2008/02/12(火) 16:43:150495デフォルトの名無しさん
2008/02/12(火) 16:55:27画像も入るからむずかしくね?
0496デフォルトの名無しさん
2008/02/12(火) 16:56:11できるんじゃね
PDFのgrep作ったら俺にもちょうだい
0497デフォルトの名無しさん
2008/02/12(火) 17:05:22バイナリエディタで見ればわかるが、少なくとも文字はただのテキスト。
0498デフォルトの名無しさん
2008/02/12(火) 17:27:130499デフォルトの名無しさん
2008/02/12(火) 18:06:14PDFファイルを開いて文字列だけ正規表現か何かで抜き出せばいいのか
0500デフォルトの名無しさん
2008/02/12(火) 18:27:22ダメだろそんなルーズな方法
0501デフォルトの名無しさん
2008/02/12(火) 18:42:020502デフォルトの名無しさん
2008/02/12(火) 21:18:190503デフォルトの名無しさん
2008/02/12(火) 23:24:580504デフォルトの名無しさん
2008/02/13(水) 01:14:16GameState = Title;
switch (GameState)
{
case Title:
処理
if("Aを押したら")
{
GameState = Main;
}
break;
case Main:
処理
break;
}
こんな感じのプログラムを打っているのですが、実行結果が少しおかしいのです。
タイトル画面からAを押したらメイン画面に移行します。しかし、メイン画面での処理が始まりません。
試しにGameStateにMainを入れて始めたら、メイン画面の処理が行われました。
ちなみに、タイトル画面にメイン画面の処理を全て入れてタイトル画面→メイン画面と移行させたらメイン画面の処理が行われました。
しかし、タイトル画面ではタイトルの処理だけ、メイン画面ではメインの処理だけさせたいのでこれでは意味がないのです。
説明下手で申し訳ないです。何か分かりましたら教えて頂けないでしょうか?
0505デフォルトの名無しさん
2008/02/13(水) 01:20:14breakしてんだから始まるわけないじゃん
処理のフローをちゃんと見直せ
0506デフォルトの名無しさん
2008/02/13(水) 01:29:160507デフォルトの名無しさん
2008/02/13(水) 01:38:51自前で解析なんてやってられない
0508デフォルトの名無しさん
2008/02/13(水) 01:39:280509デフォルトの名無しさん
2008/02/13(水) 01:45:06しかし、break文を消した所、
コントロールはひとつのcaseラベル(case 0)から別のラベルへ流れ落ちることはできません。
と、エラーが出ました。恐らく
case Title
処理
case Main
と書いてあるためだと思われますが、これだ
ここまで書いて思ったのですが、なんか質問する以前の問題のような気がしました。もっと勉強し直して来ます……すいませんでした
0510デフォルトの名無しさん
2008/02/13(水) 02:12:19だからフローを見直せって
switchの使い方がおかしいんだろ
0511デフォルトの名無しさん
2008/02/13(水) 02:17:44はい、もう一度見直します。もっとじっくり考えます。今日はこれが出来るまで寝ないつもりで頑張ります。
0512デフォルトの名無しさん
2008/02/13(水) 02:21:23初心者はif while以外使うな
これだけでプログラム書ける
0513デフォルトの名無しさん
2008/02/13(水) 02:25:240514デフォルトの名無しさん
2008/02/13(水) 02:36:53構造化プログラムが書けなきゃOOPなんて絶対むりやん
0515デフォルトの名無しさん
2008/02/13(水) 02:45:56独学も含めてな
0516デフォルトの名無しさん
2008/02/13(水) 04:33:15今思うとなんでこんなことを、と恥ずかしさで死にそうです。しかし、今回の経験を通してswitch文だけではなく、enum型、メソッドの使い方を学びました。
こんだけ必死になったのも、自分の醜態を晒したからだと思いますw これからも日々精進で頑張ります。
長々となりましたが、自分のしたいことが出来ましたので報告とさせて頂きました。色々とお見苦しい所があったかと思います。失礼しました。
0517デフォルトの名無しさん
2008/02/13(水) 04:38:380518デフォルトの名無しさん
2008/02/13(水) 04:47:40んで、人伝に聞いただけなんだけどJava使っていきなりOOPだとか
って考え直したらソフトウェア工学自体やってねえだけか
0519デフォルトの名無しさん
2008/02/13(水) 04:48:47解決してよかったね
0520デフォルトの名無しさん
2008/02/13(水) 09:52:190521デフォルトの名無しさん
2008/02/13(水) 10:30:13報告乙。恥ずかしさを思い出して氏ね。
0522484
2008/02/13(水) 12:38:08COMベースのAPIを利用する必要があるということがわかりました
C++での利用例を参考に(この時点では表示できている)、C++のヘッダーファイルを読み、C#で実装しました
そして、コンパイルし動かしてみると、メモリアクセス違反が発生し、ダイアログが表示されません
どうしてなんでしょうか?
ソースコードは
http://www.uploda.org/uporg1248711.zip.html
開発環境はVS2005Pro
最新のMicrosoft Windows SDK for Windows Vistaが必要だと思います。
もちろん、Vistaでのみの動作です。
お願いします
0523484
2008/02/13(水) 12:44:54http://www.uploda.org/uporg1248719.zip.html
0524デフォルトの名無しさん
2008/02/13(水) 14:23:08順次構造・繰り返し構造・分岐構造やフローチャート程度のものなら高校でやるよ。
工業系でない一般高校でも。
0525デフォルトの名無しさん
2008/02/13(水) 14:51:28まじ?一体いつから・・・
俺ん時はなかったな
0526デフォルトの名無しさん
2008/02/13(水) 15:49:29List<hoge>fuga1と
List<hoge>fuga2が
含まれるリストが同じか否かを知るには、どうやればいいですか?
0527デフォルトの名無しさん
2008/02/13(水) 16:24:39Enumerable.SequenceEqual
0529デフォルトの名無しさん
2008/02/13(水) 17:50:38それならforのほうが
0530デフォルトの名無しさん
2008/02/13(水) 18:30:050531デフォルトの名無しさん
2008/02/13(水) 19:21:460532デフォルトの名無しさん
2008/02/13(水) 19:34:39まずは要素数を比較
一致するならリストをソートして先頭から順に一致するか検査
0533デフォルトの名無しさん
2008/02/13(水) 19:48:25ソートしたらO(n logn)になっちゃうやん
0534デフォルトの名無しさん
2008/02/13(水) 19:49:250535デフォルトの名無しさん
2008/02/13(水) 19:59:29アフォ過ぎてお茶吹いたwww
0536デフォルトの名無しさん
2008/02/13(水) 20:06:130537デフォルトの名無しさん
2008/02/13(水) 20:14:510538デフォルトの名無しさん
2008/02/13(水) 20:21:22ソートして何が悪い
俺はソートが好きなんだよ
0539デフォルトの名無しさん
2008/02/13(水) 20:22:29よくしらんけど
0540デフォルトの名無しさん
2008/02/13(水) 20:37:11同じ要素が複数あったらダメダな
0541デフォルトの名無しさん
2008/02/13(水) 20:41:050542デフォルトの名無しさん
2008/02/13(水) 20:41:37ププププ
0543デフォルトの名無しさん
2008/02/13(水) 20:43:39みたいなことやるよりはマシか
0544デフォルトの名無しさん
2008/02/13(水) 22:06:24アホは君らだ。
0545デフォルトの名無しさん
2008/02/13(水) 22:25:310546デフォルトの名無しさん
2008/02/13(水) 22:34:350547526
2008/02/13(水) 23:00:19結局どんなのが良いんですかね?
ソートしちゃうのが一番単純ですが、ソートに使えそうなフィールドがない場合や
IComparable付けてない場合だと駄目ですよね??
fuga1.TrueForAll(fuga2.Contains)はいいかなと思ったんですが、駄目なんですか?
0548デフォルトの名無しさん
2008/02/13(水) 23:06:450549デフォルトの名無しさん
2008/02/13(水) 23:11:550550デフォルトの名無しさん
2008/02/13(水) 23:26:42問題を具体的に示しなよ。
正解教えてあげるからさ。
0551デフォルトの名無しさん
2008/02/13(水) 23:29:19* *
* + いいよん
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0552デフォルトの名無しさん
2008/02/13(水) 23:31:160553デフォルトの名無しさん
2008/02/13(水) 23:35:550554デフォルトの名無しさん
2008/02/13(水) 23:36:58この辺読んでるんだが、アセンブリの厳密名とか署名とか、なんか色々面倒くさいと感じた。
当分気にしなくてもいいんだろうか。
0555デフォルトの名無しさん
2008/02/13(水) 23:38:200556デフォルトの名無しさん
2008/02/13(水) 23:40:210557デフォルトの名無しさん
2008/02/13(水) 23:40:42それじゃ一方が他方の部分集合であることしか分からんじゃん。
それに、O(n^2)
0558デフォルトの名無しさん
2008/02/13(水) 23:45:36最初からListを使うべきではないんだと思うな
SortedListあるいはDictionaryあたりを使うべきなんじゃないかね
0559デフォルトの名無しさん
2008/02/13(水) 23:48:160560526
2008/02/13(水) 23:53:15>つかそもそもソートしていいの?
「いい」というのは、「並びが変わってしまっていい」という意味ですか?
対象のリストは大丈夫です。必要ならソート用Listをコピーして用意すればいいと思いますが
>>549
ないです。ある場合はまた面倒なんでしょうかね・・・?
>>557
重複がないので↓で大丈夫だと思うのですが?(というか大丈夫でした)
bool b;
if(fuga1.Contains==fuga2.Contains) { b = fuga1.TrueForAll(fuga2.Contains); }
>>552さんのいうとおりアルゴリズムの基本もちゃんと分かってない阿呆なので、この辺で失礼します。
ありがとうございました。
0561デフォルトの名無しさん
2008/02/13(水) 23:54:05普通に要素比較しろ
0562デフォルトの名無しさん
2008/02/13(水) 23:54:23二つのリストの長さは等しいの?
0563デフォルトの名無しさん
2008/02/13(水) 23:56:27アホ。
0564デフォルトの名無しさん
2008/02/14(木) 00:00:440565デフォルトの名無しさん
2008/02/14(木) 00:05:29100とかじゃないよな?
0566デフォルトの名無しさん
2008/02/14(木) 00:06:12いや、アホはお前だろw
0567デフォルトの名無しさん
2008/02/14(木) 00:09:150568526
2008/02/14(木) 00:11:20ふと思ったんですが、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;
}
重複の場合はどうしょ・・・・
0569526
2008/02/14(木) 00:12:19お見苦しくてスマンセン
0570デフォルトの名無しさん
2008/02/14(木) 00:17:20二つのリストに同じ要素が入っているとしても順番までも同じとは限らないの?
0572デフォルトの名無しさん
2008/02/14(木) 00:26:390573デフォルトの名無しさん
2008/02/14(木) 00:36:470574デフォルトの名無しさん
2008/02/14(木) 00:38:43どうしたらいいんでしょう。windows.formsのwebbrowserでdocumentを取るみたいに
したいんですが。
0575デフォルトの名無しさん
2008/02/14(木) 00:43:52WPFって何なのですか?
新規作成のメニューにあって気になってたんですが・・・・
0576デフォルトの名無しさん
2008/02/14(木) 00:47:330577デフォルトの名無しさん
2008/02/14(木) 01:03:31まあいいか、自分で調べるわ
0578デフォルトの名無しさん
2008/02/14(木) 01:32:540579デフォルトの名無しさん
2008/02/14(木) 01:45:48http://channel9.msdn.com/screencasts/thailandscreencast.wmv
0580デフォルトの名無しさん
2008/02/14(木) 03:49:37やっていたらもう四時になっしまった、寝なきゃ・・・
0581デフォルトの名無しさん
2008/02/14(木) 05:01:10そのまま[DllImport]で呼べると思ってたんだけど
DLLが見つかりませんって実行エラーがでる...
これってどうやればいいんですか?
DLLはいろんなファイルや他のDLL参照してるから
今のフォルダ構成から動かせられないって制限付きなんですが...
0582デフォルトの名無しさん
2008/02/14(木) 05:51:470583デフォルトの名無しさん
2008/02/14(木) 05:55:50DLLが見つからないんじゃない?
0584デフォルトの名無しさん
2008/02/14(木) 06:05:27参照設定で追加
0585デフォルトの名無しさん
2008/02/14(木) 06:19:260586デフォルトの名無しさん
2008/02/14(木) 06:31:210587デフォルトの名無しさん
2008/02/14(木) 06:58:01普通に配布されているようなユーティリティのようなものを作れるのかなと
WinAPIを直接触ってしまったらしまったでC#でやる意味もない気もしますし
自分でもうまくまとまらないですすみません
0588デフォルトの名無しさん
2008/02/14(木) 07:08:28つかC#から.net切ったら何も残らないと思うのだが
0589デフォルトの名無しさん
2008/02/14(木) 07:09:29使い分けできるようにしていきたいと思ってます、ありがとう
0590デフォルトの名無しさん
2008/02/14(木) 07:19:000591デフォルトの名無しさん
2008/02/14(木) 07:21:20安価つけよう、なぜか>>589-590で笑っちまった
0592デフォルトの名無しさん
2008/02/14(木) 07:47:20C#単体では動かないが
0593デフォルトの名無しさん
2008/02/14(木) 08:35:400594デフォルトの名無しさん
2008/02/14(木) 09:07:26でも借りたPCで.NETインスコ不可等の事情がない限り、そのまま配布してほしいな
よく考えてみたらスレ違いな気がする…
0595デフォルトの名無しさん
2008/02/14(木) 09:08:45ネイティブコンパイラなんてあったっけ
0596デフォルトの名無しさん
2008/02/14(木) 09:13:370597デフォルトの名無しさん
2008/02/14(木) 09:44:14てか、そこは「Linux 版の .NET 環境もあるよ」と教えるべきでは。
>>595
http://www.remotesoft.com/
でも、言語仕様の時点で .NET Framework の存在を仮定してる言語のネイティブコンパイラ使ってもなぁ。
0598デフォルトの名無しさん
2008/02/14(木) 10:09:07念のために言っておくと .NET Framework の存在は仮定してない。
# C# が必要とする BCL は Micro Framework に比べてもはるかに小さいし、アセンブリやリフレクションの概念さえない。
ただし、RTTI や GC を含む基本的な言語システムはどうしても必要になってくるけど。
0599デフォルトの名無しさん
2008/02/14(木) 10:23:30行間がビチビチで読みにくいのですが。
0600デフォルトの名無しさん
2008/02/14(木) 10:48:15monoって今ぶっちゃけどうなんすか?
専用スレが寂れまくってますが。
0601581
2008/02/14(木) 10:51:26参照設定でDLLを追加してみましたが,同じ結果でエラーが出ました
追加情報: System.Web.Services.Protocols.SoapException: サーバーは要求を処理できませんでした。 ---> System.DllNotFoundException: DLL '***.dll' を読み込めません: 指定されたモジュールが見つかりません。 (HRESULT からの例外: 0x8007007E)
Webサービスで参照させているのが影響してたりしますでしょうか...?
(テスト環境はローカル)
参照の追加ダイアログで確認する限り,DLLへのパスはあっています
0602デフォルトの名無しさん
2008/02/14(木) 10:58:440603デフォルトの名無しさん
2008/02/14(木) 11:24:110604デフォルトの名無しさん
2008/02/14(木) 13:56:30http://anonsvn.mono-project.com/Mono-1.2.6_openSUSE-10.3.i686.iso.torrent
0605デフォルトの名無しさん
2008/02/14(木) 14:02:22踏むのが怖い
0606デフォルトの名無しさん
2008/02/14(木) 14:04:590607デフォルトの名無しさん
2008/02/14(木) 14:05:390608デフォルトの名無しさん
2008/02/14(木) 14:11:18VSのC#への偏向具合もあるし、MSは.NETひいてはC#を当分主軸として動きそうだし
0609デフォルトの名無しさん
2008/02/14(木) 14:16:39なんだかんだWindowsシェア広いし
俺としてはASPが強力だと思えるからWindowsサーバがどれくらい増えるか気になる
0610デフォルトの名無しさん
2008/02/14(木) 14:28:360611デフォルトの名無しさん
2008/02/14(木) 17:06:37というのも初心者がWindowsサーバ構築して公開して悲惨なことになっているのを見てだけど
0612デフォルトの名無しさん
2008/02/14(木) 17:14:530613デフォルトの名無しさん
2008/02/14(木) 17:17:34linuxなんて最初からセキュリティ割とがちがちだし
0614デフォルトの名無しさん
2008/02/14(木) 17:19:08もう触らないとか、目も当てられない状況になる事多々ありなんですが
素敵な踏み台サーバーは勘弁、某大学とかとかwww
0615デフォルトの名無しさん
2008/02/14(木) 17:19:480616デフォルトの名無しさん
2008/02/14(木) 17:21:31ポート開放やデフォのセキュリティからちょこっと解放したり
Windowsは普通にデフォのWin環境で鯖構築するから目も当てられない
これくらいは常識以下
某大学は偶然狙われただけだろう、狙われればどこも同じなんて状況だよ
そんな悲惨なのが溢れてる
まあそういうとこは大学のページほどアクセスやらされ辛いわけだがな
0617デフォルトの名無しさん
2008/02/14(木) 17:22:41そりゃ見事にアウトゾーンだがまあ初心者ならやるか・・
0618デフォルトの名無しさん
2008/02/14(木) 17:23:07とかよ
0619デフォルトの名無しさん
2008/02/14(木) 17:30:030620デフォルトの名無しさん
2008/02/14(木) 17:41:44生半可な知識でLinux鯖立てる人より安全。
なぜなら、彼らはOSのバージョンアップのやり方を知らないから。makeも知らない。
だから、人件費が削減できて、結果的に(フリーのLinuxより)Windowsを買った方が安くつく。
だから売れる。商売が成り立つ。もちろん知識のある人の多い会社はわざわざOSを買ったりしないが。
WinならWindowsUpdate一発だから。GUIだから馬鹿でもやれる。
大学のサーバは本当にひどい。
VineLinux3.2(M大、N大)とか、PHP3系(S大、W大)とか、普通に使っているし。
証明書なしで学外からパスワードを入力させる。うちの大学のことだが。
でもさすがにWinXPで鯖立てる大学は知らない。犯罪だしな。
0621デフォルトの名無しさん
2008/02/14(木) 17:45:030622デフォルトの名無しさん
2008/02/14(木) 17:45:380623デフォルトの名無しさん
2008/02/14(木) 17:48:430624デフォルトの名無しさん
2008/02/14(木) 17:50:110625デフォルトの名無しさん
2008/02/14(木) 17:51:09このスレで質問してるような自分が相当できる人だと思われてる・・・
0626デフォルトの名無しさん
2008/02/14(木) 17:53:230627デフォルトの名無しさん
2008/02/14(木) 17:54:15○私の大学は本当にヤバイですよ
0628デフォルトの名無しさん
2008/02/14(木) 17:57:27俺の大学、高木先生に「この大学に入学するな」リストに入ってるwww
0629デフォルトの名無しさん
2008/02/14(木) 17:58:460630デフォルトの名無しさん
2008/02/14(木) 18:01:490631デフォルトの名無しさん
2008/02/14(木) 18:05:30ttp://takagi-hiromitsu.jp/diary/20071117.html
0632デフォルトの名無しさん
2008/02/14(木) 18:06:520633デフォルトの名無しさん
2008/02/14(木) 18:11:480634デフォルトの名無しさん
2008/02/14(木) 18:16:000635デフォルトの名無しさん
2008/02/14(木) 18:49:310636デフォルトの名無しさん
2008/02/14(木) 20:59:55リファクタリングしてもxamlの方が更新されなくて、いちいち手動で直さないと
いけないのがすごく面倒くさいんですが、なんか良い方法ってあるんでしょうか?
それとも、Window1でそのまま使った方が良いのかな…。なんか気分が悪い。
0637デフォルトの名無しさん
2008/02/14(木) 21:04:32素人が余計な事をしなければ、ある程度のセキュリティを確保できる。
が、ガチガチのセキュリティを確保しようとすると、やれレジストリだ何だと鬼のように難しい。
そしてちょっと凝った事をしようとすると「動かん」「バグですか」となる。
一方、デフォルトのLinuxはオープン。来る者拒まずな感じ。
そのかわりガチガチにするのは楽。
素人が訳も解らずにネット上の「入門」とか言ってるサイトに転がってる設定ファイルをコピペ
するだけでも、それなりになる。
そして自分が何をやったのか、訳も解ってないのに偉そうになる。
0638デフォルトの名無しさん
2008/02/14(木) 21:12:15それはもう常識でしょう、語らなくてもいいです、スレ違い(笑
0639デフォルトの名無しさん
2008/02/14(木) 22:57:560640デフォルトの名無しさん
2008/02/14(木) 23:01:100641デフォルトの名無しさん
2008/02/14(木) 23:17:01元のコンテナをDisableにすると中のコントロールも灰色になってしまうのですが、
これを自前でドローする以外で回避するにはどうしたらいいでしょうか?
0642デフォルトの名無しさん
2008/02/15(金) 00:14:04WS_DISABLEDが伝播してきてるんじゃないのかね
0643デフォルトの名無しさん
2008/02/15(金) 02:41:57見たこと無いな、そんな機能
色は変えなくてもDisable?
それでなけれぱ、一旦コンテナから離して、優先順位を上にしてしまうのが楽チンそうな気がする。
0644デフォルトの名無しさん
2008/02/15(金) 10:02:09HttpRequest/HttpResponceを使ってWebサーバと通信して居ます。
WebサーバからCookieが送られて来るのですが、JavaScript中に埋め
込まれて送られてきます。
HttpResponceで受け取ったデータの中を舐めても良いのですが、もっ
とスマートにCookieを取り出したいのですが、何か良い方法は無いで
しょうか?
ちなみに、IEがDocument Setting\ユーザ名\Cookieに保存するCookie
ファイルを直接読み出す方法を考えて見たんですが、ログインユーザ
を意識しないでやる方法を探して居ます。
何か良い方法は無いものでしょうか?
0645デフォルトの名無しさん
2008/02/15(金) 10:23:20Cookies
0646デフォルトの名無しさん
2008/02/15(金) 11:18:22一発で出す方法は無いでしょうか?
DateTime dt = DateTime.Now();
dt.ToString("s");
でCCYY-MM-DDTHH:MM:SSまでは出る事がわかったのですが。
(タイムゾーンが出ないです)
TimeSpanを使って長ったらしい内容にしないと無理でしょうか?
後々、バグの原因になりそうなので簡潔に書いておきたいのですが。
0647デフォルトの名無しさん
2008/02/15(金) 11:35:15とか?
0648デフォルトの名無しさん
2008/02/15(金) 12:15:14単なるlong値じゃねーの
0649デフォルトの名無しさん
2008/02/15(金) 12:17:49あとは実行した環境のタイムゾーン見ればよし。
0650デフォルトの名無しさん
2008/02/15(金) 12:18:090651デフォルトの名無しさん
2008/02/15(金) 12:48:47XMLスキーマのdateTimeってGMT+タイムゾーンだからそれじゃダメじゃね?
>>648
.NET2.0から仕様が変わってタイムゾーンを保持するようになった
0652デフォルトの名無しさん
2008/02/15(金) 13:06:17HttpWebRequest/HttpWebResponseではJavaScriptが動作しないので、
埋め込まれていたら無理。
IEで利用しているCookieを取得するには、InternetGetCookie。
0653デフォルトの名無しさん
2008/02/15(金) 13:51:37なら 'GMT'zzだね。
0654デフォルトの名無しさん
2008/02/15(金) 13:54:030655デフォルトの名無しさん
2008/02/15(金) 14:10:52特にDBとか使ってるときにDB側の日付型の違いで地獄に堕ちるのを防いでくれる。
0656デフォルトの名無しさん
2008/02/15(金) 14:26:17これって結構あるものなんですか?標準と微妙に違ってたり、とか?
0657デフォルトの名無しさん
2008/02/15(金) 14:36:05メインウィンドウからダイアログ1を開く→OK押す(ダイアログ1消える)→ダイアログ2が起動
(重い処理なのでプログレスバー表示)→完了(ダイアログ2消える)→メインウィンドウに戻る
をしたいのですが、1を消すタイミングでclose()、dispose()してるにも関わらず
ダイアログ2が終わるまで1のダイアログが残ってしまいます。(1の上に2が重なってるイメージ)
どうやれば、1のダイアログをすぐに消すことが出来るんでしょうか。
0658デフォルトの名無しさん
2008/02/15(金) 14:38:22最小化すればいいんでないの
0659デフォルトの名無しさん
2008/02/15(金) 14:40:35selectした際に特に変換せずに抜き出すと、各社ばらばら。
あと内部保持形式がUTCだったり設定依存だったりと。
俺は日付に関する値でも迷わずvarcharにしている。
で、どうしてもという時は、where句で必要に応じてvarchar -> dateとかキャストして使うようにしている。
0660デフォルトの名無しさん
2008/02/15(金) 14:45:12良く嫁
0661デフォルトの名無しさん
2008/02/15(金) 15:08:45すごいですね・・・DBやったことないんで知りませんでした
地獄には堕ちたくないですよねやっぱ
0662デフォルトの名無しさん
2008/02/15(金) 15:10:050663デフォルトの名無しさん
2008/02/15(金) 15:10:290664デフォルトの名無しさん
2008/02/15(金) 15:19:41ダイアログ2を開く処理はどこに書いてる?
ダイアログ1のOKボタンのハンドラに書いてないか?
0665デフォルトの名無しさん
2008/02/15(金) 15:22:06そんなの関係ねぇ〜
0666657
2008/02/15(金) 16:28:57処理の流れは、
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は消えます。
0667デフォルトの名無しさん
2008/02/15(金) 16:43:110668デフォルトの名無しさん
2008/02/15(金) 18:02:16nullに相当する時間をきめてやるとか、処理がめんどい
0669デフォルトの名無しさん
2008/02/15(金) 18:17:580670デフォルトの名無しさん
2008/02/15(金) 18:36:220671デフォルトの名無しさん
2008/02/15(金) 18:40:080672デフォルトの名無しさん
2008/02/15(金) 18:43:090673デフォルトの名無しさん
2008/02/15(金) 19:42:340674デフォルトの名無しさん
2008/02/15(金) 20:35:05ジェネリックかじってたけどこれは知らんかった
>>670
それも考えたけどフレムワクのバージョンとか
環境の違いで値が変わる可能性がないとは言い切れない
とか妄想したんで使ってない
>>673
その考えはなかった
0675デフォルトの名無しさん
2008/02/15(金) 22:35:36構文糖衣ってやつ。
0677デフォルトの名無しさん
2008/02/15(金) 23:45:01クラス型と値型との違いはないの?
0678デフォルトの名無しさん
2008/02/15(金) 23:51:49T?に対応するのはNullable<T>構造体だよ。
だからどっちも値型。
0679デフォルトの名無しさん
2008/02/16(土) 00:58:290680デフォルトの名無しさん
2008/02/16(土) 01:01:14最後までやれ
0681デフォルトの名無しさん
2008/02/16(土) 01:06:41なるほどなー
Nullableって使いやすくて大好きさ
0682デフォルトの名無しさん
2008/02/16(土) 12:50:26自分で列挙子を直接操作する以外の方法ある?
0683デフォルトの名無しさん
2008/02/16(土) 13:00:14> 並行して列挙
って何?
0684デフォルトの名無しさん
2008/02/16(土) 13:05:41ttp://blogs.wankuma.com/mnow/archive/2008/01/24/119056.aspx#119332
0686デフォルトの名無しさん
2008/02/16(土) 13:23:31であれば残念ながら標準では無いですな。
必要なら作るしかない。
ちなみにMicrosoft Parallel Extensions to .NET Framework 3.5の中にも
internalメソッドでZipWithが入ってる。
標準で入れてくれてばいいのに。
0687デフォルトの名無しさん
2008/02/16(土) 14:32:58zip with って名前が何だかださくない?
0688デフォルトの名無しさん
2008/02/16(土) 15:05:04ハンガリアン記法で調べてかかったページを見ても書いてないんだけど。
0689デフォルトの名無しさん
2008/02/16(土) 15:22:110690デフォルトの名無しさん
2008/02/16(土) 15:34:52CamelCaseと言います。
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だと「らくだ形式」って訳されてますな。
0691デフォルトの名無しさん
2008/02/16(土) 15:37:150692デフォルトの名無しさん
2008/02/16(土) 15:45:17>690のリンクに飛んだら、吹いた。
MSとWikiPediaならどっちもどっちだけど、 書いてる奴マジやる気ないんだな。
0693デフォルトの名無しさん
2008/02/16(土) 15:46:53少なくともハンガリアン記法は関係ない
0694デフォルトの名無しさん
2008/02/16(土) 15:52:320695デフォルトの名無しさん
2008/02/16(土) 16:02:38「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
0696デフォルトの名無しさん
2008/02/16(土) 16:13:07たとえば"SqlBulkCopy"というメソッドを"SBuC"みたいな書き方で補完できるらしい。
ttp://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+EAP+Notes#ReSharper4.0EAPNotes-CompletionwithCamelHumps
0697デフォルトの名無しさん
2008/02/16(土) 16:26:380698デフォルトの名無しさん
2008/02/16(土) 16:28:12元々の考えは別に悪い物ではない。
0699デフォルトの名無しさん
2008/02/17(日) 05:08:52また設定ファイルの一部はデータグリッドに表示して編集もしたいです。
0700デフォルトの名無しさん
2008/02/17(日) 05:22:320701デフォルトの名無しさん
2008/02/17(日) 09:36:59list.Sort( delegate( Hoge a, Hoge b ) {
return rand.Next( -1, 2 );
} );
のように、ランダムに-1〜1が返るようにして実装したつもりなのですが、動かすと
Array.Sort が x. CompareTo(x) を呼び出したときに、IComparer または依存する IComparable メソッドは 0 を返しませんでした。
という例外が発生します。
どこが悪いのでしょうか?
0702デフォルトの名無しさん
2008/02/17(日) 10:24:550703デフォルトの名無しさん
2008/02/17(日) 11:09:15DataSetとか。
でも、保存するのが単純な値などかによっても善し悪しあるから、
素直に2.0以降は独自クラス作ってシリアライズのが楽。
0704デフォルトの名無しさん
2008/02/17(日) 11:10:32エラーは、自分自身との比較は0を返せって意味だけど、
そもそもソートの比較関数は、例えばA<BでB<Cのとき、A<Cでなければならかなかったはず。
答えがランダムじゃだめだと思う。
一旦別のリストにコピーしてから、
そのリストの添え字をRandom.Nextで生成してAddしていけば?
0705デフォルトの名無しさん
2008/02/17(日) 11:40:16ランダム並べ替えが目的なら、昔からある定番アルゴリズムを使えばよし。
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;
}
}
0706デフォルトの名無しさん
2008/02/17(日) 11:41:43「i番目の要素をi以上配列の長さ未満のランダムな要素と交換する」をすべてのiについて行えばシャッフルできるはず。
ところで、
Enumの名前とプロパティの名前をできるだけ同じにしたいときがあるんですがどうしてます?
↓こういう場合です。
class MyIO
{
enum MyIOMode
{
Syncronized,
Asyncronized
}
public MyIOMode MyIOMode { get; set; }
MyIO()
{
MyIOMode = MyIOMode.Asyncronized;
}
}
System.IO.FileModeみたいに複数のクラスで使われるならenumを名前空間に直接書いてもいいんですが、
そのクラスでしか使わないとなるとクラスの中に書きたいと思うのです。
0707デフォルトの名無しさん
2008/02/17(日) 11:44:45ref にする意味ってあるの?
0708705
2008/02/17(日) 11:48:400709デフォルトの名無しさん
2008/02/17(日) 12:02:17for (int i = 1 だとまずくね?
Count=1 や 2 なら問題ないけど Count=3 だと
リスト先頭だった要素は Shffule 後にも先頭にいる確率が 4/9 になる
0710デフォルトの名無しさん
2008/02/17(日) 12:09:57MSのガイドラインによると,ネストした型を外に見せるのは推奨されない
外に書いていい
0711デフォルトの名無しさん
2008/02/17(日) 12:24:01そんなガイドラインあったっけ?
っていうか.NETのライブラリだって普通にネストした型を公開してるよね。
たとえばListViewItemCollectionなんてそのはずだけど
0712デフォルトの名無しさん
2008/02/17(日) 12:47:31http://msdn2.microsoft.com/ja-jp/library/ms229027(VS.80).aspx
コレクション系は例外に当たるみたい(List<T>+Enumeratorとか)
0713712
2008/02/17(日) 13:00:34稀に入れ子の型にすることもあるってことかな
単に親でしか使われないからというだけではなく
0714デフォルトの名無しさん
2008/02/17(日) 13:07:51それが言いすぎならせいぜい「村の掟」に過ぎないってことじゃないの?
0715デフォルトの名無しさん
2008/02/17(日) 13:19:19名前空間をあんまり深くしすぎるなとかだって同じだろ
単にMSの好みだから従わなくていいと言ってしまえばそれまで
0716デフォルトの名無しさん
2008/02/17(日) 13:43:170717デフォルトの名無しさん
2008/02/17(日) 14:06:20ちょっと下にスクロールするだけだったと思わなかったのは俺だけかなぁ
0718デフォルトの名無しさん
2008/02/17(日) 14:15:490719デフォルトの名無しさん
2008/02/17(日) 14:18:560720デフォルトの名無しさん
2008/02/17(日) 14:42:17え?ちょw今知ったwww本借りてきたのにwwwww
0721デフォルトの名無しさん
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と出てくるのでこれで通していたのですが
もっと良い手段があるのではないかと思い質問しました。
それではよろしくお願いします
0722デフォルトの名無しさん
2008/02/17(日) 15:24:30リソースとして埋め込むかテキストファイルにでも書いておいたらいいんでない?
0723デフォルトの名無しさん
2008/02/17(日) 15:47:36.NET Frameworkの中では
SR.GetString("キー文字列")
みたいにしてるよ
そういう風にしとくと後で実装変えられて便利
0724デフォルトの名無しさん
2008/02/17(日) 16:01:01以上の部分で、以下のようなエラーが出ます
エラー CS0103: 名前 'Properties' は現在のコンテキスト内に存在しません。
以前までは正常に動いていたためどこかを変えてしまったせいかとも考えたのですが
エラー文から見るにPropertiesが無いといっているように思えます
しかし、ソリューションエクスプローラから見るとProperties/Resources/IconFile1はしっかり存在します
こういった場合はどういう間違い・おかしな部分が考えられるのでしょうか?
0725デフォルトの名無しさん
2008/02/17(日) 16:24:31開発しているのにまずエラーコードやエラーメッセージでググらずに2chに書き込んでる部分かな
0726デフォルトの名無しさん
2008/02/17(日) 16:30:00なにを根拠に言っているか笑えてきますが既に検索済みです。
0727デフォルトの名無しさん
2008/02/17(日) 16:30:340728デフォルトの名無しさん
2008/02/17(日) 17:22:34ツールチップに関するコードは↓のみなんだけど、回避する方法は無いものか…
toolTip1.Active = false;
if( textBox1.Text.Length > 5 ){
toolTip1.Active = true;
toolTip1.Show( "hoge", textBox1 )
}
0729デフォルトの名無しさん
2008/02/18(月) 10:30:350730デフォルトの名無しさん
2008/02/18(月) 12:15:37この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
0731デフォルトの名無しさん
2008/02/18(月) 12:58:58Pointer って何? そういうクラスってことでいいの? だとしたらポインタとごっちゃになるろくでもない名前だけど。
比較ができないってエラーメッセージはググった限り .NET のエラーメッセージには存在しないようだけど?
0732デフォルトの名無しさん
2008/02/18(月) 13:49:25スマソ Point型と間違えたわ
2つのコレクションは、どちらもPoint型変数が入ってるのよ
0733730
2008/02/18(月) 14:10:040734デフォルトの名無しさん
2008/02/18(月) 17:03:211.xならContains使わずにループでunboxingして比較するしかないんじゃない?
0735デフォルトの名無しさん
2008/02/18(月) 17:30:49Add() する時にもちゃんと Point から Object にキャストしてるんでしょ?
0736デフォルトの名無しさん
2008/02/18(月) 20:24:08>>734
ソースコードはC#1.0のときに書かれたものですが、.今はNET2.0で使ってます
>>735
Add()するときはObjectにして加えてます。
なるほどそうか。
Contein()の引数を、Point型のままにしてますた。
Object型にキャストしてから引数に使えばいいんだ・・・。
やってみます。
どうもありがとうございます。
しかし、受け継いだソースがC#1.0向けに書かれたソースなので、
ArrayListを全部ジェネリックに書き換えるのが手間だと思っていたけど、
結局書き換えた方が後々楽な気がしてきた・・・orz
0737デフォルトの名無しさん
2008/02/18(月) 21:07:39アップキャストしてどうすんだよ
ポリモルフィズムを理解してないんじゃねーの?
0738デフォルトの名無しさん
2008/02/18(月) 21:21:040739デフォルトの名無しさん
2008/02/18(月) 21:52:220740デフォルトの名無しさん
2008/02/18(月) 21:59:300741デフォルトの名無しさん
2008/02/18(月) 21:59:330742デフォルトの名無しさん
2008/02/18(月) 22:03:04それ以外にまさかないよね?
0743デフォルトの名無しさん
2008/02/18(月) 22:08:24publicフィールドはゆるさーんて言いたいだけ?
0744デフォルトの名無しさん
2008/02/18(月) 22:13:52構造体ならともかく。
0745デフォルトの名無しさん
2008/02/18(月) 22:16:27個人的にはいまだに型名にプリフィクスつけるよ。
少数派なのは認識してるが、やっぱり構造体、クラス、列挙体がぱっと見ただけで
区別つく方が好都合な場面が多い。
特にクラスのつもりで構造体扱っちゃうような「致命的な凡ミス」を防げる蓋然性があがるし。
0746デフォルトの名無しさん
2008/02/18(月) 22:18:40命名規則はプロパティと同様にしておいて、
class Hoge{
public int Foo;
}
必要になったら
class Hoge{
private int foo;
public int Foo{ get{return foo;} set{foo=value;} }
}
あまりオススメはしない
0747デフォルトの名無しさん
2008/02/18(月) 22:38:37つーかVBer以外で使う人いるの?
結構人見てきたけどVBerだけだったよ。
0748デフォルトの名無しさん
2008/02/18(月) 22:42:24リフレクションで型名とかメソッド名が文字列に埋め込まれてると痛いが。
0749デフォルトの名無しさん
2008/02/18(月) 22:50:45私は、キャストが手間という理由でジェネリック使いまくり。
違う型のリストが複数あるとき、インテリセンスで要素の型が判別できるのが特に嬉しい。
>>737
ArrayList はポリもーフィズムとアップ・ダウンキャストを前提に使うものなのでは。
初心者用スレだし、一応ツッコミ。
0750デフォルトの名無しさん
2008/02/18(月) 22:52:14プレフィックスがないと入力が不便。
0751デフォルトの名無しさん
2008/02/18(月) 23:21:15って誰かが言ってたな。
0752デフォルトの名無しさん
2008/02/18(月) 23:29:43プロパティ名が全部p_なんちゃらとかなってて思わずワロタよ
0753デフォルトの名無しさん
2008/02/18(月) 23:30:030754デフォルトの名無しさん
2008/02/18(月) 23:55:21privateなフィールドなら好きにすればいいが、public メンバにやったら殺す
0755デフォルトの名無しさん
2008/02/19(火) 00:04:58元々のハンガリアンは変数の型をプレフィックスにするんじゃないぜ!!
って、Joelが言っている。
http://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
0756デフォルトの名無しさん
2008/02/19(火) 00:16:12publicなフィールドってやっぱだめ?
set getでフィールド渡すだけだと、いちいちプロパティの宣言するのが面倒くさくて
ついついやっちまうんだけど。
0757デフォルトの名無しさん
2008/02/19(火) 00:19:24public int MyProperty { get; set } これだけ
0758デフォルトの名無しさん
2008/02/19(火) 00:20:31画面への出力にはDoWorkからフォーム操作を行おうとすると「あるスレッドで作成された
コントロールに対して、別のスレッドのコントロールを親にすることはできません。」と出ます。
それは分かるんですが、フォームへの描画自体に時間がかかる場合、その処理自体を
バックグラウンドで行うにはどうやれば良いのでしょうか。
0759デフォルトの名無しさん
2008/02/19(火) 00:21:220760758
2008/02/19(火) 00:43:11複数のウィンドウ(タブ)を追加するといった処理をしたいです。(タブを追加する処理が重い)
バッファに書き込む方法はSetStyle()だと思うんですが、どうも親ウィンドウのフォームでは
SetStyle()が指定できないようでした。。
0761デフォルトの名無しさん
2008/02/19(火) 00:55:360762デフォルトの名無しさん
2008/02/19(火) 01:38:40型名とかコントール名とか、どうやって省略したらいいか困るときがある
int int_x=0;
string str_name = "taro";
textbox tbx_input = new textbox();
みたいな感じで頭に三文字略称をつけろとかいう
つまんないローカルルールが社内で流行ってて
しかも人によって略称が違うときがあって逆に混乱するという
ちゃんと取り決めしてないのにプレフィックスつけろって…
プレフィックス一覧とかあると助かるんだけど、いいのが ない
0763デフォルトの名無しさん
2008/02/19(火) 01:54:450764デフォルトの名無しさん
2008/02/19(火) 01:55:160765デフォルトの名無しさん
2008/02/19(火) 01:55:18その他の型名を付けることに関しては全く無意味だと思う
0766デフォルトの名無しさん
2008/02/19(火) 03:23:59調べたところ、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番目の方法はどこにどう実装していいものやらわからず、またどうやって検出するのかもわからない状況です。
必要あればサンプルも貼ります。
0767デフォルトの名無しさん
2008/02/19(火) 03:32:52TCPに任せちゃうんじゃなくて,自分でソケットをラップした通信ライブラリを作ってそこでACKみたいなのをやりとりすれば
直ぐ確認できるはず
0768デフォルトの名無しさん
2008/02/19(火) 03:45:01それをプロパティにするとなんかメリットあるの?
いつもpublicフィールドにしちゃうけど
0769デフォルトの名無しさん
2008/02/19(火) 08:23:15型名っていうかクラスと構造体とenum(とそれぞれのインスタンス)を
区別するためだけ、なんだけどね
要はクラスならcを頭につけるとかそういうやつ
0770デフォルトの名無しさん
2008/02/19(火) 09:37:26描画からみの処理自体を細切れにしてやるしかないな。
0771デフォルトの名無しさん
2008/02/19(火) 09:41:50あとで実装変えられる
0772デフォルトの名無しさん
2008/02/19(火) 09:51:58あーやっぱめんどくさいからpublicフィールドで十分かな(´・ω・`)
0773デフォルトの名無しさん
2008/02/19(火) 09:53:020774デフォルトの名無しさん
2008/02/19(火) 11:14:22C#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 = データテーブル;
0775デフォルトの名無しさん
2008/02/19(火) 11:16:41それぐらいだともはやこれでいい気がするけどな。
dataGridView1.DataSource = new []
{
new { 行番号 = 1 , 内容 = "ABC" } ,
new { 行番号 = 2 , 内容 = "DEF" } ,
new { 行番号 = 3 , 内容 = "GHI" } ,
};
0776デフォルトの名無しさん
2008/02/19(火) 11:25:40とふと気付くとプロパティーを省略形にしていたorz
C#3.0では、get; set; と書くと、自動的に中身が作られます。
0777デフォルトの名無しさん
2008/02/19(火) 11:39:29もう戻れないな……
0778766
2008/02/19(火) 11:54:56御返事ありがとうございます。
> TCPに任せちゃうんじゃなくて,自分でソケットをラップした通信ライブラリを作ってそこでACKみたいなのをやりとりすれば
> 直ぐ確認できるはず
自分でそこまでできるスキルがありませんorz サンプルがあれば頑張って追いかけてみるんですが素で書くのは無理そうです。。。
サーバ側が自分でいじれればアプリ側でチェックかけるのですが、サーバ側は担当外なので変更不可です。。。
0779デフォルトの名無しさん
2008/02/19(火) 12:48:55こっちは門外漢なのでヒントだけおいておきますね
http://support.microsoft.com/kb/239924/ja
0781デフォルトの名無しさん
2008/02/19(火) 15:11:44おおお、そうなのか!
2008のpropスニペットで{get;set;}としか入らないから
なんじゃこりゃ…と思っていたところ。
0782デフォルトの名無しさん
2008/02/19(火) 15:25:50インスタンスを文字列で生成するには
Activator.CreateInstance(Type.GetType("クラス名"));
で生成するのは判ったんですが、"クラス名"が存在しているかどうか(生成可能かどうか)を
事前に判断するにはどうしたらいいでしょうか?
データを読んでいって、専用の派生クラスがあればそれで、
無ければ汎用の基底クラスで生成しようと思ってるんです。
ご教示よろしくお願いします。
0783782
2008/02/19(火) 15:37:05もしくはCreateInstanceして例外をキャッチすればいいのか。
0784デフォルトの名無しさん
2008/02/19(火) 15:44:07よくPGの人は、HogeとかHogehogeとかFooとかって書いてるけど、なんでへんてこりんな単語を使うの?
ホゲ、ホゲホゲ、ホゲ、フーーー!とかってカタカナで書くと、ぬこが喧嘩してるのかと思う
0785デフォルトの名無しさん
2008/02/19(火) 15:48:04最初からタブを用意しておいてHideにしておき、必要が出たらVisibleにするのはどうなの?
0786デフォルトの名無しさん
2008/02/19(火) 16:27:27列挙型の変数でToString使用しようとすると、『使用しないでください』、といったポップアップの説明が出ます。
代替としてSystem.Enum.Parseを使えと言ってますが、
現在の値の文字列を取得したいので、GetNameのような気がしますがどうでしょうか?
0787デフォルトの名無しさん
2008/02/19(火) 17:07:01複数条件を確認する場合のif文の書き方について教えてください。
こんな感じで書きたいのですが、C#の場合はエラーとなってしまいます。
C#ではどのように書いたらよいのでしょうか。
if((a=="")or(b="")){
}else{
}
いくつか検索をしてみたのですが、かっこのなかの条件が一つの場合の
例しかヒットしませんでしたのでここで質問をしてみました。
どうぞよろしくお願いします。
0788デフォルトの名無しさん
2008/02/19(火) 17:08:31||
0789デフォルトの名無しさん
2008/02/19(火) 17:12:09ありがとうございました。
0790デフォルトの名無しさん
2008/02/19(火) 17:46:22http://ja.wikipedia.org/wiki/Hoge
0791デフォルトの名無しさん
2008/02/19(火) 18:27:110792デフォルトの名無しさん
2008/02/19(火) 18:48:46メタ変数ってやつだよ
0793デフォルトの名無しさん
2008/02/19(火) 19:23:06日産フーガって・・・メタ構文変数だったのか
0794デフォルトの名無しさん
2008/02/19(火) 21:27:36A B
----------
1 日本
1 東京
1 大阪
2 アメリカ
2 ニューヨーク
3 中国
3 北京
のような形で格納されています。
これをGridに表示させる際に
1 日本 東京 大阪
2 アメリカ ニューヨーク
3 中国 北京
といった形で出力したいのですが、どのようにコードを組んだらいいのか
悩んでおります。
何か良い方法などありますでしょうか?
0795デフォルトの名無しさん
2008/02/19(火) 21:32:27Aカラムに該当するレコードを配列に格納
while(配列が存在するまで):
配列からBカラムを抽出
end
end
0796デフォルトの名無しさん
2008/02/19(火) 21:36:28こんな感じ?
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");
}
0797デフォルトの名無しさん
2008/02/19(火) 21:43:16テーブル構造を見直すか、アプリ側で処理する。
0798デフォルトの名無しさん
2008/02/19(火) 21:56:550799デフォルトの名無しさん
2008/02/19(火) 22:05:52前ブランクのあるなしかい?
0800デフォルトの名無しさん
2008/02/19(火) 22:11:111 日本 東京
普通こんな感じにしないか
0801デフォルトの名無しさん
2008/02/19(火) 22:12:44そこはスルーでいいんじゃないかと。
0802デフォルトの名無しさん
2008/02/19(火) 22:23:58気持ちはわかるが、国コードと国名が冗長な気がする
0803デフォルトの名無しさん
2008/02/19(火) 22:40:350804デフォルトの名無しさん
2008/02/19(火) 22:43:170805デフォルトの名無しさん
2008/02/19(火) 23:38:270806デフォルトの名無しさん
2008/02/19(火) 23:40:2481<>jp<>tokyo
みたいにすれば最強。
で、レコード一枚でケツに繋げていくの。
0807デフォルトの名無しさん
2008/02/20(水) 09:59:09StringやImage等のオブジェクトをやりとりするのは問題ないのでしょうか?
0808デフォルトの名無しさん
2008/02/20(水) 14:43:160809デフォルトの名無しさん
2008/02/20(水) 14:45:030810807
2008/02/20(水) 15:05:03System.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を使っても大丈夫なのかなと。
0811デフォルトの名無しさん
2008/02/20(水) 15:08:38リモート使った場合は余計にシラネ。
0812デフォルトの名無しさん
2008/02/20(水) 15:14:472.0/3.0にSP1を当てておけばより確実だと思う。
0813デフォルトの名無しさん
2008/02/20(水) 19:34:41分類基準は一番最初の数値じゃないのかな?
昔のコボラーさんたちが良く使うで、国番号でソートしておいて、国番号が変わったところで切り出すという常套手段。
C#でやるなら 796 だね、これなら番号がソートできないデータ型でもいける、データ構造を変えるなら二重テーブル、XMLを取り扱う気分で。
0814デフォルトの名無しさん
2008/02/20(水) 19:40:18ジェネリックのコレクションにadd()メソッドで加えたデータを、データグリッドに表示させる方法を教えてください
0815デフォルトの名無しさん
2008/02/20(水) 20:33:08そういうレベルの話じゃなくてRDBの行に順序なんてない(ORDER BY
でも同順位内は不定)ので「初めに返ってくる」とか「一番上」とかは
不定。意味ないから同じ順で返ってくること多いが毎回ランダムで返って
来ても正しい動作。
つーわけで質問のテーブルだと格納する情報が足りないので不可能が
答えになってしまい >>797 みたいな答えしかできないと
0816デフォルトの名無しさん
2008/02/20(水) 21:13:08追加するデータのメンバーはフィールド?、それともプロパティー?
表示されるのはパブリックなプロパティーのみだよ 774 を参考にしてみて。
それでも解らなかったら詳細をどうぞ。
>>815
回答する側で勝手に必要条件やしてませんか?
……わかんないけど
0817デフォルトの名無しさん
2008/02/20(水) 21:25:50なんかこわいっすね、一旦シリアライザでシリアライズしてから渡したほうが無難そうな予感がする。
バイナリフォーマッタ辺りでやれば大きくパフォーマンスも落ちないだろうし、自分ならそっち方面を狙いたいですね。
もし使うなら、こいつです
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
0818デフォルトの名無しさん
2008/02/21(木) 00:24:12怖いって……
実行エンジンのバージョンとコンパイルされたアセンブリのバージョンと
ごっちゃにするなよ
つーかBinayFormatterこそめちゃくちゃバージョン依存だろう
xmlの方がまし
0819デフォルトの名無しさん
2008/02/21(木) 00:42:080820デフォルトの名無しさん
2008/02/21(木) 01:21:14おぃおぃ(^^;
0821814
2008/02/21(木) 01:40:00C#2.0で、クラスを
class 行の定義
{
int _行番号
string _内容
public int 行番号
{
get{ return _行番号;}
set{ _行番号 = value;}
}
public string 内容
{
get{ return _内容;}
set{ _内容 = value; }
}
とした場合、C#2.0で、行の定義クラスを配列として使う方法が分かりません。
この方法(クラスのインスタンスを配列として使う方法と、その場合の初期化)を教えてください
行の定義[] データテーブル = new 行の定義[]();
としてもエラーが出てしまうし、
行の定義[] データテーブル = new 行の定義();
としてもエラーが出てしまいます
0822デフォルトの名無しさん
2008/02/21(木) 01:49:06横やりだけど、()がいらない
行の定義[] データテーブル = new 行の定義[];
初期化をいれるなら
行の定義[] データテーブル = new 行の定義[]
{
new 行の定義( 初期化内容 ) ,
new 行の定義( 初期化内容 ) ,
...
};
"new 行の定義"でコンストラクタでメンバを初期化する機能は2.0には無いので、引数付きコンストラクタを作っておく必要がある。
0823デフォルトの名無しさん
2008/02/21(木) 07:08:390824デフォルトの名無しさん
2008/02/21(木) 13:34:300825デフォルトの名無しさん
2008/02/21(木) 14:24:462.0でさえやっと普及した段階なのに、作りやすいからという理由だけで3.5を入れさせるわけにもいかず・・・。
0826デフォルトの名無しさん
2008/02/21(木) 14:32:05その分時間かかるけどな!!
0827デフォルトの名無しさん
2008/02/21(木) 14:38:42じゃあしょうがないね。
ちなみにXPでも動く .Net3.5Framework はウインドウズアップデートでどうぞ。
客にやらせてもこの程度なら差し支えないかと、面倒ならインストーラーにぶち込んでもいいと思うけど。
これもClickOnceを使っているなら、意識する必要ないかもね。
インストーラーは開発前に吟味しておくとこういう時にいい結果を生むので手抜きはしないように。
0828デフォルトの名無しさん
2008/02/21(木) 15:13:05C# 3.0/.NET Framework 3.0/3.5を使うかどうかは別として、
VS 2008は.NET Framework 2.0用のアプリケーションも書ける。
0829デフォルトの名無しさん
2008/02/21(木) 16:25:33private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
form2.Show(this);
}
とすれば、一応表示されるのですが
タスクバーにForm2のアイコンが表示されるのです。
アイコン表示しなくするにはどうすればいいのでしょうか?
0830デフォルトの名無しさん
2008/02/21(木) 16:27:200831デフォルトの名無しさん
2008/02/21(木) 16:30:01ShowIconってあるじゃないっすか
ありがとうございます
0832デフォルトの名無しさん
2008/02/21(木) 19:08:36配列版は出ているので、ジェネリックのコレクション版で 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でも大丈夫……だと思う
0833814
2008/02/21(木) 19:43:48ありがとうございます。勉強になります
>>832のコードを試してみたところ、2.0でそのまま動きました。
配列よりジェネリックのコレクションの方が勝手がいいので、すごい参考になります。
0834デフォルトの名無しさん
2008/02/21(木) 19:51:19という事は、追加削除もしたいと?
ならDataSourceにtableを直接セットせずにBindingSourceでアダプタをかましてからセットすると追加なども可能になるよ、参考までに。
0835デフォルトの名無しさん
2008/02/23(土) 00:18:56ちょっと処理をしてその結果を渡したいんだけど,一つの式で書けるなら
メソッド呼び出しも含めて実質何でもできると考えていいの?
0836デフォルトの名無しさん
2008/02/23(土) 01:04:07メソッド呼び出せばなんでも出来る
0837デフォルトの名無しさん
2008/02/23(土) 13:09:27パズル的なのを作りたいんだが…
0838デフォルトの名無しさん
2008/02/23(土) 13:19:450839デフォルトの名無しさん
2008/02/23(土) 13:25:290840デフォルトの名無しさん
2008/02/23(土) 14:12:22とりあえずひな形を作るためにシリアライズしたのですが、<PackedValue>4278848010</PackedValue>
というものが吐かれていました。
RGB+αとPackedValueの相互変換ができれば解決すると思うのですが、
ググってもよく分かりませんでした。
相互変換のやり方を教えていただけると助かります。
よろしくお願いいたします。
0841デフォルトの名無しさん
2008/02/23(土) 14:17:330842デフォルトの名無しさん
2008/02/23(土) 14:46:35RGB=10,10,10のColorをデシリアライズして出てきたPackedValueが
4278848010で、
同じColorをToArgbして表示してみると、-16119286だったんですが…
0843デフォルトの名無しさん
2008/02/23(土) 14:50:260844デフォルトの名無しさん
2008/02/23(土) 14:52:200845デフォルトの名無しさん
2008/02/23(土) 14:55:070846デフォルトの名無しさん
2008/02/23(土) 15:03:540847デフォルトの名無しさん
2008/02/23(土) 15:11:580848デフォルトの名無しさん
2008/02/23(土) 15:13:20取り扱いが面倒くさすぎ。
Color.FromArgb(0xFF0a0a0a)とか書けないから、いちいち
Color.FromArgb(0x0a, 0x0a, 0x0a)って書いてる。
Cの書き方に慣れてないから知らないだけなのかな。
ひょっとしてもっといい書き方あるんですか?
0849デフォルトの名無しさん
2008/02/23(土) 15:14:52うん余計面倒だな
0850デフォルトの名無しさん
2008/02/23(土) 15:17:16intの方が楽でええがな
ビット演算子だけで扱えるし
0851デフォルトの名無しさん
2008/02/23(土) 15:17:480852デフォルトの名無しさん
2008/02/23(土) 17:44:03このスレではいじめ禁止
0853デフォルトの名無しさん
2008/02/23(土) 17:50:04WinAPIがそういう仕様だから、互換の関係しょうがないだろうと思う
最近HDR(輝度レンジの大きいRGB表現)が登場してRGBが浮動小数点表現になってきつつあるので、どこかの段階で作り変える必要はあるかもしれない。
0854デフォルトの名無しさん
2008/02/23(土) 17:50:55これだけ長所があるのに何を今更
0855デフォルトの名無しさん
2008/02/23(土) 17:54:57848の不満はAPIとは関係ないよ uintじゃ無いのが面倒ってだけだから
それにAPIとの互換を重視するならABGRじゃないと駄目だし
今更GDI+拡張するとも思えん
WPFならすでに各色floatで表現できる
0856デフォルトの名無しさん
2008/02/23(土) 20:34:210857デフォルトの名無しさん
2008/02/23(土) 21:19:36プログラムがややこしくなりすぎリる
0858デフォルトの名無しさん
2008/02/23(土) 23:32:56private 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);
まずは上記のようにして線を引いてみようと思ったのですが失敗してしまいます。
どういった方法があるのでしょうか?
0859デフォルトの名無しさん
2008/02/23(土) 23:56:34署名→アセンブリの署名にチェック→キーファイルを新規作成(パスワード保護無し)してkeyfile.snkを作成
として署名しました。
このクラスライブラリの公開キートークンを知りたいのですが、IDE上から調べる方法はあるのでしょうか?
VC#2008Expressです。
0860デフォルトの名無しさん
2008/02/24(日) 01:05:16どこで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);
}
0861デフォルトの名無しさん
2008/02/24(日) 04:12:20何で正規表現リテラルが言語仕様に無いんだよ。
この言語設計者ってアホなの?
0862デフォルトの名無しさん
2008/02/24(日) 05:59:555.2にしてみたら「@」も使えるっぽくなっているんですが
一時変数として「@」を使っていたところまでプレースホルダと判定されちゃってエラーに;;
この対処法をご存知の方いませんでしょうか?
0863デフォルトの名無しさん
2008/02/24(日) 06:22:28俺はバリバリ使ってるが・・・
0864デフォルトの名無しさん
2008/02/24(日) 06:34:110865デフォルトの名無しさん
2008/02/24(日) 06:54:19あと開発環境が重すぎ
0866デフォルトの名無しさん
2008/02/24(日) 07:01:57だけど.NET使ったら戻れないな
0867デフォルトの名無しさん
2008/02/24(日) 07:08:460868デフォルトの名無しさん
2008/02/24(日) 07:53:470869デフォルトの名無しさん
2008/02/24(日) 08:52:44それを作ってた開発者が
C#を開発したんじゃなかったっけ
0870デフォルトの名無しさん
2008/02/24(日) 09:09:15Anders Hejlsbergね。
元ボーランド社員のDelphi開発者。
現MS Technical Fellow。C#開発者で、.NET Frameworkの設計にも深く関わってる。
0871デフォルトの名無しさん
2008/02/24(日) 10:06:22サーバーとなっている方の親クラスに通知する方法が思いつきません。
下記のようにやってみたのですが、これだと呼出毎にインスタンスが出来てしまって
イベントの意味がなくなってしまいます・・・
なにか良い方法はないでしょうか?
// server
class MsgServer : MarshalByRefObject
{
public event EventHandler CallRecv = null;
public string Recv(string message)
{
if (CallRecv != null) CallRecv(this, new EventArgs());
}
0872デフォルトの名無しさん
2008/02/24(日) 10:34:48staticでインスタンスを持っておいて、それにアクセスした。
0873デフォルトの名無しさん
2008/02/24(日) 18:06:06stringの拡張メソッドにMatchでもつけてみたらどうだ
0874デフォルトの名無しさん
2008/02/24(日) 18:09:400875デフォルトの名無しさん
2008/02/24(日) 21:19:020876デフォルトの名無しさん
2008/02/24(日) 23:32:24今の実装はどうなってるんだろうね
0877デフォルトの名無しさん
2008/02/24(日) 23:46:27正規表現のコンパイルオプション次第で、LCG使ってIL出力して高速化できた気がする。
あの部分のソースコードも公開されたのかな。後で見てみるか。
0878デフォルトの名無しさん
2008/02/25(月) 00:22:54HttpRequestHeaderで既に定義されている環境変数(User-Agentなど)を
HttpWebRequest.Headersに直接指定したいのですが、
---
このヘッダーは、適切なプロパティを使用して変更しなければなりません。
パラメータ名: name
---
このようなエラーが出てしまって出来ない状況です。
WebClientでは可能なのですが、HttpWebRequestのほうが細かいことができる感じなので
どうにかして指定する方法はないものでしょうか?
具体的にはtextBoxにベタ書きしてある複数行のリクエストヘッダを直接指定しようとしています。
どうかご教示お願い致します。
0879デフォルトの名無しさん
2008/02/25(月) 00:34:320880デフォルトの名無しさん
2008/02/25(月) 01:25:15HttpWebResponseで返されたHTMLに含まれているボタンを押すには
どうすればいいでしょうか?
具体的にはHTMLソース上で
<input type="submit" name="login" value="ログイン" accesskey="s" />
と書かれているボタンオブジェクトです。
よろしくお願いいたします。
0881デフォルトの名無しさん
2008/02/25(月) 01:30:49<input type="submit" name="login" value="ログイン" accesskey="s" />
を包んでる<form …>タグはどうなってるの?
そこに書いてあるmethodによって、actionに書いてあるURLへのデータの送り方が変わってくる。
「HTML フォーム cgi」とかで検索するともっと詳しく分かるかもね。
0882デフォルトの名無しさん
2008/02/25(月) 01:33:06ありがとうございます
<form action="http://xxxxxxxxx/index.php" method="post" style="margin-bottom:0px;">
と書いてあるのでPostメソッドでしょうか?
0883デフォルトの名無しさん
2008/02/25(月) 01:37:19http://www.atmarkit.co.jp/fdotnet/dotnettips/318webpost/webpost.html
0884デフォルトの名無しさん
2008/02/25(月) 02:23:420885デフォルトの名無しさん
2008/02/25(月) 02:44:19それでやってみましたが、もとのログイン画面に戻ってきてしまいますね・・・
念のため、fiddlerでブラウザが送信しているPOSTメッセージをキャッチして
比較してみたのですが、同じものを送ってるんですが・・・・
Windowsアプリのように、Clickイベントを送ることはできないのでしょうか?
0886デフォルトの名無しさん
2008/02/25(月) 02:55:500887デフォルトの名無しさん
2008/02/25(月) 03:09:27送信文字列に「&」が含まれていたようで、
それを個別に%26に変えないといけないようでした
お騒がせしました
ありがとうございました
0888デフォルトの名無しさん
2008/02/25(月) 10:27:06消すにはどうすればいいでしょうか?
0889デフォルトの名無しさん
2008/02/25(月) 10:29:51ControlBoxとTextをなくすとか
Regionでクライアント領域だけにするとか
0890デフォルトの名無しさん
2008/02/25(月) 13:53:00ありがとうございます
FormBorderStyle.Noneが一番シンプルでよさそうです
0891デフォルトの名無しさん
2008/02/25(月) 15:45:24>何で正規表現リテラルが言語仕様に無い
・・・・
まず初心者用の本を買って読めよw
0892デフォルトの名無しさん
2008/02/25(月) 16:02:090893デフォルトの名無しさん
2008/02/25(月) 16:03:120894デフォルトの名無しさん
2008/02/25(月) 16:05:38http://dobon.net/vb/dotnet/string/regexmatch.html
これでも読んでろw
0895デフォルトの名無しさん
2008/02/25(月) 16:12:01Regexオブジェクトのシンタックスシュガーになるだけじゃね
0896デフォルトの名無しさん
2008/02/25(月) 16:31:05>>895 世の中便利になると懐古厨は必ずそう騒ぐ
0897デフォルトの名無しさん
2008/02/25(月) 16:33:43?
0898デフォルトの名無しさん
2008/02/25(月) 16:37:180899デフォルトの名無しさん
2008/02/25(月) 16:39:340900デフォルトの名無しさん
2008/02/25(月) 16:41:56機能がクラスにあればそれで十分
0901デフォルトの名無しさん
2008/02/25(月) 16:47:210902デフォルトの名無しさん
2008/02/25(月) 17:05:09文字列に対してたとえば / 演算を正規表現によるマッチングで
foreach(var s in "abc123abc123"/"(a*123)"){
...
}
とか出来たら,正規表現云々がコード上で一目でわかってくる気がする
もちろんこのまま実装したらキモくて使い物にならないけどな
C#も演算子の定義とか出来ればいいのに.
0903デフォルトの名無しさん
2008/02/25(月) 17:17:06ぐらいでええやん?
0904デフォルトの名無しさん
2008/02/25(月) 17:18:100905デフォルトの名無しさん
2008/02/25(月) 17:23:440906デフォルトの名無しさん
2008/02/25(月) 18:33:59ライブラリにあんだろw
0907デフォルトの名無しさん
2008/02/25(月) 18:39:50コンパイル時に文字列から正規表現オブジェクトを組み立てるD。
http://www.kmonos.net/alang/d/2.0/templates-revisited.html
コンパイル時に演算子多重定義で正規表現オブジェクトを組み立てるC++。
http://www.boost.org/doc/html/xpressive/user_s_guide.html
0908デフォルトの名無しさん
2008/02/25(月) 18:45:46BOOSTは言語仕様じゃなくてライブラリだが
君好みのライブラリが欲しいなら自分で作れば?w
0909デフォルトの名無しさん
2008/02/25(月) 18:50:28便利とか不便とかの問題だからあなたにいらなくてもほしい人はいるのです
0910デフォルトの名無しさん
2008/02/25(月) 18:55:20自分で作れよ
0911デフォルトの名無しさん
2008/02/25(月) 19:14:31C#の正規表現はプリコンパイルすることも実行時コンパイルすることも
コンパイルせず普通に使うことも出来るぞ
0912デフォルトの名無しさん
2008/02/25(月) 19:23:27どっちもライブラリだけど、言語仕様に欲しいって言ったら、
簡単に書けることのほかの理由は
コンパイル時にどうにかしたいって話に向かうよなと思って振ってみただけ。
0913デフォルトの名無しさん
2008/02/25(月) 19:24:590914デフォルトの名無しさん
2008/02/25(月) 19:25:460915デフォルトの名無しさん
2008/02/25(月) 19:37:355000倍ぐらい良かった気がするな
0916デフォルトの名無しさん
2008/02/25(月) 19:50:44正規表現のリテラルがあればテキスト処理が楽になるから実装よろ
0917デフォルトの名無しさん
2008/02/25(月) 19:54:200918デフォルトの名無しさん
2008/02/25(月) 19:56:320919デフォルトの名無しさん
2008/02/25(月) 19:58:430920デフォルトの名無しさん
2008/02/25(月) 20:10:55正規表現リテラルあってもいいけど、「linqなんて実装するくらいなら〜」てな
意見は単純に阿呆かと思う。
0921デフォルトの名無しさん
2008/02/25(月) 20:17:26そもそも正規表現が使われる範囲がそんなんだからなぁ
で,思いついた.
ユーザによるリテラルの実装をすればもっと幸せになれると思うんだ.
class complex{
private r, i;
public static literal `(literal L){
// L はコンパイラによって取得されたソース中のリテラル
MatchCollection mc=L.entity/RegExWrapper`\(([0-9]*)\s,\s([0-9]*)\`;
r=new int(mc.Item[0].Value);
i=new int(mc.Item[1].Value);
}
// その他の複素数の演算は割愛
}
public static class RegExWrapper{
public static literal `(literal L){
// 割愛
}
public static MatchCollection operator /(string lhs, RegExWrapper rhs){
// rhsの正規表現を使ってlhsからMatchCollectionを生成
}
}
たとえば complex`(1,2)`*complex`(3,4)` は(1+2i)(3+4i)と等しい,とかいうことができちゃったりすると楽しそう.
こうすれば可用性が格段にあがるな
0922デフォルトの名無しさん
2008/02/25(月) 20:17:430923デフォルトの名無しさん
2008/02/25(月) 20:17:580924デフォルトの名無しさん
2008/02/25(月) 20:22:40クエリ式はクエリ式がないとどうしても書きにくい処理があるから存在している
0925デフォルトの名無しさん
2008/02/25(月) 20:25:180926デフォルトの名無しさん
2008/02/25(月) 20:28:25new Complex(1,2) * new Complex(3,4)と書けばいいだろう
たくさん出てくるなら関数作って
c(1,2) * c(3,4)でもいいし
0927デフォルトの名無しさん
2008/02/25(月) 20:30:40それは使い方が悪いとしか
仮に正規表現にリテラルがあったとしてもコードのあちこちにべたべた張り付けまくったらグチャグチャだろ?
0928デフォルトの名無しさん
2008/02/25(月) 20:31:27それは言っても詮無い話だ
0929デフォルトの名無しさん
2008/02/25(月) 20:44:46全くだ。
(1+2i) * (3+4i)と書けるようにしろという話のならまだ良かった。
0930デフォルトの名無しさん
2008/02/25(月) 20:48:260931デフォルトの名無しさん
2008/02/25(月) 20:52:400932デフォルトの名無しさん
2008/02/25(月) 20:53:36Resultとかもろもろであまり困ったことないのだが異端なのか
0933デフォルトの名無しさん
2008/02/25(月) 21:15:23ものすごく普通
0934デフォルトの名無しさん
2008/02/25(月) 21:16:02http://www.kmonos.net/alang/d/2.0/cppcomplex.html
0935デフォルトの名無しさん
2008/02/25(月) 21:16:240936デフォルトの名無しさん
2008/02/25(月) 22:35:09汎用言語に何を求めているんだ
理想の複素数が欲しければちょっとした言語を作って
動的にILでも生成すりゃいいだろ
0937デフォルトの名無しさん
2008/02/25(月) 22:40:280938デフォルトの名無しさん
2008/02/25(月) 23:04:35Javaを見習え
地味にadd()やsub()メソッドでがんがるんだよ
一時オブジェクトなんかキニシナイ
0939デフォルトの名無しさん
2008/02/26(火) 00:47:00ただしただ実装するだけじゃ駄目だ、そんなのならライブラリでも構わない、C#コンパイル時にこれもコンパイルして
文法チェックした上でコンパイルエラーを出すぐらいやってくれれば入れてもらってもいい、そこまでやるなら十分有用。
それと、正規表現同士の結合演算子を実装するといいと思う、それは部分的な正規表現を結合して一つの正規表現ができるという正規表現の性質としてもいいし、
文法チェックした上で組み立て自在となれば大変便利。
とかとか考えていたら、いっそ LINQ 並に強化された Language INtegrated yacc&lex ぐらい作ってもらえるとユカイかもしれない。
boost::spirit 以上の能力を持たせてくれればグレイト。
LINQでは、Sql Xml と個別実装ができる汎用性をもつし、いっそ構文定義と解析手法を分解して簡単文法解析から超ヘビー級解析まで自在になったらいい。
やってくれヘジたん。
0940デフォルトの名無しさん
2008/02/26(火) 00:49:37そこまでいくと、C#である必要あるの?という気もするな。
せっかくCLRがあるわけで、Javaじゃあるまいし、pure C#な必要なくて。
0941デフォルトの名無しさん
2008/02/26(火) 00:50:13いや、なんとなくなんだけどさ
0942デフォルトの名無しさん
2008/02/26(火) 00:50:530943デフォルトの名無しさん
2008/02/26(火) 00:53:41テキスト処理の問題の9割を解決できる新たな枠組みを作ろうとするだろう
0944デフォルトの名無しさん
2008/02/26(火) 02:28:36ならば間飛ばして、テキスト解析toLINQ
はいLINQの強化で決まり。
0945デフォルトの名無しさん
2008/02/26(火) 03:48:25あれば教えて欲しいです。
無ければないでList<T>等から拡張すればいいのですが、
最初からあるのならそれをと思ってググったのですが、
見あたんない。
欲しい機能は"root->node->subnode->leaf"の様な文字列で
leaf(にある)オブジェクトを取得できるとか、
leaf自身で自分のパス("root->node->subnode->leaf")を取得できるとか
等なんですが。後者はTreeViewのTreeNode.FullPath的な感じです。
あ、みなさん木構造ってどのように扱ってます。
上に書いたのは一種の多次元配列みないな物ですが、
他には直近の親もしくは子の識別子だけを
各オブジェクトに保持した隣接モデルもあります。
ケースバイケースって言われりゃそれまでのような気もしますが。
0946デフォルトの名無しさん
2008/02/26(火) 06:42:42自分で作れよTreeぐらいw
BinaryTreeとかBTreeとかKDTreeとか
用途によって使い分ける部分が多すぎるだろう
0947945
2008/02/26(火) 14:43:53レスどーも。
"Treeぐらい"自分で作れるよ。てか既に作ったんだよ。
んでも、ちょっとスマートさに欠けているというか、ちゃんと動くのは動くが、
経験がまだまだ少ないものだから、「これでいいのか?」と不安なんだよ。
TreeViewとかXMLとか木構造はいろいろ使われているので、
"Treeぐらい"最初から用意されているのかなと思ったんだよ。
"そこ"には自分で思いつかなかった有用なメソッドがあるかもしんない。
なんてね。
無いと判ったら自分で作り込むだけ、DOMみないな大げさなもんが必要じゃないしね。
0948デフォルトの名無しさん
2008/02/26(火) 15:54:46スレ違い
Introduction to Algorithms読め
0949デフォルトの名無しさん
2008/02/26(火) 15:57:23「C# Tree」でググッたら3つ目に出た。
A Tree Collection
ttp://www.codeproject.com/KB/recipes/treecollection.aspx
Treeぐらいっておっしゃいますが、コレクションに追加されるような汎用の木って、
利便性を高めようとすると「木の操作」って意味ではDOM以上に
複雑になりそうな気がしますが……。
0950デフォルトの名無しさん
2008/02/26(火) 15:59:012分木で十分なのにm分木にされても非効率だったりするし
0951デフォルトの名無しさん
2008/02/26(火) 16:20:50レイヤードウィンドウ、リージョンウィンドウどっちですか?
0952945
2008/02/26(火) 17:31:59>>948
ちょっとネタがそれてしまってスマソ。
もともとの「木構造に適したコレクションの有無」ならスレ違いじゃないよね。
>>949
おお、サンクス。日本語ページのみにしてたから気づかなかったよ。
てかcode projectには会員登録してるのにすっかり忘れてた。
使ってみるか、参考にしてみるよ。
そもそもList<T>等を入れ子にして、>>945に書いた程度の機能が欲しかった
だけなんだが、利便性とかも含めいろいろ考えると確かに複雑というか太る。
DOMまで行かなくてもどこかにベースになるような物があるんだろうよ。と思ったのが発端。
>>950
検索はしたいけどそれが主体な検索木が必要だと言うことではないんです。
0953デフォルトの名無しさん
2008/02/26(火) 19:55:50なんじゃその分類法
0954デフォルトの名無しさん
2008/02/26(火) 19:58:49フォームを透明にしたいのですが、
リージョンウィンドウは重いと聞いたので・・・
0955デフォルトの名無しさん
2008/02/26(火) 20:04:060956デフォルトの名無しさん
2008/02/26(火) 22:43:040957デフォルトの名無しさん
2008/02/26(火) 23:02:230958デフォルトの名無しさん
2008/02/26(火) 23:03:07それしかなかった時代が存外身近なのにもかかわらず
0959デフォルトの名無しさん
2008/02/26(火) 23:08:05マニュアルを見て、また実際にプログラム書いてみればすぐわかるんだから。
0960デフォルトの名無しさん
2008/02/26(火) 23:24:060961デフォルトの名無しさん
2008/02/27(水) 00:03:21ただスペックによると思いますので、自分のPCでいけるといって顧客環境ではいけるとは限らないでしょう。逆も然り
0962デフォルトの名無しさん
2008/02/27(水) 03:16:08以下定義
backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);
backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);
backgroundWorker1.WorkerSupportsCancellation = true;
普通にバックグラウンド処理(backgroundWorker1_DoWork)の処理が終わり
backgroundWorker1_RunWorkerCompletedが呼び出され終了した場合は全く問題ないのですが
backgroundWorker1.CancelAsync();によりキャンセルをした場合に限り、次にまたbackgroundWorker1_DoWorkを
呼び出した場合正常に動作しません(バックグラウンド処理が全く始まらないです)
これは何か定義を忘れているのでしょうか?情報不足な場合申し訳ないです、言っていただきたいです
ボタンをクリック→バックグランド処理→終了→ボタンをクリック→バックグランド処理→…だと正常
ボタンをクリック→バックグランド処理→バックグランド処理中にキャンセルボタンでキャンセル→ボタンをクリック→バックグランド処理(始まらない)
こんな感じです
よろしくお願いします
0963963
2008/02/27(水) 03:46:40backgroundWorker_DoWork内で主要処理を別メソッドとして書いています
つまり別メソッドなのでbackgroundWorker1.CancellationPendingを参照出来ません
DoWork内に主要処理をしっかり書くしかないというのは不便な気もしますし、しょうがないところなのかなとも思うのですが
何か対応策ないでしょうか?
設計を見直すしかないでしょうか?
0964963
2008/02/27(水) 03:47:020965デフォルトの名無しさん
2008/02/27(水) 03:51:17{
func();
}
こんな感じでfuncに主要処理が書かれてるってこと?
0966962
2008/02/27(水) 03:54:13そうです、正確にはbackground_DoWork内で状況に応じて呼び出すメソッドを変えています
backgroundWorker_DoWork(略)
{
switch(type)
{
case 1: func1();
case 2: func2();
case 3: func3();
:
default: break;
}
}
ニュアンスとしてはこんな感じです
0967デフォルトの名無しさん
2008/02/27(水) 06:52:17同じスコープにあるなら、何も問題ないと思うが
デリゲートの概念はきちんと理解してるんだろう
推測するに、かなり省略したけどこんな感じじゃないのか
class Form1 {
BackgoundWorker bgWorker1;
void InitializeComponent() {
this.bgWorker1.DoWork += new 〜(this.bgWork1_DoWork);
}
void bgWorker1_DoWork(〜) {
func1();
// this.bgWorker1にアクセス出来る
}
void func1() {
// this.bgWorker1にアクセス出来る
}
}
0968デフォルトの名無しさん
2008/02/27(水) 07:20:35ウインドウサイズを変更する際に目に見えて遅くなるのは実装がまずいんだろうか?
今の実装は、枠消したFormにベースとなる画像を張りつけといて
その上で、張った画像の透過部分以外を囲むGraphicsPathを書いてそれでFormをくりぬく様にしてる
0969デフォルトの名無しさん
2008/02/27(水) 08:06:43int ret = BitConverter.ToInt16( value,0 ) ;
見たいにやると例外で落ちてしまいました。
0970デフォルトの名無しさん
2008/02/27(水) 08:10:220971デフォルトの名無しさん
2008/02/27(水) 08:18:49有難う御座います
0972デフォルトの名無しさん
2008/02/27(水) 09:53:42・コマンド受信用のThread x1(TcpListenerでテキスト1行のコマンドを待ち受け)
・データ処理用のThread x4(数字ごにょごにょしているだけ)
Main()
{
ListenerThread();
DataConvertThread();
}
となっているのですが、データ処理用のThreadが走っている間、TcpListenerの
AcceptSocketが発生してくれません。
処理すべきデータを切り替えたりするコマンドを受信した際に、イベントを発生させ、
データ処理用のThreadを止めて新たに作り直したいのですが、処理が終わるまで
反応してくれないのです。
どうしたらいいでしょうか?
0973デフォルトの名無しさん
2008/02/27(水) 10:52:39で,実際の中身はどうなってるの?
擬似コードは全く役に立たないよ
0974デフォルトの名無しさん
2008/02/27(水) 11:19:56キーの一覧を取りたいのですがstring[] lists = list.Keysだと暗黙の変換が出来ないと怒られるのですが
どうしたら良いのでしょうか?
0975デフォルトの名無しさん
2008/02/27(水) 11:35:140976デフォルトの名無しさん
2008/02/27(水) 11:38:27これでキーが取れたから(^^;
foreach (string key in list)
{
}
0977デフォルトの名無しさん
2008/02/27(水) 11:49:460978デフォルトの名無しさん
2008/02/27(水) 11:49:59仕方ないから教えてやるけど、次からちゃんとMSDN読めよ。
MSDNが難しかったらオブジェクトブラウザでもいいし。
string str0 = list.Keys[0]
string str1 = list.Keys[1]
要するにそのまま取り出せばいい。
一度変数に格納したい場合は
Dictionary<string,string[]>.KeyCollection keyList = list.Keys;
このように書く。
コレクションの概念とクラスと型の概念の勉強からやり直しなさい。
0979デフォルトの名無しさん
2008/02/27(水) 12:07:04foreach()で列挙可能なのは配列型だけじゃないぞ
長いことやっててその状態なら慢性勉強不足気味
そうでなくとも原因を特定できないようじゃ結構キツイ
というわけでおれもMSDNをオメヌメ
0980デフォルトの名無しさん
2008/02/27(水) 12:09:330981デフォルトの名無しさん
2008/02/27(水) 12:20:40MethodInvoker inv;
は引数も戻り値も取らないデリゲート
Func<int,bool>
は引数にint、戻り値にboolをとるデリゲート
これは分かるのだが、
引数にint、戻り値なしというようなジェネリックデリゲートって用意されてない?
Func<int,void>
Func<MyClass,void>
みたいなものを使いたいんだが、見つけられないんだ。
今は仕方ないからboolを返すようにして、常にtrueを返すようにしてFunc<MyClass,bool>を使ってる。
戻り値いらないから、毎回boolを返さなきゃいけないのが面倒なんだよね。
0982デフォルトの名無しさん
2008/02/27(水) 12:22:170983デフォルトの名無しさん
2008/02/27(水) 12:26:06ありが�d
0984デフォルトの名無しさん
2008/02/27(水) 12:26:36だが俺に何かあったときはこっそり処分して貰いたい
0985デフォルトの名無しさん
2008/02/27(水) 12:30:190986デフォルトの名無しさん
2008/02/27(水) 12:37:540987デフォルトの名無しさん
2008/02/27(水) 12:38:11MSDNも見てきました。
>> Dictionary<string,string[]>.KeyCollection keyList = list.Keys;
単にコピーするというのではなくこの行がとてもわかりやすかったです。
0988981
2008/02/27(水) 13:35:22Public Action<int[]> TestInvoker=TestMethod;
これがあって、このデリゲートをInvokeメソッドで呼びたい。
このときInvokeメソッドの第二引数にはObject[]を渡さなければいけないそうなんだけど、
int[] param = new int[] {0,1,2};
Invoke(TestInvoker,param);
これもダメ
Invoke(TestInvoker,new Object {param});
これもダメ
実行時エラーになってまう。
エラー内容はFormatExceptionの例外で、引数が不正っぽいニュアンス。
どこがダメだかご指摘くだされ。
>>987
お礼として次スレを建ててもらえるとありがたい
0989デフォルトの名無しさん
2008/02/27(水) 13:44:07>>988
立てれなかった(^^;)残念
0990988
2008/02/27(水) 14:18:24引数の渡し方の問題じゃなくて、呼び出し先のメソッドでポカやってたみたい。
渡し方は、
Invoke(TestInvoker,new Object[] {param});
で問題ないみたいだね。失礼しました。
0991デフォルトの名無しさん
2008/02/27(水) 14:18:26object[]が要求されてるなら素直にobject[]を渡せよと。
あと共変性って言葉を調べるといい。
0992988
2008/02/27(水) 14:38:21悪いけどそんなもんは当然分かってる。
>>988で
>Invoke(TestInvoker,new Object {param});
と書いているのは単に[]を付け忘れただけだ。
問題だったのは呼び出し先デリゲート内の処理の方だったし、
それは自己解決したって言ってるだろ?
自己解決したっていうレスにわざわざ突っ込み入れるなんて、
いちいち追い打ちで人を貶して優越感に浸ることしかできないのか?
0993デフォルトの名無しさん
2008/02/27(水) 14:41:18要するに「はいはい」ってことですか><; わかりません!
0994デフォルトの名無しさん
2008/02/27(水) 14:41:550995デフォルトの名無しさん
2008/02/27(水) 14:42:200996デフォルトの名無しさん
2008/02/27(水) 15:41:01それに対して逆ギレするとはアホすぎるw
0997デフォルトの名無しさん
2008/02/27(水) 15:47:47あなたさまはどこのおぼっちゃまですか?
0998デフォルトの名無しさん
2008/02/27(水) 15:53:00Form OwnerForm = frm1
//frm1を表示させる
OwnerForm.Invoke((Action)delegate() { OwnerForm.Show(); });
この匿名メソッドをラムダ式を使って表記したい場合どのような感じになりますか?
0999デフォルトの名無しさん
2008/02/27(水) 16:34:361000デフォルトの名無しさん
2008/02/27(水) 16:40:09ありがとう。
なるほど普通に匿名メソッドで表記した方が可読性が良いですね。
今回は匿名メソッドで表記することにします。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。