C#, C♯, C#相談室 Part39
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/05/09(水) 00:46:29前スレ
C♯, C#相談室 Part38
http://pc11.2ch.net/test/read.cgi/tech/1173763436/
過去スレは>>2-5あたり。
0002デフォルトの名無しさん
2007/05/09(水) 00:49:29Part36 http://pc10.2ch.net/test/read.cgi/tech/1165656839/
Part35 http://pc8.2ch.net/test/read.cgi/tech/1162490865/
Part34 http://pc8.2ch.net/test/read.cgi/tech/1157549657/
Part33 http://pc8.2ch.net/test/read.cgi/tech/1153537081/
Part32 http://pc8.2ch.net/test/read.cgi/tech/1149934230/
Part31 http://pc8.2ch.net/test/read.cgi/tech/1145075577/
Part30 http://pc8.2ch.net/test/read.cgi/tech/1141448072/
Part29 http://pc8.2ch.net/test/read.cgi/tech/1138925245/
Part28 http://pc8.2ch.net/test/read.cgi/tech/1134514022/
Part27 http://pc8.2ch.net/test/read.cgi/tech/1131544541/
Part26 http://pc8.2ch.net/test/read.cgi/tech/1127063469/
Part25 http://pc8.2ch.net/test/read.cgi/tech/1122352650/
Part24 http://pc8.2ch.net/test/read.cgi/tech/1117631000/
Part23 http://pc8.2ch.net/test/read.cgi/tech/1112968209/
0003デフォルトの名無しさん
2007/05/09(水) 00:50:20Part21 http://pc5.2ch.net/test/read.cgi/tech/1106490240/
Part20 http://pc5.2ch.net/test/read.cgi/tech/1103005153/
Part19 http://pc5.2ch.net/test/read.cgi/tech/1100240847/
Part18 http://pc5.2ch.net/test/read.cgi/tech/1096112588/
Part17 http://pc5.2ch.net/test/read.cgi/tech/1091284402/
Part16 http://pc5.2ch.net/test/read.cgi/tech/1087297504/
Part15 http://pc5.2ch.net/test/read.cgi/tech/1083066815/
Part14 http://pc5.2ch.net/test/read.cgi/tech/1076933504/
Part13 http://pc2.2ch.net/test/read.cgi/tech/1071663456/ (ログ行方不明)
Part12 http://pc5.2ch.net/tech/kako/1066/10660/1066038651.html
Part11 http://pc5.2ch.net/tech/kako/1061/10612/1061262958.html
Part10 http://pc5.2ch.net/tech/kako/1051/10518/1051842450.html
Part9 http://pc2.2ch.net/tech/kako/1039/10396/1039646808.html
0004デフォルトの名無しさん
2007/05/09(水) 00:51:13Part7 http://pc3.2ch.net/tech/kako/1027/10275/1027531796.html
Part6 http://pc3.2ch.net/tech/kako/1022/10222/1022257078.html
Part5 http://pc3.2ch.net/tech/kako/1019/10195/1019533942.html
Part4 http://pc.2ch.net/tech/kako/1016/10165/1016597767.html
Part3 http://pc.2ch.net/tech/kako/1009/10094/1009473982.html
Part2 http://pc.2ch.net/tech/kako/1002/10024/1002468050.html
Part1 http://pc.2ch.net/tech/kako/977/977112364.html
0005デフォルトの名無しさん
2007/05/09(水) 00:52:48http://pc11.2ch.net/test/read.cgi/tech/1176387265/
Visual C# 2005 Express Edition 日本語版
http://www.microsoft.com/japan/msdn/vstudio/express/vcsharp/
MSDNライブラリ
http://msdn.microsoft.com/library/ja/
MSDN2
http://msdn2.microsoft.com/ja-jp/library/default.aspx
pinvoke.net: the interop wiki!
http://pinvoke.net/
テンプレ終了
0006デフォルトの名無しさん
2007/05/09(水) 00:58:120007デフォルトの名無しさん
2007/05/09(水) 01:15:59で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
0008デフォルトの名無しさん
2007/05/09(水) 01:56:460009デフォルトの名無しさん
2007/05/09(水) 03:27:01相手にすんな
0010デフォルトの名無しさん
2007/05/09(水) 10:18:220011デフォルトの名無しさん
2007/05/09(水) 10:20:07↑これって♯(シャープ)じゃなくて#(ナンバー)だよね。いいのかね。
0013デフォルトの名無しさん
2007/05/09(水) 20:07:060014デフォルトの名無しさん
2007/05/09(水) 20:36:100015デフォルトの名無しさん
2007/05/09(水) 20:36:560016デフォルトの名無しさん
2007/05/09(水) 22:21:49おつかれー
ありがとね
0017デフォルトの名無しさん
2007/05/09(水) 22:39:540018デフォルトの名無しさん
2007/05/09(水) 22:41:441 名前:名無しさん♯ [] :2000/12/18(月) 13:06
作ってみました。
==========
使えない時期ってあったのか?
0019デフォルトの名無しさん
2007/05/09(水) 22:53:26http://pc11.2ch.net/test/read.cgi/tech/1171342757/
0020デフォルトの名無しさん
2007/05/09(水) 23:12:09一番最初に使える時期があって、
それから使えなくなって、
また使えるようになったのか。
0021デフォルトの名無しさん
2007/05/10(木) 11:52:34IHoge hogeを複数のインターフェイスにキャストするとき、
たとえば
IFoo foo = (IFoo)hoge;
IBar bar = (IBar)hoge;
みたいにして使用した後、解放するときは
もとのhogeをReleaseComObjectするだけでいいの?
fooやbarに対してそうすると
"RCWから分離されたオブジェクトを操作できません"みたいな
例外が出るんですが。
キャストってQueryInterface相当じゃなかったの?
0022デフォルトの名無しさん
2007/05/10(木) 21:48:190023デフォルトの名無しさん
2007/05/11(金) 08:08:47C#では、#defineで値のある定数が定義できませんがそれに変わるものや方法はあるのでしょうか?
当方は、(ほぼグローバル)定数専用のクラスをおこしてそこにずらずらconstしてます。
定番の方法とか知りたいです。
0024デフォルトの名無しさん
2007/05/11(金) 08:11:44妥当なクラスに(静的かどうかは意味に合わせて)プロパティを用意する
0025デフォルトの名無しさん
2007/05/11(金) 08:15:54値が絶対に変わることがないのなら public でもいい
0026デフォルトの名無しさん
2007/05/11(金) 12:58:220027デフォルトの名無しさん
2007/05/11(金) 13:13:41>>24
> グローバルな定数を使わない
グローバルな定数は定義できない。
じゃないの?
> 妥当なクラスに(静的かどうかは意味に合わせて)プロパティを用意する
これは、>>23の言う、定数専用クラスもその一例。
ってことでOK?
それとも逆に、
定数専用クラス(静的クラス)も含め、グローバルに扱える定数は使わない。
「妥当なクラス」とは、個々のオブジェクトの独立性を保てる範囲である。
ってことになるのかしらん?
0028デフォルトの名無しさん
2007/05/11(金) 16:25:290029デフォルトの名無しさん
2007/05/11(金) 16:51:47全部クラスに属してるから純粋なオブジェクト指向だ
っなんてのと一緒だな。
0030デフォルトの名無しさん
2007/05/11(金) 18:10:27{
public const int Teisuu = 5;
public static int Hensuu = 0;
public static string Mojiretsu = "";
}
0031デフォルトの名無しさん
2007/05/11(金) 20:33:14たとえば円周率πがどう定義されているかをMSDNで調べてみると参考になるかもしれない。
グローバル定数専用クラスも結構だが、名前空間(クラス名含む)を適切に定義できるかどうかがキモじゃないの。
性的なプロパティにするかどうかは意味次第ってことで。
0032デフォルトの名無しさん
2007/05/11(金) 20:35:130033デフォルトの名無しさん
2007/05/11(金) 21:14:540034デフォルトの名無しさん
2007/05/12(土) 00:37:00普通は、関連のあるクラスの const メンバ変数で定義しとく。
どことも関連しなさそうなら設計が悪いかも。
まあ、定数専用のクラス作るのもいいんだけど。
で、もしなんだけど、public な定数でかつ、
仕様の変更に伴って変わる可能性のある定数なら、
できれば static なプロパティか、static readonly なメンバ変数にしといた方がいい。
const にすると、修正したときに利用側でも再コンパイルが必要になるから。
πみたいに仕様が変更されても絶対といっていいほど定数であるものとか
private な定数なら迷うことなく const でいいんだけど。
0035デフォルトの名無しさん
2007/05/12(土) 03:13:09(更新を判定できるRSSリーダをつくりたい)
まったく同じ内容のXmlで更新した場合、
DataSet.GetChanges(DataRowState.Added)で差分だけとりたいのに
全部とれてしまうのですがこれはなぜでしょう?
AcceptChanges()はGetChangesのあと実行しています。
0036デフォルトの名無しさん
2007/05/12(土) 03:20:39現在のDataSetと同じ内容のXmlをReadしたとき、GetChanges()
したら空のDataSetが返ると期待しているのに、なぜだかすべての
テーブル内容が返ってくるということです。
0037デフォルトの名無しさん
2007/05/12(土) 11:57:13以前 内容2 DataRowState.Unchanged
以前 内容3 DataRowState.Unchanged
以前 内容4 DataRowState.Unchanged
以前 内容5 DataRowState.Unchanged
以後 内容1 DataRowState.Added
以後 内容2 DataRowState.Added
以後 内容3 DataRowState.Added
以後 内容4 DataRowState.Added
以後 内容5 DataRowState.Added
こうなってるだけじゃなくて?
0038デフォルトの名無しさん
2007/05/12(土) 15:27:21同じ内容を再リードしてるんならそれで正しいと思うが?
全てを更新してるからな。
0039デフォルトの名無しさん
2007/05/12(土) 16:03:370040デフォルトの名無しさん
2007/05/12(土) 16:05:510041デフォルトの名無しさん
2007/05/12(土) 20:22:54>>37
Addedは新規に追加された場合ですよね。この場合は既存のRowを
上書き(Modify)することにならないかなと思っていたのです。
>>38
ReadXml()は一旦全部消去して作り直すということでしょうか。なら、
更新前と更新後のDataSetインスタンスを別に保持しておいて差分を
とろうと思います。片方のRowを片っ端からもう片方に上書きしたとき、
Unchanged(DataSet1だけのRow), Added(DataSet2だけのRow),
Modify(両方にあるRow)となると考えてよいでしょうか?
0042デフォルトの名無しさん
2007/05/12(土) 21:03:31PrimaryKeyがないテーブルにImportRowしていくなら結局>>37と同じ結果になるよ
0043デフォルトの名無しさん
2007/05/12(土) 23:43:39ありがとうございます。
「PrimaryKeyがない場合、テーブルに同じRowが重複して追加される」
(>>37は、XMLがもつRowは5個だが、重複して10個になっている状態)
という理解でよろしいでしょうか?
ReadXml()したとき、更新前と更新後でもRowの数が変わらなかったので、
「ReadXml()は既存のテーブル内容を破棄する」
ということではないのでしょうか?
「主キーを設定しRowの上書き途中でConstraintExceptionが投げられたとき、
そのRowの状態をModifyにする」これでうまくいくでしょうか?
0044デフォルトの名無しさん
2007/05/13(日) 03:05:17>「ReadXml()は既存のテーブル内容を破棄する」
DataSet ds = new DataSet();
XmlTextReader reader = new XmlTextReader("http://slashdot.jp/slashdot.rdf");
ds.ReadXml(reader);
reader.Close();
Console.WriteLine(ds.Tables["item"].Rows.Count);
reader = new XmlTextReader("http://slashdot.jp/slashdot.rdf");
ds.ReadXml(reader);
reader.Close();
Console.WriteLine(ds.Tables["item"].Rows.Count);
……破棄されてる?
>主キーを設定しRowの上書き途中で
上書きできるなら重複してることが既に分かっているわけで、
それを判別するためにはDataRowCollection.Findを使用済みなわけで、
nullが返ってきたRowが差分だってことで問題は解決されてない?
0045デフォルトの名無しさん
2007/05/13(日) 09:38:54おっしゃるとおりで解決しました。自分の馬鹿さ+睡眠不足で、
頭おかしくなってたみたいです。ありがとうございました。
0046デフォルトの名無しさん
2007/05/13(日) 11:42:08最初にAが入ってるところにさらにAを読み込んだ。
A → A+A
さて更新部分はどこ?
0047デフォルトの名無しさん
2007/05/13(日) 14:32:030048デフォルトの名無しさん
2007/05/13(日) 15:23:170049デフォルトの名無しさん
2007/05/13(日) 15:35:05答えはなんかの駄洒落だよ、きっと
0050デフォルトの名無しさん
2007/05/13(日) 15:39:240051デフォルトの名無しさん
2007/05/13(日) 16:18:270052デフォルトの名無しさん
2007/05/13(日) 20:54:41コンソールアプリケーションとしてある動作をするファイルを作成しました。
これをWindowsアプリケーション上にあるボタンクリックにより起動させるには
どのようにすればよいのでしょうか?
大まかなヒントだけでもかまいませんので、どうぞよろしくお願いします。
0053デフォルトの名無しさん
2007/05/13(日) 21:01:29取りあえず System.Diagnostics の Process クラス調べれ。
0054デフォルトの名無しさん
2007/05/13(日) 21:49:16さっそくどうもありがとうございます。
おかげさまで先に進めそうです。
0055デフォルトの名無しさん
2007/05/13(日) 22:05:420056デフォルトの名無しさん
2007/05/13(日) 23:33:13ここ: 言語は理解してるが使い方がわからない/自分で問題箇所を絞れる
ふらっと: 言語自体よくわかってない/何をどうしたらいいのか,何がいけないのかわからない
みたいな感じ?
0057デフォルトの名無しさん
2007/05/13(日) 23:40:58> 勇気をもって書き込んでください。
質問者次第って事で良いんじゃね
0058デフォルトの名無しさん
2007/05/13(日) 23:58:48ってことだろう
0059デフォルトの名無しさん
2007/05/14(月) 00:42:01質問者にとっては全く分からない、雲を掴むようなもので、
どういう質問の仕方をしたらいいのか分からないもんだよな。
2ちゃんの専門板はどこ行っても、素人お断りの雰囲気があるけどね。
0060デフォルトの名無しさん
2007/05/14(月) 00:48:29どんな地獄にも一人ぐらい仏はいるもんだ。
本当に初心者ゆえに(それなりに自分で理解する努力はしているにもかかわらず)
分からないと思われる質問なら回答してもらえる可能性は高いでしょ。
ただの怠惰な「どちて坊や」だから叩かれるか無視されるんだよ。
0061デフォルトの名無しさん
2007/05/14(月) 02:01:35それがイヤなら答えないだけだし。
実際、普段答えもしないくせにそういう「ルール」みたいな話になると
途端に饒舌になるやつの方がウザい。
他人が困ってても見向きもしないヤツに限って、自分のときは
「オレはこんなに大変だ」みたいにアピールしたり不満漏らしたり。
0062デフォルトの名無しさん
2007/05/14(月) 02:24:15お前ひょっとして今疲れてない?あまり無理はするなよ。
0063デフォルトの名無しさん
2007/05/14(月) 07:27:520064デフォルトの名無しさん
2007/05/14(月) 09:28:10というか、39スレも読むの大変だし。
0065デフォルトの名無しさん
2007/05/14(月) 10:00:560066デフォルトの名無しさん
2007/05/14(月) 10:08:59それは精神がタフでないとできない。
知性が低いとできない。
勇気がないとできない。
おれにはできない。
0067デフォルトの名無しさん
2007/05/14(月) 12:40:42DateTime.ParseExactを使ってもうまくいきませんでした
教えてくださいお願いします。
datetime以外の部分はすべて順調です。
0068デフォルトの名無しさん
2007/05/14(月) 13:41:39にすると楽
0069デフォルトの名無しさん
2007/05/14(月) 13:54:26ParseExact使っているのは大変よろしい。
でも月はmmじゃなくてMM。mmは分です(minutes)。
007067
2007/05/14(月) 14:02:330:00:00ってのをヒントに上記のやつでいけました
もともとうえのでやってたんですけどSQLのinsertの部分で
'使うの忘れてたみたいです
ありがとうございました。
0071デフォルトの名無しさん
2007/05/14(月) 14:04:010072デフォルトの名無しさん
2007/05/14(月) 14:06:49わけわからなくなってました
0073デフォルトの名無しさん
2007/05/14(月) 23:59:14というかMSSQLなら素直にパラメタライズクエリ使えよ
何やってんだ。
…ん?ひょっとしてWriteDateって挿入した日?なら
GETDATE()を使え
0074デフォルトの名無しさん
2007/05/16(水) 19:00:370075デフォルトの名無しさん
2007/05/16(水) 19:04:070076デフォルトの名無しさん
2007/05/16(水) 20:11:06ふらっとC#, C♯, C#(初心者用) Part15
http://pc11.2ch.net/test/read.cgi/tech/1176387265/977
マルチは死ね
0077デフォルトの名無しさん
2007/05/16(水) 23:41:22それにUpdateしたときに新規追加されるデータって表現はおかしくないかな?
0078デフォルトの名無しさん
2007/05/17(木) 00:06:200079デフォルトの名無しさん
2007/05/17(木) 00:13:240080デフォルトの名無しさん
2007/05/17(木) 00:16:020081デフォルトの名無しさん
2007/05/17(木) 00:31:200082デフォルトの名無しさん
2007/05/17(木) 11:51:150083デフォルトの名無しさん
2007/05/17(木) 23:08:130084デフォルトの名無しさん
2007/05/18(金) 21:48:570085デフォルトの名無しさん
2007/05/19(土) 15:02:33データベースはSQLサーバー?
0086デフォルトの名無しさん
2007/05/19(土) 15:39:33使う事ってできる?
Accessじゃないと駄目なのかな?
もしできるならやり方とか書いてあるサイトを教えてもらいたいです
0087デフォルトの名無しさん
2007/05/19(土) 15:46:08ODBCのドライバとかないのか?
0088デフォルトの名無しさん
2007/05/19(土) 22:49:340089デフォルトの名無しさん
2007/05/19(土) 22:57:38リモーティングになら IpcChannel が .NEt 2.0 で追加された
.NET 3.0 の WCF でも NamedPipe を使える
あとは MSMQ とかか?
0090デフォルトの名無しさん
2007/05/20(日) 13:52:080091デフォルトの名無しさん
2007/05/20(日) 14:20:140092側近中の側近 ◆0351148456
2007/05/20(日) 18:01:22(っ´▽`)っ
っていうか、時分秒は入れなくていいのか?
datetime型なのに時分秒が入ってないと
後で困るかも。整列させるときとかね。
いっそのことvarcharでいいんじゃね?
時分秒が入ってないのはもうdatetimeとはいえないのでは?
0093デフォルトの名無しさん
2007/05/20(日) 19:04:54lockについてなんですが、
クラスのオブジェクトにたいして読み書きするメソッドAdd(),Remove()と
読むだけのメソッドRead1(), Read2() とがありまして、
Add() や Remove() では他のメソッドと同期したいんですが、
Read1() ⇔ Read2() 間では排他にしたくないんです。
こういう場合ってどうしたらいいんでしょうか。
0094デフォルトの名無しさん
2007/05/20(日) 19:18:560095デフォルトの名無しさん
2007/05/20(日) 19:23:18大量に載ってる教本ってないですかね?
サンプルプログラムではなく
アプリとしてのってるのがいいのですが、見つかりません。
VBAやperlではたくさんあるんですが・・・。
検索すると、カットシステムから出版されている
「.net FrameworkプログラミングテクニックVol3」っていうのが
かなり近い感じですが、もう読み終わってしまったので
更なるステップアップを目指しています。
オープンソースのフリーソフトを読むというのも考えたのですが、
解説があるのと無いのでは理解する速度が断然違いますし、
変な癖がついたりするのも怖いです(経験あります)
該当する書籍、資料などありましたら教えて頂けると幸いです<(_ _)>
0096デフォルトの名無しさん
2007/05/20(日) 19:38:20あれじゃ駄目か?
0097デフォルトの名無しさん
2007/05/20(日) 20:53:16ありがとうごさます。ばっちりでした
0098デフォルトの名無しさん
2007/05/21(月) 00:18:21TreeNodeのnodeがあったとして
普通にnode.Text = "hoge";ってやるよりも
いったんnodeを削除して同じ場所に新しい"hoge"ノードを作った方が
早いような気がします。
ただ、無限ループで繰り返して計測した訳ではないので
あくまでも「気がする」の域です。(こう書くと釣りっぽいですが(^^;
ちなみにBeginUpdate()は使っていません。
(できない場所だったので)
これって何か理由でもあるんですかね。
0099デフォルトの名無しさん
2007/05/21(月) 00:39:580100デフォルトの名無しさん
2007/05/21(月) 00:45:510101sage
2007/05/21(月) 00:54:160102デフォルトの名無しさん
2007/05/21(月) 01:35:33さて、ここは無限ループでどうやって計測するのか議論するスレになりました。
しかも繰り返してですよお客さん
010395
2007/05/21(月) 02:54:25レス遅れてすいません。
検索してみましたが、これはどういうサイトなんですか?
英語ダメなもんで orz
とりあえず、ソフトやコードのサンプルがたくさんあるようですが・・・。
想像していた物とは違いますが、これはこれで勉強になりそうです。
良いサイトを教えて下さりありがとうございます。
0104デフォルトの名無しさん
2007/05/21(月) 05:28:340105デフォルトの名無しさん
2007/05/21(月) 05:44:29英語からの情報を諦めてたらプログラマとしての成長が早いところで頭打ちになるよ。
プログラミングの勉強と並行して英語もやった方がいい。
小説などと違って簡単な言い回しでの説明が多いからすぐ慣れると思うよ。
あとは単語を辞書で引いたりググったりすれば大丈夫。
.Netのクラスライブラリも日本語版と英語版があるから読み比べてみるといい。
0106デフォルトの名無しさん
2007/05/21(月) 15:00:38Pair<Pair<string,Pair<string,int>>,object>のようなものをC#(.NET)の正規表現で解析できるものでしょうか?
教えてエロイ人(´・ω・`)
0107デフォルトの名無しさん
2007/05/21(月) 15:22:59エロイ人ほど深読みしそうな書き方だけど、
class Pair<T,U>ってのは文字列?
string hoge = "class Pair<T,U>"; みたいな。
エロイ人は Type fuga = typeof( Pair<T,U> ); についての
パターンマッチの仕組みを聞かれている可能性を悩んでそうな希ガス。
0108デフォルトの名無しさん
2007/05/21(月) 15:30:42class Pair<T,U>という定義があるとして、
文法的にはPair<Pair<string,Pair<string,int>>,object>という書き方ができますよね?
ここでstring s="Pair<Pair<string,Pair<string,int>>,object>";
と与えられたときに、正規表現で解析をして各タイプパラメータを引っ張ってこれるかという話です。
一発でできなくても最初の評価でGroupとしてタイプパラメータを引っ張ってこれて、そこに対して再度解析を行うということでもかまいません。
0109デフォルトの名無しさん
2007/05/21(月) 16:21:45文字列の解析ね。
正規表現を使うことというのは条件なの?
普通に考えたらC#の構文解析器の該当部分をどこかからパクってくるのが正攻法な気がするけど、
エディタのマクロを組みたいとかそういう用途?
あと、ソースコード中のある箇所でAという型名に見えても、
using A=B; ってエイリアスされてるかもしれないから
厳密にはタイプパラメータとは言えないかもね。
実行中にその型名で検索しても何も見つからないってこともあるよ。
厳密な実装をやりたいのか、
誰かから引き継いだコードを泣く泣く書き換えたいだけなのかで答え変わりそうだね。
単にあるコードを解析したいだけなら、
いったんコンパイルしてリフレクションで解析でもいいだろうし。
0110デフォルトの名無しさん
2007/05/21(月) 16:22:400111109
2007/05/21(月) 16:24:54ネームスペースや参照アセンブリが省略されてるから、
どっちにしろ型引数に書かれた文字列だけ得ても元の型は一意に定まらないね。
ややこしい例出してスマソ。
0112デフォルトの名無しさん
2007/05/21(月) 16:35:47正規表現の言語クラスでは再帰的表現を扱うことはできない。
今回の場合は、複数回パターンマッチを行うようにしても無理。
0113デフォルトの名無しさん
2007/05/21(月) 16:38:38その他の文法とかは考慮しませんし、エイリアス使ってる場合なども含めて厳密に型を引っ張ってこられるかは別問題です。
やりたいことを詳しく書くと上記の例に挙げたようなクラス名称を文字列として渡されたときに、元となるGeneric型やそのタイプパラメータを引っ張ってきて処理できるようにしたいんです。
もちろんアセンブリやネームスペースなども考慮しますが先に挙げた例は正規表現で再帰的な構造を含むものを処理できるかノ例としてあげたまでです。
正規表現の使用は絶対ではありませんが、構文解析よりはひとまず敷居が低いと使用を考えたまでです。
0114デフォルトの名無しさん
2007/05/21(月) 16:42:10そうですか・・・
だとすると構文解析的なものを考えないとだめそうですね。
0115デフォルトの名無しさん
2007/05/21(月) 22:22:20XMLシリアル化ってバージョントレラントなんだろうか?
「バージョントレラント」の厳密な定義とは違うかもしれませんが、
俺としては次の条件を満たせば必要十分なんですが。
(1) デシリアライズの際、XMLに、デシリアライズされるクラスが知らない
フィールドやプロパティが記述してあっても例外にならない。
(2) デシリアライズの際、XMLに、デシリアライズされるクラスの本来シリアル化対象のはずの
フィールドやプロパティが記述してなくても例外にならない。
簡単なコードでテストしてみると、どうもこれらの条件は満たしているっぽいのですが、
できれば何か裏づけが欲しいんですよね。
MSDNライブラリ見てもググって見てもどうも裏付けるような文章が見つからない。
↓の中氏の文章は(誌面の都合もあるんでしょうが)いまいち舌足らずだし。
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article9.aspx
0116デフォルトの名無しさん
2007/05/21(月) 22:48:380117デフォルトの名無しさん
2007/05/21(月) 22:53:090118デフォルトの名無しさん
2007/05/21(月) 22:56:40ttp://msdn2.microsoft.com/ja-jp/library/ms229752(VS.80).aspx
0119デフォルトの名無しさん
2007/05/21(月) 23:00:380120デフォルトの名無しさん
2007/05/22(火) 21:58:00time,Ampl
-1.0005e-06,0.000623049
-9.995e-07,0.000540041
-9.985e-07,0.000442385
・・・・
と数値が続いていくファイルでカンマより右の部分(Ampl)だけ抜き出すプログラムを作りました。
ファイルの内容をすべてstringにいれてから、要らない部分(カンマより左)をRemoveを使って消しつつ改行まで読み取る動作を繰り返すプログラムなのですが非常に遅いです。
より高速にする方法があれば教えてください
0121デフォルトの名無しさん
2007/05/22(火) 22:00:460122デフォルトの名無しさん
2007/05/22(火) 22:04:45後は自分で考えろ。
0123デフォルトの名無しさん
2007/05/22(火) 22:06:040124デフォルトの名無しさん
2007/05/22(火) 22:10:33おいおいそんな下手なやり方じゃダメだよw
必ずしも一度に全部Stringにぶち込む必要はないが(不可能な場合もあるだろうし)
ファイルはチビチビ読まず一度にまとめて読む、という方針はむしろ正しい。
問題は読んだ後の処理にあると思われる。
String.Splitとか正規表現とか、いろんな方法を自分でいろいろ試してみるしかないよ。
0125デフォルトの名無しさん
2007/05/22(火) 22:23:11Cだったら簡単なのに…c#は難しい!とか言われそう。
0126デフォルトの名無しさん
2007/05/22(火) 22:28:58とりあえずRemoveで消すという無駄な処理をなくしてみます。
どうもです。
0127デフォルトの名無しさん
2007/05/22(火) 22:30:11http://msdn2.microsoft.com/ja-jp/library/system.string(VS.80).aspx
Stringクラスは重要だから全てのメソッドに目を通しといたほうがいいよ。
0128デフォルトの名無しさん
2007/05/22(火) 23:05:220129デフォルトの名無しさん
2007/05/22(火) 23:17:250130デフォルトの名無しさん
2007/05/23(水) 01:00:05全読みしていいんならむしろ1行で
string r = Regex.Replace(input, @"^.*,(?<R>[^,]*)$", @"${R}", RegexOptions.Multiline);
適当に書いたんであっているか知らん。繰り返すんならCompiledつけたら早くなるかも
0131デフォルトの名無しさん
2007/05/23(水) 13:41:23>>130さんの正規表現をヒントに加工してからSystem.IO.StreamReaderで行読みするプログラムにしたら、かなり速くなりました。
ありがとうございました。
0132デフォルトの名無しさん
2007/05/23(水) 14:26:50http://msdn2.microsoft.com/ja-jp/library/system.gc.keepalive(VS.80).aspx
下の例で言えばhoge.func() を呼び出した直後から、
もうhogeは使われてないからGCされる可能性があるということなのでしょうか?
呼び出しが完了するまでも待たないなんてなんだか変な気もします。
{
Hoge hoge = new Hoge();
hoge.func();
: // このあとhogeは使用されない・・・
}
0133デフォルトの名無しさん
2007/05/23(水) 14:35:570134デフォルトの名無しさん
2007/05/23(水) 14:44:50>なのでsひょうか?
違います。
そのURLの例が示しているのは、hogeのプロパティとして返された配列を利用している
最中にhogeがGCされて、hogeのファイナライザがその配列を変更してしまうというケース。
それ以上でもそれ以下でもない。
0135デフォルトの名無しさん
2007/05/23(水) 14:54:17クローンしてる。
public byte[] Hash { get { return (byte[]) hashValue.Clone(); }}
0136デフォルトの名無しさん
2007/05/23(水) 15:09:55>public byte[] Hash { get { return (byte[]) hashValue.Clone(); }}
程度のプロパティ参照はJIT(にせよ何にせよ)コンパイル時にインライン化されるから、
hashValue 参照後 Clone が動くまでの間にファイナライザが動く可能性があるわけか。
>>132 のケースでも hoge.func がインライン化されるような物の場合には、実行中に
別スレッドでhogeがGCされる可能性もあるということか・・・
0137デフォルトの名無しさん
2007/05/23(水) 18:59:06インライン化されようがなんだろうが、自分のスコープ抜ける前に死ぬ訳がないと思うんだが。
0138デフォルトの名無しさん
2007/05/23(水) 19:05:34実行時には関係ないんだよ
0139デフォルトの名無しさん
2007/05/23(水) 19:06:230140デフォルトの名無しさん
2007/05/23(水) 19:11:52なんか基本から勘違いしてない?
そんなわけないってw
MSDNライブラリに書いてある通り、GCが問題になるのは、
例えば変数がスコープ抜けた後もその変数への参照をアンマネージコードが
保持しているような場合だけだって。
0141デフォルトの名無しさん
2007/05/23(水) 20:00:40>MSDNライブラリに書いてある通り
msdn の↓の事例について話してるわけだが。
http://msdn2.microsoft.com/ja-jp/library/system.gc.keepalive(VS.80).aspx
0142デフォルトの名無しさん
2007/05/23(水) 22:32:57toolstrip(ツールバー)上に置いたコンボボックスをツールバーの
幅に合わせて、いっぱいまで広げたいのですが、簡単な方法は
ないでしょうか?
ステータスバー上のアイテムならばSpringプロパティがあるのですが。
0143デフォルトの名無しさん
2007/05/23(水) 23:29:550144デフォルトの名無しさん
2007/05/24(木) 00:20:38>そんなわけないってw
知らないんなら適当なこというなよ。
ローカルのスコープは実行時には消滅する。
実行時にはメソッド全体でひとつのスコープ。
で、たとえローカル変数のスコープ内でも、最後にそのローカル変数を経由して
参照を使用した場所より後ろでは、その参照はGC対象になる。
さらにJIT最適化により、最後の参照しようが消滅する場合がある。
こうなると、最後のインスタンスメソッド呼び出し最中にはすでにGC対象となっている。
0145デフォルトの名無しさん
2007/05/24(木) 00:23:410146デフォルトの名無しさん
2007/05/24(木) 00:30:54C#はスタックフレームとかは作られないの?
0147デフォルトの名無しさん
2007/05/24(木) 00:43:280148デフォルトの名無しさん
2007/05/24(木) 00:43:46タイプミスのせいどうか何が言いたいのかよくわからないけど、
やはり何か勘違いしてるとしか俺には思えない。
0149デフォルトの名無しさん
2007/05/24(木) 00:52:28メソッド()
{
Hoge hoge1 = new Hoge();
{ //ここからローカルのスコープ
Hoge hoge2 = new Hoge();
hoge2.Boke();
} //ローカルスコープ終了
hoge1.Bpke();
}
なんてメソッドがあったとして、内側のスコープは実行時にはなくなる。
メソッド全体のスコープしか残らないってのがスコープ云々の話。
0150デフォルトの名無しさん
2007/05/24(木) 00:53:15hoge1.Bpke();
は
hoge1.Boke();
の間違いね。
0151デフォルトの名無しさん
2007/05/24(木) 00:58:38メソッド()
{
Hoge hoge = new Hoge();
hoge.Boke();
// いろいろ
}
ってメソッドがあったとして、hoge変数が示してるHogeインスタンスへの参照は、
最後のhoge.Boke()より後ろでは使われてないので、実行時には、
//いろいろ
部分ではすでにHogeインスタンスはGC対象になってる。
さらにJIT最適化により、Bokeがインライン展開されると、
hogeは暗黙のthis参照としてBokeに渡されなくなるため、
Boke実行中にすでにHogeインスタンスはGC対象になってしまう。
ってことを言ってんだ、どこを勘違いしてるのか言ってみろ。
0152デフォルトの名無しさん
2007/05/24(木) 01:05:07実際には最後の参照使用以降はもはや消えてるのと同じ、
hoge変数は消滅してるのと同じってこと。
また本来なら、hoge.Boke呼び出しで、hogeは暗黙のthis参照として
Bokeに渡されるので、Bokeから戻るまではGC対象にならないが、
JIT最適化によりBoke実行中にすでにGC対象になってしまう場合があるということ。
0153デフォルトの名無しさん
2007/05/24(木) 01:06:060154デフォルトの名無しさん
2007/05/24(木) 01:25:02サンプルのコメント読めばなにがどうなってるかは明白だと思うんだがw
0155デフォルトの名無しさん
2007/05/24(木) 01:36:56なんでHash実行完了前にファイナライザが呼ばれる可能性があるのか。
サンプルのコメントだけでは説明がないだろうが。
だいたいスコープ云々の話を始めたのは俺じゃないわけだが。
おかしなこといってるやつがいるからそれを指摘しただけだよ。
そういう意味では>>149は確かに直接は関係ない話だけどね。
>>151以降は具体的に何が起こるのか説明しただけだ。
アホいうなら関係ないってちゃんと説明してみろ。
0156デフォルトの名無しさん
2007/05/24(木) 01:39:26// The Hash property is slower because it clones an array. When
// KeepAlive is not used, the finalizer sometimes runs before
// the Hash property value is read.
0157デフォルトの名無しさん
2007/05/24(木) 01:51:11this参照も最後に使われた以降は消滅するわけだから。
0158154
2007/05/24(木) 02:03:40これのコードが、コメントに書かれた動作から推察するに
1.exからHashのアドレス取り出し
2.不要になったexをFinalizationキューに突っ込む
3.Hash処理呼び出し
こうなってるってことだろ
んで、タイミングによってはHash処理が終わる前にGCが動いてデータが読み出せないことがある、と
スコープもインライン展開も関係ないやろ?w
0159デフォルトの名無しさん
2007/05/24(木) 02:08:560160デフォルトの名無しさん
2007/05/24(木) 02:41:45違うよ。
インスタンスメソッドではexはthis参照として渡されてる。
でも渡された側でexを使ってないから、JITコンパイルされた結果ではすぐにnullに設しなおされるってことだろ。
この時点でGC対象になり、さらにGCも走った場合、Fキューに入ってファイナライズが走る。
>スコープもインライン展開も関係ないやろ?w
動作時にはスコープは意味ないってのがもともとの話だしょ。
まあどうでもいいけど。
インラインは確かに関係ないな。
0161デフォルトの名無しさん
2007/05/24(木) 02:51:57正直かわりに Object dummy = ex; って書いておいても同じじゃないのコレ???
ワカランから詳しく説明きぼん。
あ、試してみればいいのか・・・自分で。
0162デフォルトの名無しさん
2007/05/24(木) 02:53:110163デフォルトの名無しさん
2007/05/24(木) 02:58:48GC.KeepAliveは最適化で消されたりしないようになってる。
まあインスタンスメソッド呼び出しとかでもなんでもいいんだけどね。
0164デフォルトの名無しさん
2007/05/24(木) 03:00:25間違った(あるいは勘違いした)例は結構あるけど。
0165デフォルトの名無しさん
2007/05/24(木) 03:06:16public int secret;
KeepAlive(Object obj) {
if ("".Equals(obj)) secret++;
}
みたいな感じだったりして。(試してない)
0166デフォルトの名無しさん
2007/05/24(木) 03:09:27どう作ればエレガントかな???
0167デフォルトの名無しさん
2007/05/24(木) 03:11:45ここなんかそうだね。Close呼んでるならKeepAliveいらないだろって。
間違いじゃないけど蛇足?
ttp://jeanne.wankuma.com/tips/process/mutex.html
0168デフォルトの名無しさん
2007/05/24(木) 03:42:29デスクトップの壁紙を変えたりって事はできるのですか?
0169デフォルトの名無しさん
2007/05/24(木) 03:42:500170デフォルトの名無しさん
2007/05/24(木) 03:52:07教えてください。
お願いします。
0171デフォルトの名無しさん
2007/05/24(木) 03:55:520172デフォルトの名無しさん
2007/05/24(木) 04:07:150173デフォルトの名無しさん
2007/05/24(木) 04:19:35まちがい、hashValueを使用していこう使ってないから、だな。
0174デフォルトの名無しさん
2007/05/24(木) 04:22:38そこ、以前はとてつもなく間違ってたけど、
今のはちゃんと理解してないな、レベルになったなw。
書いてておかしいと思うんだけどね。
// GC.KeepAlive メソッドが呼び出されるまで、ガベージ コレクション対象から除外される
GC.KeepAlive(hMutex);
// Mutex を閉じる (正しくは オブジェクトの破棄を保証する を参照)
hMutex.Close();
いやいや、おかしいだろw
0175デフォルトの名無しさん
2007/05/24(木) 04:25:300176デフォルトの名無しさん
2007/05/24(木) 09:10:26public byte[] Hash { get { return (byte[]) hashValue.Clone(); }}
このコードが実行されてる最中に自身のファイナライザーが
呼ばれるかもしれないということですか?
thisを最後に使ったあとでGC対象になるってことですが、thisのメンバー
であるhashValueはClone()内で参照されているのに消えてしまうんですか?
それともこれはbyte[]だからこうなるという話ですか?
0177デフォルトの名無しさん
2007/05/24(木) 09:36:09public byte[] Hash { get { byte[] ret = (byte[]) hashValue.Clone(); ret[2] = hashValue[2]; return ret; }}
または
public byte[] Hash { get { byte[] ret = (byte[]) hashValue.Clone(); GC.KeepAlive(this); return ret; }}
といったふうにClone後にthisへアクセスすれば現象は発生しない。
これは予想なんだけどArray.Cloneが特別なのではないかと思える。
hashValueからClone先のArrayを作成してコピーする過程がアンマネージ的な手法で動作していて、
そこでthisが使われているとGCが判定できていないのではないだろうか。
0178デフォルトの名無しさん
2007/05/24(木) 09:52:43これはJITでの最適化がOFFとなり、参照にnullを代入などしない限り
ファイナライズやGCはスタックの回収時以降となるため。
もし>>177 の仮説があってればMSDNのサンプルとしては特殊ケース過ぎる。
先に出ているMutexとKeepAliveの例の方がサンプルとしてベターだと思う。
0179デフォルトの名無しさん
2007/05/24(木) 10:00:13なるほど、そう解釈すればなっとくいきます。
0180デフォルトの名無しさん
2007/05/24(木) 10:29:52hashValueはGC対象じゃないよ。
hashValueが解放されるのが原因じゃなくて、
exの参照先が解放される際に、ファイナライズで消してしまうから。
原因はあくまでexの参照先の方。
0181デフォルトの名無しさん
2007/05/24(木) 10:33:010182デフォルトの名無しさん
2007/05/24(木) 10:50:49http://blogs.msdn.com/bclteam/archive/2005/03/16/396900.aspx
マネージコードの範囲内なら問題なかったと思い込んでたんだけど、
そうでもなかったっけこれ・・・。
0183デフォルトの名無しさん
2007/05/24(木) 11:15:50仮説が崩れた。このケースでも発生しとる。
public byte[] Hash { get {
int length = hashValue.Length;
byte[] x = new byte[length];
for (int i=0; i<length; i++) x[i] = hashValue[i];
// *1
return x;
}}
*1 のところにGC.KeepAlive(this)やらx[5] = nValue を入れたら起きないが、
x[5] = hashValue[5] だと発生してる。 頭痛いなこれ。
0184デフォルトの名無しさん
2007/05/24(木) 11:27:140185デフォルトの名無しさん
2007/05/24(木) 11:47:390186デフォルトの名無しさん
2007/05/24(木) 11:50:31コンストラクタ実行中にファイナライザーが呼ばれることもあり得る?
例えその結果を代入するコードを書いても。
0187デフォルトの名無しさん
2007/05/24(木) 12:02:23複数のボタンのクリックで同じ処理をする場合に、VBですと Handles を使って
Private Sub ButtonX_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click
MessageBox.Show("こんにちは")
End Sub
下記のように書けますが、C#では同じようなことはできますでしょうか?
ぜひよろしくお願いします。
0188デフォルトの名無しさん
2007/05/24(木) 12:02:37コンストラクタの完了前にファイナライザが実行される例。
ttp://d.hatena.ne.jp/NyaRuRu/20060626/p4
あと、結果を代入するかどうかよりも、
その後代入された値が使われるかどうかに着目すべき。
0189デフォルトの名無しさん
2007/05/24(木) 12:17:51ふらっとの新スレ
http://pc11.2ch.net/test/read.cgi/tech/1179313212/
button1.Click += new EventHandler( buttonX_Click );
button2.Click += new EventHandler( buttonX_Click );
デザイナでやるならドロップダウンから同じイベントハンドラを選択
0190デフォルトの名無しさん
2007/05/24(木) 12:18:09頭痛い影響なんてめったに発生しない。
アンマネージのラッパー使うときは起こりやすいが、
大抵using使えるからそれもめったに問題にはならない。
0191デフォルトの名無しさん
2007/05/24(木) 12:38:25とりあえずよほどの自信がない限り
ファイナライザ中でマネージオブジェクトの操作なんてしないのが得策かと。
頭痛いのはそういうことしちゃう人。
return (byte[])hashValue.Clone();
こうやって書くからthis云々に思えるけど、
下のような意味だと思えば、フィールドにアクセスした直後からすでに
thisが不要になっていることが分かる。
byte[] tmp = this.hashValue; // これ以降thisは不要
// ここでfinalizerが実行されてもおかしくない
byte[] tmp2 = (byte[]) hashValue.Clone();
// returnにもthisは不要
return tmp2;
>>185
正解。
0192190
2007/05/24(木) 12:39:56正しくはこう。
byte[] tmp = this.hashValue; // これ以降thisは不要
// ここでfinalizerが実行されてもおかしくない
byte[] tmp2 = (byte[]) tmp.Clone();
// returnにもthisは不要
return tmp2;
0193デフォルトの名無しさん
2007/05/24(木) 12:49:17ファイナライザが実行されたってことはもうそのメモリにはアクセス
しちゃいけないってことじゃないの?
例外が起きてもおかしくないみたいな。
0194デフォルトの名無しさん
2007/05/24(木) 12:51:00レスいただきどうもありがとうございます。
ふらっとのスレは全角の#でも検索するべきでした。
それから、教えていただいた方法でできました、ありがとうございました。
助かりました。
0195デフォルトの名無しさん
2007/05/24(木) 12:54:00ファイナライザが実行されても、
メソッド自身やメソッド実行中のスタック変数のメモリ領域まで解放されるわけじゃないよ。
確かにC++でdelete this;やったことあるような人でないとわかりにくいかもね。
まあ一般には「自身がなければファイナライザを自分で書くな」でいいと思う。
0196デフォルトの名無しさん
2007/05/24(木) 13:00:24この例だと、hashValueってのはマネージヒープ上にあるんじゃないの?
0197デフォルトの名無しさん
2007/05/24(木) 13:04:10もしかしてあるクラスのインスタンスが解放されたら、
そのタイミングで全てのフィールドも解放されると思ってる?
そんなことはないんだけど。
0198デフォルトの名無しさん
2007/05/24(木) 13:06:19マネージコードの範囲内ならお行儀良くしていれば良いだけだし、
マネージラッパー書くならSafeHandle(これも万能には程遠いが)使いましょう、と。
>>196
そしてthisはそのメモリを参照しているだけ。
0199デフォルトの名無しさん
2007/05/24(木) 13:18:40ありがとう。やっとわかった。
0200デフォルトの名無しさん
2007/05/24(木) 19:23:45それが特定のキーならデータがLinesプロパティに書き込まれるのを阻止したいんですけど、
どうすればいいかわかりません。
誰かご教授お願いします。
0201デフォルトの名無しさん
2007/05/24(木) 19:29:140202デフォルトの名無しさん
2007/05/24(木) 19:38:380203デフォルトの名無しさん
2007/05/24(木) 19:43:370204デフォルトの名無しさん
2007/05/24(木) 20:06:21http://msdn2.microsoft.com/ja-jp/library/ms229644(VS.80).aspx
0205デフォルトの名無しさん
2007/05/24(木) 20:06:330206デフォルトの名無しさん
2007/05/24(木) 20:49:06KeyPressで捕らえたらe.Handledをtrueにすると反映を阻止できるんですね。
ありがとうございました。
0207デフォルトの名無しさん
2007/05/24(木) 21:50:250208デフォルトの名無しさん
2007/05/24(木) 21:59:040209デフォルトの名無しさん
2007/05/25(金) 00:21:240210デフォルトの名無しさん
2007/05/25(金) 01:19:290211デフォルトの名無しさん
2007/05/25(金) 01:43:21ぶっちゃけ
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
の
IconUnderline(REG_NONE)を読みたいんですよね……
どうも無理っぽいんでAPI使うしかないすかね?
またDllImportが増える。。
0212デフォルトの名無しさん
2007/05/25(金) 01:52:40素直にbyte[]で返してくれればいいのに プンプン
0213デフォルトの名無しさん
2007/05/25(金) 14:34:41ダイアログが消えてしまいます。どうすればAssertの内容を確認できますか?
0214デフォルトの名無しさん
2007/05/25(金) 14:35:260215デフォルトの名無しさん
2007/05/25(金) 19:51:56{
e.Effect = DragDropEffects.All;
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
this.contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
ListBoxにD&Dしたときにコンテキストメニューを表示すると
タスクバーが表示するのですが、表示しないように出来ないでしょうか?
0216デフォルトの名無しさん
2007/05/25(金) 23:42:05DataTable のセルの値を一度に多数書き換えているんですが
値が書き換わるたびにDataGridViewがソートをしてしまうので非常に重くなってしまいます。
とりあえず、書き換える前にダミーとして空の DataTable を DataSource に割り当てて
書き換えが全て終わった後に、元の DataTable に割り当てなおすようにしてます。
これだと動作は軽くなるんですが、テーブルが一瞬空になってしまうので非常にかっこわるいのです。
DataSource を割り当てたまま DataGridView を一時的に更新停止させる方法はあるのでしょうか?
0217デフォルトの名無しさん
2007/05/26(土) 00:08:26以前間違えて別スレッドからcontextMenuStripを表示したとき
似たようなことになったが
0218デフォルトの名無しさん
2007/05/26(土) 00:58:48OnPaintメソッドをoverrideした
カスタムコントロールを作ったんだけどイベントが発生しないです。
なんで?
0219デフォルトの名無しさん
2007/05/26(土) 01:06:20もっとも218にはそれが恥ずかしい質問だ、という認識すらないだろうけど
0220デフォルトの名無しさん
2007/05/26(土) 01:07:04ちゃんと ListBox.Paint にこのイベントは使われないって書かれてる。
0221デフォルトの名無しさん
2007/05/26(土) 02:17:450222デフォルトの名無しさん
2007/05/26(土) 03:51:530223デフォルトの名無しさん
2007/05/26(土) 04:09:52まあThreadPool以外も強制終了されるけどなw
0224デフォルトの名無しさん
2007/05/26(土) 04:14:26自分でスレッド管理します。
0225デフォルトの名無しさん
2007/05/26(土) 04:34:550226デフォルトの名無しさん
2007/05/26(土) 11:32:560227デフォルトの名無しさん
2007/05/26(土) 17:55:16ソートを一時的にやめたら?
0228デフォルトの名無しさん
2007/05/26(土) 21:06:24要はクラス内部で使うGet,Setメソッドを変数風に定義しよう
としているんだけど。素直にメソッド使っとけって感じ?
0229デフォルトの名無しさん
2007/05/26(土) 21:10:480230デフォルトの名無しさん
2007/05/26(土) 21:25:510231デフォルトの名無しさん
2007/05/26(土) 21:31:06ゲット セットのほうが邪道。
0232デフォルトの名無しさん
2007/05/26(土) 21:39:110233デフォルトの名無しさん
2007/05/26(土) 21:42:250234デフォルトの名無しさん
2007/05/26(土) 21:48:560235デフォルトの名無しさん
2007/05/26(土) 21:54:27脳が足りないお方か?
0236デフォルトの名無しさん
2007/05/26(土) 22:03:530237デフォルトの名無しさん
2007/05/26(土) 22:32:310238デフォルトの名無しさん
2007/05/26(土) 22:41:590239Anders Hejlsbergは神
2007/05/26(土) 23:04:400240デフォルトの名無しさん
2007/05/26(土) 23:18:340241デフォルトの名無しさん
2007/05/26(土) 23:20:490242デフォルトの名無しさん
2007/05/26(土) 23:25:49property String^ SampleProperty[int]
みたいなことが何でC#に無いかって訊いてるんだろ。
>>236は「最終的に欲しい型をインデクサで返す中間クラスを定義して
それを返すプロパティにすればいい」って言っている。
何で無いのかと訊かれれば、言語設計者の気まぐれじゃね?
0243デフォルトの名無しさん
2007/05/26(土) 23:26:390244デフォルトの名無しさん
2007/05/26(土) 23:27:48C#で逆コンパイルするとどんなコードになるんだろう
0245228
2007/05/26(土) 23:32:33文法的にNGなのかと思っていたんですが、試しに書いてみたらすんなり
通ったんだけど、清く正しい書き方かどうか不安になったもんで。
0246デフォルトの名無しさん
2007/05/26(土) 23:33:420247デフォルトの名無しさん
2007/05/26(土) 23:39:33VC#2005に付いてるスクリーンセーバスタートキットで
思いっきり使われてた記憶がある
0248デフォルトの名無しさん
2007/05/26(土) 23:43:57ILになったものをC#から参照するときどう見えるかは気になるな。
試してないけど
get_プロパティ名(引数)
というメソッドになるんじゃない?
0249デフォルトの名無しさん
2007/05/26(土) 23:57:53「この言語ではサポートされていません」みたいなエラーが出るのかな
0250デフォルトの名無しさん
2007/05/26(土) 23:59:27その他はアクセサメソッドを直に使うことになるね。
0251デフォルトの名無しさん
2007/05/27(日) 00:18:16>何で無いのかと訊かれれば、言語設計者の気まぐれじゃね?
気まぐれでは何なので予想してみる。
構文解析上うざいから?まぁなんにしろ評価してバランスがあわん
かったんだろう。
0252デフォルトの名無しさん
2007/05/27(日) 00:23:31決めているから、あきらめて使うしかないよ。
バージョン変わると新しくできる可能性があるかもれないが。
0253デフォルトの名無しさん
2007/05/27(日) 00:29:09それで正解。
VB で xx.NameProp(1) = "nnnnn"
C#だと xx.set_NameProp(1, "nnnnn");
0254デフォルトの名無しさん
2007/05/27(日) 00:35:020255デフォルトの名無しさん
2007/05/27(日) 00:40:15親の心子知らずとはこのことですな。
0256デフォルトの名無しさん
2007/05/27(日) 01:17:190257デフォルトの名無しさん
2007/05/27(日) 01:20:270258デフォルトの名無しさん
2007/05/27(日) 01:24:260259デフォルトの名無しさん
2007/05/27(日) 01:30:090260デフォルトの名無しさん
2007/05/27(日) 01:51:24プロパティに引数なんて意味的に変だと思います。
"NameProp" 自体に引数1を渡したいなら「それってメソッドでは」ですし、
NamePropで取得するものに引数1を渡したいなら >>234
C#のインデクサは「そのオブジェクトそのものに引数を渡したい」という
意味が明確に出ていて美しいと思います。
0261デフォルトの名無しさん
2007/05/27(日) 10:34:13どういう結論だっけ、ちょっとうろ覚え。
とりあえず、構文的には、インデクサ自体が
RetType this[ArgType x]
なんだから、this のところbシ前に変えるbセけで何の苦労b烽ネいはず。
過去に出てた話で、俺の覚えてるのだと、
「コレクションを返すプロパティ」と
名前付きインデクサの区別付かないのを嫌ったんじゃないかって。
ヘジが名前付きインデクサなんかよりも
イテレータ構文の方に夢中だったってのもあると思う。
(まあ、イテレータの戻り値は IEnamerable であって、コレクションじゃないけど。)
0262デフォルトの名無しさん
2007/05/27(日) 11:04:03BackgroundWorker開始用のボタン button1、キャンセル用のボタン button2、出力用のテキストボックス textbox1を
作成し、簡単なコードをいれて実行したのですがループの中に
System.Threading.Thread.Sleep(20);
といれておかないとフォームも正しく描画されず、また、キャンセルボタンを押してもスレッドが停止されないのですが
これはこういう仕様なのでしょうか。それとも、実装の仕方を間違えているのでしょうか。
コードは下記のとおりになります:
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void button2_Click(object sender, EventArgs e)
{
backgroundWorker1.CancelAsync();
}
0263デフォルトの名無しさん
2007/05/27(日) 11:05:35private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
for(int i = 0; i < 23877; i++)
{
if(this.backgroundWorker1.CancellationPending)
{
e.Cancel = true;
return;
}
//System.Threading.Thread.Sleep(20); ←最低でも20msSleepしないと描画されなかったり、キャンセルできなかったり
backgroundWorker1.ReportProgress(i, i);
}
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
textbox1.AppendText("line: " + e.UserState.ToString());
}
0264デフォルトの名無しさん
2007/05/27(日) 11:06:16private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if(e.Cancelled)
{
textbox1.AppendText("Cancelled!");
}
else
{
textbox1.AppendText("Done!");
}
}
0265デフォルトの名無しさん
2007/05/27(日) 11:09:55なんで質問する前に自分で調べて考えようとしないのかな。
プログラマとして終わってるとおもうよそういう性格。
0266デフォルトの名無しさん
2007/05/27(日) 11:14:310267デフォルトの名無しさん
2007/05/27(日) 11:16:44でも別にお前さんが答えることまでは止めないよ。
0268デフォルトの名無しさん
2007/05/27(日) 11:16:530269デフォルトの名無しさん
2007/05/27(日) 11:17:19調べてもわからないから聞いているんですが・・・。
DOBONさんや、MSDNでは
重い処理 = System.Threading.Thread.Sleep(10000);
という扱いになっているのでなんとも・・・。
0270デフォルトの名無しさん
2007/05/27(日) 11:18:03>>267
なんだわからないだけかw おまえみたいなゴミは死んだほうがマシだな
0271デフォルトの名無しさん
2007/05/27(日) 11:18:39MSDNにあるサンプルと見比べてみ。
それでもわかんなかったら、相当に注意力が欠如してる。
0272デフォルトの名無しさん
2007/05/27(日) 11:23:54本当に調べてわからないならプログラミングなんてやらない方が自分のためだと思う。
いや本当に煽りとか悪意とか抜きで、むしろ善意で言ってるつもりだけど。
0273デフォルトの名無しさん
2007/05/27(日) 11:26:31いるいる、おまえみたいなやつ。
さっさと答えいえばいいのに関係ないことねちねちいう馬鹿w
0274デフォルトの名無しさん
2007/05/27(日) 11:37:59せめて自分の言葉を自分自身に向けたら?w
脳の不自由なお方だねえ。
0275デフォルトの名無しさん
2007/05/27(日) 11:40:28ttp://msdn2.microsoft.com/ja-jp/library/system.componentmodel.backgroundworker(VS.80).aspx
MSDNのサンプルをみながら、処理部分を別ループにだしてみたりいろいろしてみたんですが
textbox1.AppendTextのみ描画されて、ボタンは描画されないままでした(上の結果と同じ)
ちょっと煮詰まってきたので休憩してから再度取り組んで見ます。
0276デフォルトの名無しさん
2007/05/27(日) 11:41:27はぁ? おまえ小学校からやりなおしたほうがいいぞw
0277デフォルトの名無しさん
2007/05/27(日) 11:43:270278デフォルトの名無しさん
2007/05/27(日) 11:48:21何も学ばずに再度取り組んでも絶対に同じこと。
君はそもそもスレッドの概念がまったく理解できてないんだろ。
せめて@ITやCodeZineの解説に書いてあることぐらい理解してからでなきゃ
何やったって意味ないね。
BackgroundWorkerってのは(個人的には存在意義が疑問だが)
スレッドを簡単に使うためのものであってスレッドを理解してない人間でも
スレッドを使えるようにするものではないんだよ。
0279デフォルトの名無しさん
2007/05/27(日) 11:50:45荒れるだけだし勿体つけずに教えてやれよ。
0280デフォルトの名無しさん
2007/05/27(日) 11:54:13何も学ばずにって、教えてくださいっていっても>>265とか>>271とか
答えと関係ないレスしか返ってこない世の中じゃ・・・。
0281デフォルトの名無しさん
2007/05/27(日) 11:54:370282デフォルトの名無しさん
2007/05/27(日) 11:58:050283デフォルトの名無しさん
2007/05/27(日) 12:07:000284デフォルトの名無しさん
2007/05/27(日) 12:07:310285デフォルトの名無しさん
2007/05/27(日) 12:08:300286デフォルトの名無しさん
2007/05/27(日) 12:16:51自分では分からない質問が投稿されるが、かっこよく答えてみたいと思う。
↓
「自分で調べろ」と一人前ぶっていってみる。
↓
「調べてもわからない」から教えてくださいと返ってきていい気になる。
↓
「サンプルと比べろ」とさもわかったかのように言って見るも、自分も必死に探す。
↓
自分が挫折しかけたので「わからないなら諦めろ」と煽ってみる。
↓
サンプルを張られ、みてみるがサンプルすら理解できない。
↓
「理解してないなら意味がない」といって見る。
↓
まわりに「おまえ本当はわかってないだろ」と突っ込まれる ← いまここ
0287デフォルトの名無しさん
2007/05/27(日) 12:48:38おまえさんのコードだとBackgroundWorkerは黙々と処理をこなしていくが、backgroundWorker1_ProgressChangedの
処理が追いつかずに、処理待ち状態(キューにスタックされた状態)になる。
つまり、スタックされた描画処理のほうにマシンパワーをとられてしまいスレッドの意味がなくなってしまうというわけ。
その描画に使われる時間が>>262のマシンだと20ミリ秒なんだろう。
0288デフォルトの名無しさん
2007/05/27(日) 12:53:51スレッドの概念を学んでから氏んだほうがいいw
0289デフォルトの名無しさん
2007/05/27(日) 12:54:13適当なこと言うなよ。
>>262のコードは、単にシンタックスレベルでの誤りがないというだけ。
意味論的には、こんなコードならBackgroundWorker(というかスレッド)を使う意味がない。
要はスレッドが何か分かっていない、ということだ。
スレッドが何か分からずにどうしてそれを使おうと思うのかは不可解な点だが。
0290デフォルトの名無しさん
2007/05/27(日) 12:55:22おまえBackgroundWorkerわかってる?
0291デフォルトの名無しさん
2007/05/27(日) 12:59:23>>262のコードは間違っていないわけだが?
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html
ttp://blogs.wankuma.com/naoko/archive/2006/12/06/48804.aspx
ttp://hiro.wankuma.com/CS2005/Control/BackGroundWorker/BackGroundWorker02.htm
勉強してから書き込もうね。
0292デフォルトの名無しさん
2007/05/27(日) 13:00:24そして必死の一言↓
0293デフォルトの名無しさん
2007/05/27(日) 13:01:260294デフォルトの名無しさん
2007/05/27(日) 13:02:170295デフォルトの名無しさん
2007/05/27(日) 13:04:070296デフォルトの名無しさん
2007/05/27(日) 13:04:55ん?
では具体的にどこが間違っているか指摘してみ。
できないなら黙れ。
0297デフォルトの名無しさん
2007/05/27(日) 13:08:260298デフォルトの名無しさん
2007/05/27(日) 13:09:450299デフォルトの名無しさん
2007/05/27(日) 13:09:53で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
0300デフォルトの名無しさん
2007/05/27(日) 13:11:22っ
け
ー
ま
か
せ
な
0301デフォルトの名無しさん
2007/05/27(日) 13:12:300302デフォルトの名無しさん
2007/05/27(日) 13:15:110303デフォルトの名無しさん
2007/05/27(日) 13:16:20MonitorとかでDoWorkを待機させればいいわけ?
0304デフォルトの名無しさん
2007/05/27(日) 13:18:18>>289で必要十分だと思うが敢えて言葉を替えるなら、
これでは実質的に(バックグラウンドではなく)UIスレッドで処理を実行しているのと
何も変わらない、ということ。
まあ、>>289に納得できないのなら言葉を替えようが同じことだろうけど
0305デフォルトの名無しさん
2007/05/27(日) 13:21:27もしかして本気でBackgroundWorkerわかってない?
0306デフォルトの名無しさん
2007/05/27(日) 13:22:10って言ってるだけだろ
なんでわざわざややこしくする
0307デフォルトの名無しさん
2007/05/27(日) 13:22:13UIスレッドでビジーループまわしてApplication.DoEventsしてるのと等価になってしまうね。
0308デフォルトの名無しさん
2007/05/27(日) 13:27:15言いたいことは分かるけど、それが問題の本質じゃないだろう。
より正確に、頻繁にControl.BeginInvokeしてるのと同じだから問題だ、
と言いたいのなら同意するよ。
0309デフォルトの名無しさん
2007/05/27(日) 13:36:170310デフォルトの名無しさん
2007/05/27(日) 13:44:040311デフォルトの名無しさん
2007/05/27(日) 13:45:34全員知ったかなのでえらそーなことを回りくどく書くだけです。
0312デフォルトの名無しさん
2007/05/27(日) 13:48:330313デフォルトの名無しさん
2007/05/27(日) 13:52:410314デフォルトの名無しさん
2007/05/27(日) 13:54:120315デフォルトの名無しさん
2007/05/27(日) 13:57:01のタイミングで「時間のかかる処理」を実行すればいいだけ
>>287が,0から23877までの数字を表示することを「時間のかかる処理」と
認識してるならそれは間違い。
0316デフォルトの名無しさん
2007/05/27(日) 13:57:050317デフォルトの名無しさん
2007/05/27(日) 13:58:30わかってないね、あんたもw
そこで「時間のかかる処理」を実行しても、Sleepをいれなきゃ描画されないの。
ためしにやってみ。
0318デフォルトの名無しさん
2007/05/27(日) 14:01:150319デフォルトの名無しさん
2007/05/27(日) 14:02:170320デフォルトの名無しさん
2007/05/27(日) 14:08:330321デフォルトの名無しさん
2007/05/27(日) 14:15:100322デフォルトの名無しさん
2007/05/27(日) 16:07:19ウザいよあいつ。
0323デフォルトの名無しさん
2007/05/27(日) 16:58:56>>217
SharpDevelop1.1と.NET Framework1.1を入れて
Context Menu StripじゃなくContext Menuで同じ事をすると
タスクバーは表示されませんでした。
どうやらContext Menu Stripのバグのようです。
0324デフォルトの名無しさん
2007/05/27(日) 18:01:17普通に考えたら非同期だとは思うけど
もし普通に思いつくような実装なら、ペンディングされた分は省かれるだろうしな…
まあとりあえずレポート上げるのはせめて100ms程度は間隔空くぐらいのが無難だろ。
もし同期だったりペンディングされてる分も省かれないんなら、(そんな実装ではないとは思うが)
レポート間隔をきちんと空けないと、スレッドの意味なしになったり処理と描画が破綻しかねない。
0325デフォルトの名無しさん
2007/05/27(日) 18:05:200326デフォルトの名無しさん
2007/05/27(日) 19:34:27ReportProgressは非同期だろうが、描画であぼんしてるとおもわれ。
0327デフォルトの名無しさん
2007/05/27(日) 20:49:47ReportProgress内でUIスレッドで処理されるのものが多い場合、
処理しきれないメッセージは破棄されるの?
Application.DoEventsするとスタックオーバーフローしたりするじゃないですか
0328デフォルトの名無しさん
2007/05/27(日) 20:55:14どんどんたまっていってしまいそうだな。
単純に描画がまったく間に合わなくなる。
非同期ではあるがペンディングになった分は省かれたりしない。
0329デフォルトの名無しさん
2007/05/27(日) 20:57:19だから違うって何度も言ってるだろうに
バックグラウンドの処理が所期のパフォーマンスを上げない、ということを
問題にしているのであればそういう回答でもいいかもしれないが、
はて、262はそう言ってるのかえ?w
262の「問題」とは、別スレッドでやってるバックグラウンドの処理にSleepをかまさないと
UIのレスポンスが停止する、というものでしょうが。
0330デフォルトの名無しさん
2007/05/27(日) 20:57:21ProgressChangedでの描画ではあまり重いことはするな。
以上。
0331デフォルトの名無しさん
2007/05/27(日) 21:00:25描画処理がたまって操作を受けつけるまで時間がかかってしまうってこったろ。
つまりキャンセルとかもすぐにはできない、あたりまえ。
ってか>>262だとあっという間に全部ReportProgressを実行しきって処理も完了してしまう。
そのあと、一生懸命たまった分の描画を行っている。
キャンセルする暇なんかねーよ、当たり前。
0332デフォルトの名無しさん
2007/05/27(日) 21:02:40まあ起こってることはおんなじようなもんだ。
0333デフォルトの名無しさん
2007/05/27(日) 21:03:58その場合はたぶんスレッドプールにキューされるまで待たされるんだろうね。
確認したわけじゃないが。
0334デフォルトの名無しさん
2007/05/27(日) 21:04:25キャンセルなんて押してもずっと順番待ちの後ろになってしまうってことね。
すでに全部ReportProgressし終わってたら、もうキャンセルもできないわな。
0335デフォルトの名無しさん
2007/05/27(日) 21:06:39おまえもう出てこなくていいよw
頭悪すぎる
0336デフォルトの名無しさん
2007/05/27(日) 21:08:240337デフォルトの名無しさん
2007/05/27(日) 21:08:54そのファイルパスを表示したいじゃないですか。
どうせどんな動体視力の持ち主でも見えないけど。
label1.Text = "C:\hoge\hoge";
とか
lable2.Text = iCounter.ToString();
とかやるじゃないですか。
プログレスバーも表示したいじゃないですか。
progressBar11.Increment();
非力なマシンだったら破綻するわけですか?
0338デフォルトの名無しさん
2007/05/27(日) 21:12:37329の直近で「あぼん」というワードが出てくるスレ。
というか、本気で聞いているなら・・・いや何でもないw
0339デフォルトの名無しさん
2007/05/27(日) 21:12:49直接描画したら多少はいけるかもね。
通常の操作で描画させる限り、ある程度間隔をあけないと破綻する。
0340デフォルトの名無しさん
2007/05/27(日) 21:13:370341デフォルトの名無しさん
2007/05/27(日) 21:17:43ああいうのはそもそも「ハングアップせずにちゃんと動いてるよ」という
ポーズ以上のものではないんだよ。
だから当然(普通は)馬鹿正直に全部表示したりしないよ。
俺はそもそもBackgroundWorkerなんて初心者に中途半端に媚びた「いらない子」
だと思ってるんで余計にそうおもうんだけど、こういう処理はスレッドをクラスで
ラップしてUIスレッド側からタイマイベントか何かでプロパティ経由で
状態をアクセスするようにした方がむしろ直観的なように思う。
0342デフォルトの名無しさん
2007/05/27(日) 21:20:19簡単にできるようにBackgroundWorkerつけたんだろ。
簡単という意味では悪いもんではないと思うが。
まあそれでも使いこなせないのはいっぱいいそうだな。
下手にラップしてるおかげで、余計になにも考えずに使って
破綻する原因にはなってるかもしれん
0343デフォルトの名無しさん
2007/05/27(日) 21:33:32タスクバーが表示される、ってのは意味不明でしかない。
タスクバーはデフォルトでは常に表示されてるものじゃないのか。
0344デフォルトの名無しさん
2007/05/27(日) 21:33:44初心者が質問したら「プログラミングやめろ」とか次元の違う答えを返し、
そもそも質問の本質とは異なるところで「これは重い処理ではない」と揚げ足取りをし、
原因がわかったところで「だからこういう機能はいらないのに」とか意味不明なことを語りだし
さらには解決したことをねちねちと「そこが問題ではない」と穿り返す。
0345デフォルトの名無しさん
2007/05/27(日) 21:40:21ContextMenuStripってのは普通のウィンドウだから
なんかの拍子でたまにタスクバーにボタンが表示されたりするんだよ。
特殊なことしないとそうならないけど。
0346デフォルトの名無しさん
2007/05/27(日) 21:41:16むしろ、読めるほうが少ないw
0347デフォルトの名無しさん
2007/05/27(日) 21:43:400348デフォルトの名無しさん
2007/05/27(日) 21:45:45まぁ>>215を試してからレスしろって事だな。
解決策は知らんけど。w
0349デフォルトの名無しさん
2007/05/27(日) 21:47:320350デフォルトの名無しさん
2007/05/27(日) 21:48:24眼科いけよ。
0351デフォルトの名無しさん
2007/05/27(日) 21:48:260352デフォルトの名無しさん
2007/05/27(日) 21:49:180353デフォルトの名無しさん
2007/05/27(日) 21:52:150354デフォルトの名無しさん
2007/05/27(日) 21:57:310355デフォルトの名無しさん
2007/05/27(日) 22:35:270356デフォルトの名無しさん
2007/05/27(日) 22:49:550357デフォルトの名無しさん
2007/05/27(日) 23:03:390358デフォルトの名無しさん
2007/05/27(日) 23:06:040359デフォルトの名無しさん
2007/05/28(月) 16:17:20頼むからこういうスレくらいはマターリ進行しようぜ。
0360デフォルトの名無しさん
2007/05/28(月) 17:30:590361デフォルトの名無しさん
2007/05/28(月) 17:36:17まさに
344 名前:デフォルトの名無しさん [sage] 投稿日:2007/05/27(日) 21:33:44
なにこの気持ち悪いレスの嵐w
初心者が質問したら「プログラミングやめろ」とか次元の違う答えを返し、
そもそも質問の本質とは異なるところで「これは重い処理ではない」と揚げ足取りをし、
原因がわかったところで「だからこういう機能はいらないのに」とか意味不明なことを語りだし
さらには解決したことをねちねちと「そこが問題ではない」と穿り返す。
0362デフォルトの名無しさん
2007/05/28(月) 18:38:18上級者きどり回答者どうしがケンカを始めるときもあるが。
0363デフォルトの名無しさん
2007/05/28(月) 18:59:420364デフォルトの名無しさん
2007/05/28(月) 19:09:180365デフォルトの名無しさん
2007/05/28(月) 19:33:16約一名の人がいなくなれば荒れないと思います><;
0366デフォルトの名無しさん
2007/05/28(月) 20:49:48http://journal.mycom.co.jp/news/2007/05/28/004/index.html
0367デフォルトの名無しさん
2007/05/28(月) 20:50:34隔離スレ
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
0368デフォルトの名無しさん
2007/05/28(月) 21:04:410369デフォルトの名無しさん
2007/05/28(月) 22:35:200370デフォルトの名無しさん
2007/05/28(月) 22:43:520371デフォルトの名無しさん
2007/05/28(月) 22:49:170372デフォルトの名無しさん
2007/05/28(月) 22:58:330373デフォルトの名無しさん
2007/05/28(月) 23:05:33だとしたらせっかく善意で聞いてるのに煽りか何かだと思ったのかな?w
>>369のような文章で自分の疑問が伝わると本気で思っているのなら
(まあ思っているから、かくのような粗末な文章を書くのだろうが)
ちょっと知的レベルに問題あるぞ。
0374デフォルトの名無しさん
2007/05/28(月) 23:12:34誰一人、読む人間のことを考えて文章を書いちゃいない。
俺もだけど。
0375デフォルトの名無しさん
2007/05/28(月) 23:35:39ToolTipのメンバをMSDNでよく眺めてみな。特にメソッド
0376デフォルトの名無しさん
2007/05/29(火) 00:04:25タイミングといえば「表示」しかないような気がするのだが…
オレがエスパーなのか?
0377デフォルトの名無しさん
2007/05/29(火) 00:34:060378デフォルトの名無しさん
2007/05/29(火) 01:27:250379デフォルトの名無しさん
2007/05/29(火) 02:43:21の一行で済むのにね
0380デフォルトの名無しさん
2007/05/29(火) 03:05:36どのように取得すればよいか教えてください><
「テキストファイル」とか「ファイルフォルダ」とか
0381デフォルトの名無しさん
2007/05/29(火) 03:18:39http://www.atmarkit.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
0382デフォルトの名無しさん
2007/05/29(火) 08:12:00ツーツチップが「何か」を知っていて、かつ実際に使ったことがあれば、
そんなに単純には考えないはずだと俺は思うけどね。
0383デフォルトの名無しさん
2007/05/29(火) 10:43:37でたw 俺様ルール。
プログラマによくいるんだよね。俺の常識=世間の常識とかおもってる馬鹿。
それにおまえがどう思ってるとかいちいち書かずに、渋らずに質問に答えりゃいいのに。
質問したやつが何をもとめているかを考えてみろよ。
おまえが思ってることを知りたかったら「>>382の思いを語れ」ってレスつくだろw
>>344を100回読んで半年ROMれや
0384デフォルトの名無しさん
2007/05/29(火) 10:49:090385デフォルトの名無しさん
2007/05/29(火) 10:50:49↓悔しさの一言
0386デフォルトの名無しさん
2007/05/29(火) 11:57:160387デフォルトの名無しさん
2007/05/29(火) 14:43:320388デフォルトの名無しさん
2007/05/29(火) 16:35:49Manko
{
System.Console.Write("マンコ完成");
}
0389デフォルトの名無しさん
2007/05/29(火) 17:48:26コンパイル通らないんじゃね?
0390デフォルトの名無しさん
2007/05/29(火) 18:03:10{
0391デフォルトの名無しさん
2007/05/29(火) 18:16:400392デフォルトの名無しさん
2007/05/29(火) 18:33:24(本格的に始まったのは中曽根内閣以降だが)70年代から始まってることを
知らないお前さんも十分馬鹿だろうw
まあまず間違いなく、その意味ではお前さんだって「ゆとり世代」なんだよw
知らぬは本人ばかりなり。
いや勘違いしてもらっては困るが、383以降の愚劣なレスを書いてる人間を
肯定しているわけではないからね。
0393デフォルトの名無しさん
2007/05/29(火) 19:00:130394デフォルトの名無しさん
2007/05/29(火) 19:03:16要するに「ゆとり世代」みたいな言葉を好んで使う人間のメンタルというのは
「自分以外はみんな馬鹿」だからな。
いや、厳密にはちょっと違う。
こうい人間のメンタルをより厳密に言えば、『「自分以外はみんな馬鹿」だと思いたい』だな
0395デフォルトの名無しさん
2007/05/29(火) 19:07:120396デフォルトの名無しさん
2007/05/29(火) 19:11:10そうじゃなくて「お前そんな事も知らないのかよ」だよ。
0397デフォルトの名無しさん
2007/05/29(火) 20:12:19でたw 俺様ルール。
プログラマによくいるんだよね。俺の常識=世間の常識とかおもってる馬鹿。
それにおまえがどう思ってるとかいちいち書かずに、渋らずに質問に答えりゃいいのに。
質問したやつが何をもとめているかを考えてみろよ。
おまえが思ってることを知りたかったら「>>394の思いを語れ」ってレスつくだろw
>>344を100回読んで半年ROMれや
0398デフォルトの名無しさん
2007/05/29(火) 20:23:220399デフォルトの名無しさん
2007/05/29(火) 20:28:25どうも本格的に頭おかしい気がする。
なるほど、俺様ルールが悪いんだと仮定しよう。(俺は認めないがね)
しかし、「俺様ルール」というのはまさに397の書いているようなことなはずだが、
そんな簡単な理屈も分からないのだろうか。
というか、質問した奴って誰なんだろう?w
0400デフォルトの名無しさん
2007/05/29(火) 20:29:480401デフォルトの名無しさん
2007/05/29(火) 20:30:320402デフォルトの名無しさん
2007/05/29(火) 20:34:200403デフォルトの名無しさん
2007/05/29(火) 21:46:490404デフォルトの名無しさん
2007/05/29(火) 22:03:36一瞬、コンマを空目しちゃったんだろうと勘違いして
随分、2ちゃんに毒されちまったなぁとか思っちまったじゃねぇか。
0405デフォルトの名無しさん
2007/05/29(火) 22:11:16manko.Insert(chinko);と
chinko.Insert(manko);のどっちが自然?
0406デフォルトの名無しさん
2007/05/29(火) 22:13:410407デフォルトの名無しさん
2007/05/29(火) 22:21:070408デフォルトの名無しさん
2007/05/29(火) 22:54:30両方とも不自然。
He.Insert(凸,凹)
0409デフォルトの名無しさん
2007/05/29(火) 23:19:03それじゃHeに属さない凸を指定できてしまうだろw
0410デフォルトの名無しさん
2007/05/29(火) 23:22:42おまえあたまおかしくね?
0411デフォルトの名無しさん
2007/05/29(火) 23:22:490412デフォルトの名無しさん
2007/05/29(火) 23:23:39しーっ、かまっちゃいけません
0413デフォルトの名無しさん
2007/05/29(火) 23:24:14Heに属してなくてもいいじゃないか。
0414デフォルトの名無しさん
2007/05/29(火) 23:25:18またイチャモンつける
氏ねよ
0415デフォルトの名無しさん
2007/05/29(火) 23:27:090416デフォルトの名無しさん
2007/05/29(火) 23:27:32まじきもーい
0417デフォルトの名無しさん
2007/05/29(火) 23:28:410418デフォルトの名無しさん
2007/05/29(火) 23:28:51まじくさーい
0419デフォルトの名無しさん
2007/05/29(火) 23:29:55まじやばーい
0420デフォルトの名無しさん
2007/05/29(火) 23:31:00空気よめてなさすぎなんだよw
友達いねーだろ? いい加減気付けよ ↓
0421デフォルトの名無しさん
2007/05/29(火) 23:35:250422デフォルトの名無しさん
2007/05/29(火) 23:36:33なにこの体臭。おまえ風呂はいってんのか?
2chで必死になってる暇があったら日光浴して殺菌しろよ。
脳みそだけじゃなく全体的に腐ってんぞ
0423デフォルトの名無しさん
2007/05/29(火) 23:44:13いい加減やめたら。
ロムってたけどうざくなってきた。
取り敢えず どれが自分のレスか書いたら?
その中で自分の代表作のレスあげてほしいな。
0424デフォルトの名無しさん
2007/05/29(火) 23:45:46自作自演ってたのしい?
0425デフォルトの名無しさん
2007/05/29(火) 23:48:420426デフォルトの名無しさん
2007/05/30(水) 01:13:11下記のような感じでプログラムを作ったのですが、子フォームの枠が出たままフリーズしてしまいます。どうしてもスレッドからフォームを新規作成したいのですが、何かやり口はあるのでしょうか?
private void MainForm_Load(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
// DoWorkイベントハンドラ
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (m_Done)
{
// ここで、なんらかの処理をして条件に合えばフォームを作成
if( .....)
{
Form_Child fc = new Form_Child();
fc.show();
}
}
}
0427デフォルトの名無しさん
2007/05/30(水) 01:15:50なんでメインスレッドで表示させちゃいかんの?
0428デフォルトの名無しさん
2007/05/30(水) 01:21:160429デフォルトの名無しさん
2007/05/30(水) 01:37:26線を描画したいです。
Paintイベント無いみたいだし、なんか方法ない?
0430デフォルトの名無しさん
2007/05/30(水) 01:37:32たしかに必然性が感じられない
そのフォームの扱いに困るし
メインスレッドに通知してそっちで作った方がいいっしょ
LimeChatとやらのモドキを作ってる方ですか?
0431デフォルトの名無しさん
2007/05/30(水) 01:38:17DrawItemイベント
0432デフォルトの名無しさん
2007/05/30(水) 01:58:23チャットウィンドウの作成をメインスレッドに委託すればOK
delegate void DelegateShowFormChat();
class Chat
{
Form form;
public Chat(Form form)
{
this.form = form;
Thread t = new Thread(Run);
t.Start();
}
void Run()
{
DelegateShowFormChat dele = new DelegateShowFormChat(ShowFormChat);
form.Invoke(dele); // メインスレッドに委託
}
void ShowFormChat()
{
FormChat formChat = new FormChat();
formChat.Show();
}
}
上手いやり方かどうかはわからないけど
これをメインフォームから
Chat chat = new Chat(this);
で呼び出せば別スレッドからメインスレッドにウィンドウを作らせることが可能
0433デフォルトの名無しさん
2007/05/30(水) 02:03:56とした場合、ツールチップの表示時間とかは細かく設定できないんでしょうか?
0434デフォルトの名無しさん
2007/05/30(水) 07:05:13ありがとうございます。ちょっと試してみます。
0435デフォルトの名無しさん
2007/05/30(水) 10:52:33MSDNにそれらしい記述はあるのですが、何を書いてあるのかさっぱりです。
>WeakReference オブジェクトは、終了後にターゲットへの参照を維持するかどうか、
>つまり、弱い参照によりターゲットの再生を追跡するかどうかを指定できます。
>再生を追跡しない弱い参照は、"短い弱い参照" と呼ばれます。
>再生を追跡する弱い参照は、"長い弱い参照" と呼ばれます。
0436デフォルトの名無しさん
2007/05/30(水) 10:55:25それに使う場面なんて通常はないし
0437デフォルトの名無しさん
2007/05/30(水) 13:19:15それらしいメソッド見つからなくてIsSubClassOf試してみたけど撃沈・・・orz
0438デフォルトの名無しさん
2007/05/30(水) 13:58:47普通は使う必要はない
0439デフォルトの名無しさん
2007/05/30(水) 14:10:40オブジェクトじゃなくTypeとinterfaceを調べるなら、スマートな方法はなさそうです。
Type#GetInterfaces使うしかないっかな。
>>438
普通じゃないケースというのは具体的にどういう時使うのだろう?
0440デフォルトの名無しさん
2007/05/30(水) 14:32:11.NETじゃなくてJavaの話だけど、
GC有りの言語で特殊な参照が役に立つ例。
ttp://blogs.wankuma.com/kacchan6/archive/2007/04/17/71882.aspx
0441デフォルトの名無しさん
2007/05/30(水) 14:42:07話題になってるのは単純な弱参照のことじゃなくて長い弱参照。
GCの対象になってファイナライザが動いて、それでいてメモリがまだ回収されてないときに
強参照が回復するとオブジェクトが復活するってことだよな。
使い道が不明だなこりゃ。
0442デフォルトの名無しさん
2007/05/30(水) 18:09:32typeof(ISample).IsAssignableFrom(type)は?
0443デフォルトの名無しさん
2007/05/30(水) 18:16:590444デフォルトの名無しさん
2007/05/30(水) 19:13:57P/Invokeに使用する構造体のLPTStrなフィールドに数値を入れるのに必要です。
とりあえずはそのフィールドをintにすれば動くのですが。
0445デフォルトの名無しさん
2007/05/30(水) 19:28:250446デフォルトの名無しさん
2007/05/30(水) 19:29:410447デフォルトの名無しさん
2007/05/30(水) 20:07:35どれのこと?
c#でIDなんか使わないと思うが?
0448444
2007/05/30(水) 20:31:43IContextMenu.QueryContextMenuで得たメニューをTrackPopupMenuで表示して
返ってきたコマンドIDをCMINVOKECOMMANDINFO.Verbに入れて
IContextMenu.InvokeCommandするのに必要です。
Verbフィールドは
[MarshalAs(UnmanagedType.LPTStr)] public string Verb;
今のところこれをintにしている…。
0449デフォルトの名無しさん
2007/05/30(水) 21:31:01コマンドID入れるならIntPtrでOKじゃない?
昔書いたC#のソースだと
TrackPopupMenuの戻り値から1引いて(indexになおす?)
0xFFFFとANDとってた
0450デフォルトの名無しさん
2007/05/30(水) 21:33:48これだけだから上手いことやったら?
0451444
2007/05/30(水) 21:42:49return Encoding.Default.GetString((BitConverter.GetBytes(n)));
}
これでいけそうな気がしたが上手く動かないな…。
変換後のバイト列は確かに同じなんだけど…。
マーシャリングが上手くいってないのか?
0452444
2007/05/30(水) 21:44:25もうちょっと悩んでみる。
IntPtrでも用は足りるんだけど、スマートじゃないかなと思った…。
0453デフォルトの名無しさん
2007/05/30(水) 21:45:22文字とポインタ。
0454デフォルトの名無しさん
2007/05/30(水) 21:54:10何でそう思うの?
0455444
2007/05/30(水) 21:59:36QueryPopupMenuのidCmdFirst引数の分を引くからだと思う。
>>453
ああ、そうか、おぼろげながら分かってきた(ような)。
変換した文字列へのポインタを渡しちゃってるわけか。
0456444
2007/05/30(水) 22:11:34MarshalAs(ryしてたから変に感じたのかもしれない…。
この場合マーシャリングするとアレだと分かったのでIntPtrでいきます。
0457デフォルトの名無しさん
2007/05/30(水) 22:56:10type.FindTypes(Module.FilterTypeName, "InterfaceName")
もしくは
type.FindTypes(object.ReferenceEquals, interfaceType);
てな感じとか
0458デフォルトの名無しさん
2007/05/30(水) 22:57:46intだとアウト
0459デフォルトの名無しさん
2007/05/30(水) 22:59:43>type.FindTypes(object.ReferenceEquals, interfaceType);
type.FindTypes(object.Equals, interfaceType);
の方が普通だな。
0460デフォルトの名無しさん
2007/05/30(水) 23:03:58FindTypesじゃなくてFindInterfacesの間違い。
0461デフォルトの名無しさん
2007/05/30(水) 23:04:07試したのか?
多分、構造体の定義変えれば全く問題ないはず。
0462デフォルトの名無しさん
2007/05/30(水) 23:08:50return Array.IndexOf(@class.GetInterfaces(), @interface) >= 0;
}
0463デフォルトの名無しさん
2007/05/30(水) 23:20:13foo x=new foo(),y=new foo();
x=x+y;
としても、xにoperator+ x,yの演算結果は入るんですが、どうも変です。
デバッガで追跡してみると、
x=x+y;//ここまでは大丈夫
foobar();//ここでxの内容が何故か元に戻る
operator+内部では、新しいインスタンスを生成し(new foo())、それに演算結果を格納、
そのインスタンスを返しています。
C#はGCが付いていると訊いたので、メソッド外部へインスタンスをたらい回しにしても
参照は消えていないのでoperator+で宣言した実体は生きているはずですし、
演算前のxも消えるはずです。何でこんな事になってしまうんでしょうか。
もうやだ。みんな死ねばいいのに。
0464デフォルトの名無しさん
2007/05/30(水) 23:24:11必要な情報が抜けすぎです。
取り敢えずfoobar()ってなに?
0465デフォルトの名無しさん
2007/05/30(水) 23:29:12VSのデバッガで追うと、x=x+y;の次の行にいった時点でxが元に戻る。
0466デフォルトの名無しさん
2007/05/30(水) 23:31:59答え以前に structが何か理解していないな。
参照型じゃないぞ。
0467デフォルトの名無しさん
2007/05/30(水) 23:33:13x=x+y;
が実行された時点でデバッガは次の行にいってる。
この時点で新しいxの内容が表示される。
もうちと正確に表現してくれ。
0468デフォルトの名無しさん
2007/05/30(水) 23:34:13その質問の仕方じゃ、人様にお前さんがこさえたバグを
エスパーしろと言っているのと同じだと思う。
問題を再現可能な最小のコードを提示しようよ。
0469デフォルトの名無しさん
2007/05/30(水) 23:34:35代入されるの間違いじゃないか?
0470デフォルトの名無しさん
2007/05/30(水) 23:36:45便利になったもんだ。
0471デフォルトの名無しさん
2007/05/30(水) 23:49:1764bitだとまずくね?
0472デフォルトの名無しさん
2007/05/31(木) 00:02:300473デフォルトの名無しさん
2007/05/31(木) 00:04:320474デフォルトの名無しさん
2007/05/31(木) 00:05:10なんで構造体を既定のコンストラクタでnewしてんの?
意味分かって書いてるならいいんだけど。
0475デフォルトの名無しさん
2007/05/31(木) 00:06:340476デフォルトの名無しさん
2007/05/31(木) 00:14:29returnに変なもん渡してんじゃないの?
引数を内部で書き換えて終了させてるとかw
0478デフォルトの名無しさん
2007/05/31(木) 04:15:05C++のstd::greater<double>()みたいなのはないんでしょうか。
0479デフォルトの名無しさん
2007/05/31(木) 04:32:590480デフォルトの名無しさん
2007/05/31(木) 04:39:23ありがとうございます。助かります。
0481デフォルトの名無しさん
2007/05/31(木) 10:41:37Sort()→Reverse()
0482デフォルトの名無しさん
2007/05/31(木) 11:44:05class Hello {
bool finalized = false;
public Hello() { Console.WriteLine("init"); }
~Hello() { finalized = true; Console.WriteLine("fin"); }
public bool Finalized { get { return finalized; }}
public void ReInit() {
if (finalized) { finalized = false; GC.ReRegisterForFinalize(this); Console.WriteLine("re-init"); }
}
public void Say() { Console.WriteLine("Alive : {0}", !finalized); }
}
class TestWR {
WeakReference wr = new WeakReference(new Hello(), true);
void InvokeWR() {
Hello h = (Hello) wr.Target;
if (h == null) { h = new Hello(); wr = new WeakReference(h, true); }
else if (h.Finalized) h.ReInit();
h.Say();
}
0483デフォルトの名無しさん
2007/05/31(木) 11:56:04比較関数自作の場合は別だが
0484デフォルトの名無しさん
2007/05/31(木) 11:56:59ファイナライザでアンマネージドリソースを開放したがメモリは回収していない状態で、
そのメモリを再利用してオブジェクトを復活させるのに使用する。
一度ファイナライザが動くと次回のGCで即メモリが回収されてしまうので、
最初期化でGC.ReRegisterForFinalize(this)を使い今一度ファイナライザが動くように設定するのがポイント。
0485デフォルトの名無しさん
2007/06/01(金) 10:42:11比較して一意性を持たせたいのですが、どんな手法を使うべきでしょうか?
例えば、string型でもint型でもすべてbyte[]型に変換してXORする、
といったやり方はどうでしょうか?
0486デフォルトの名無しさん
2007/06/01(金) 11:35:09オーバーライドしなくてもインスタンスごとに
GetHashCode()の戻り値は違うけど、
わざわざオーバーライドする必要はあるの?
0487デフォルトの名無しさん
2007/06/01(金) 12:31:32インスタンスのアドレスじゃなくてプロパティの値を見て。
0488デフォルトの名無しさん
2007/06/01(金) 12:34:36値型プロパティだけじゃなくて配列の中身なんかの参照型の中身も見て
Hash求めたいって場合もあるから、
実装の定番のやり方を知っておきたいなと思いまして。
0489デフォルトの名無しさん
2007/06/01(金) 12:34:55ハッシュはバラケてるほうが良いのは確かだがハッシュの計算に時間がかかったら本末転倒。
極端な話、等価であれば同じ値であることを保障すればいいので、
一律同じ値を返しても、パフォーマンス以外支障はない。
0490デフォルトの名無しさん
2007/06/01(金) 12:50:09することです。だからハッシュがばらけててくれないと困ります。。
プロパティを変更したときにハッシュを再計算させて、キャッシュに
残しとけばGetHashCode()ではそれを返すだけだから速度は解決のような。
別の値でおんなじハッシュになったらどうするんでしょうか?リストで
連結して、それらをEquals()で比較?
0491デフォルトの名無しさん
2007/06/01(金) 14:05:16教えてエロイ人。
0492デフォルトの名無しさん
2007/06/01(金) 14:12:23((Type)instance).Method();
0493デフォルトの名無しさん
2007/06/01(金) 14:26:37ついでに事故解決しますた。
>あるタイプを表わすSystem.Type t;があったとしてobjectをそのtでキャストしたいとしたらどうしたらいいんでせう?
>教えてエロイ人。
0494デフォルトの名無しさん
2007/06/01(金) 14:28:140495デフォルトの名無しさん
2007/06/01(金) 14:28:410496デフォルトの名無しさん
2007/06/01(金) 15:21:45です。
けれども少なくともEnumの場合は
(EnumType)(System.Int32)0と
Convert.ChangeType(typeof(Enumtype),0)では動作が違うようです。
後者ではInvalidCastExceptionがでます。
0497デフォルトの名無しさん
2007/06/01(金) 16:05:160498デフォルトの名無しさん
2007/06/01(金) 16:41:040499デフォルトの名無しさん
2007/06/01(金) 16:49:35そういう用途の場合だと、自分はシングルトンパターンを使って
値等価のインスタンスはひとつしか作成しないようにします。
シングルトンパターンが使いにくい場合もあるかもですが…
0500デフォルトの名無しさん
2007/06/01(金) 16:54:200501デフォルトの名無しさん
2007/06/01(金) 16:57:00普通にプロパティのハッシュを求めてシフトしながらxorとればいいでしょ。
ハッシュの衝突は気にしなくてよい。
0502デフォルトの名無しさん
2007/06/01(金) 16:58:29Stringのようなオブジェクトを作りたいって話だとおもうんだが、シングルトンじゃ無理だろ。
0503デフォルトの名無しさん
2007/06/01(金) 17:27:520504デフォルトの名無しさん
2007/06/01(金) 20:34:45>>499様 singletonてよりflyweightfactor?それもいい。参考になります^^
>>489様>>501様 かっこよいです。貴方のようなスーパーハカーになりたいお。
0505デフォルトの名無しさん
2007/06/01(金) 21:18:160506デフォルトの名無しさん
2007/06/01(金) 21:21:560507デフォルトの名無しさん
2007/06/01(金) 21:47:42勝手に困ってろ。
0508デフォルトの名無しさん
2007/06/01(金) 22:01:100509デフォルトの名無しさん
2007/06/01(金) 22:01:27↓から読んでいけば?
ttp://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0
0510デフォルトの名無しさん
2007/06/01(金) 23:48:40まあできないこともあるだろうし仕方ないけどね。
※絶対おかしな使いかたしてトラブるやつが出てくるんだ…
0511デフォルトの名無しさん
2007/06/02(土) 17:00:15list_data.next -> .next -> .next -> [null]
これを解放するときは先頭の
list_data = null;
を実行するだけでいいのかな?
0512デフォルトの名無しさん
2007/06/02(土) 17:06:530513デフォルトの名無しさん
2007/06/02(土) 17:58:03�dクス
0514デフォルトの名無しさん
2007/06/02(土) 18:19:050515デフォルトの名無しさん
2007/06/02(土) 18:23:030516デフォルトの名無しさん
2007/06/02(土) 19:17:090517デフォルトの名無しさん
2007/06/02(土) 19:37:09vbモジュールに参照を置いてしまうようなプログラムも少なくなかったからね。
消し忘れるぐらいならなんにでもNothingをぶち込めとかの程度の低いコーディングルールがまかり通っていた。
.NETのGCだと循環参照もスパッと消えていい感じ。
相互に参照をもってる双方向のリストも問題なく消える。
0518デフォルトの名無しさん
2007/06/02(土) 21:20:16無駄では無くも無いような気がしないでも無いような
0519デフォルトの名無しさん
2007/06/02(土) 21:24:35どうせ大抵はスタックに一つ参照がとられるだけかフィールドとして親と寿命は共にするかのどっちかだ
メソッドの途中ですら使わないオブジェクトは GC 対象になるし
0520デフォルトの名無しさん
2007/06/03(日) 02:39:090521デフォルトの名無しさん
2007/06/03(日) 03:57:430522デフォルトの名無しさん
2007/06/03(日) 04:20:250523デフォルトの名無しさん
2007/06/03(日) 22:40:40SQLの条件を書くのに便利そうだと思って、DbParameterなどを調べて使っていたのですが
よくよく調べてみると、パラメータ化の書式が違うようです。
DbParameterなどは「データベースプロバイダに依存しないデータ取得コード」には
結局使えないということで理解はあっているでしょうか?
0524デフォルトの名無しさん
2007/06/03(日) 22:59:45プロバイダに依存しないデータ取得メソッドレベルの話ならラップするだけじゃねーの?
0525デフォルトの名無しさん
2007/06/04(月) 00:50:050526デフォルトの名無しさん
2007/06/04(月) 01:04:24APIでドゾ
0527デフォルトの名無しさん
2007/06/04(月) 01:13:56強いて言えばWPFに多少入ってる。
でも激しくラップされた高レベルAPIばかりだから
ネイティブAPIの代わりにはならんよ。
0528デフォルトの名無しさん
2007/06/04(月) 03:12:200529デフォルトの名無しさん
2007/06/04(月) 04:04:190530デフォルトの名無しさん
2007/06/04(月) 08:51:11遅いの君のせい
0531デフォルトの名無しさん
2007/06/04(月) 10:39:19素人は黙ってたほうがいいよ。
0532デフォルトの名無しさん
2007/06/04(月) 10:41:550533デフォルトの名無しさん
2007/06/04(月) 11:03:390534デフォルトの名無しさん
2007/06/04(月) 11:08:21そんなことは初めから分かってることだ。
0535デフォルトの名無しさん
2007/06/04(月) 11:11:11メモリが少ないのかな
0536デフォルトの名無しさん
2007/06/04(月) 11:53:490537デフォルトの名無しさん
2007/06/04(月) 12:01:38プロパティの値変更をループの中に入れてるのがあった
で、それが実態はプロシージャだったもんだから・・
Windowのサイズ変更とかだったかなあ、最後に一回呼べば済むようなやつね。
0538デフォルトの名無しさん
2007/06/04(月) 12:45:51アルゴリズム的なのはそれほど遜色ないと思うが。
0539デフォルトの名無しさん
2007/06/04(月) 12:58:18言ってるんだろうな。
0540デフォルトの名無しさん
2007/06/04(月) 13:01:36とか? string something += ....なんてやると…
0541デフォルトの名無しさん
2007/06/04(月) 13:46:58.NETが速いっていう感性になりてーよ。
そういう奴ってなんにも不満がなくて、幸せそう。
0542デフォルトの名無しさん
2007/06/04(月) 13:48:100543デフォルトの名無しさん
2007/06/04(月) 13:49:050544デフォルトの名無しさん
2007/06/04(月) 13:50:33そういう奴ってなんにも不満がなくて、幸せそう。
0545デフォルトの名無しさん
2007/06/04(月) 13:59:07C++からの移行組みは文句のひとつもいいたくなるだろうな。
ましてや遅いのがスキルのせいにされてはな。
0546デフォルトの名無しさん
2007/06/04(月) 13:59:51自動プロパティがでてきてフィールド使う機会が減りそうだから心配。
あと、自動プロパティって○○Changedに勝手にアクセスしてくれるかね?
0547デフォルトの名無しさん
2007/06/04(月) 14:16:49自動プロパティがPropertyChangedイベントを呼んでくれるって話は聞いたことがないな。
ところで、2.0からは○○Changedイベントは非推奨になってるよ。
0548デフォルトの名無しさん
2007/06/04(月) 14:22:340549デフォルトの名無しさん
2007/06/04(月) 14:23:090550デフォルトの名無しさん
2007/06/04(月) 14:50:36わざわざ、DLL呼ぶのは冗長だな。
0551デフォルトの名無しさん
2007/06/04(月) 14:51:18INotifyですね。教えてくれてありがとう。
055274
2007/06/04(月) 14:52:22AutoIncrement の Ture/False を取得したいんではなく、
実際にIncrementされた値(元々1とかだったらInsert後は2になっているとかの2の部分)が知りたいわけです。
DataSet に NewRow した後に Updateかけて新規追加するか
TableAdapterにInsertして新規追加するです。
質問の仕方がごっちゃになってました、スマソ
>>85
SQLiteです。
ADO.NET 2.0 Provider for SQLite 使ってます。
0553デフォルトの名無しさん
2007/06/04(月) 15:05:12何をやったらどういう風に遅かったのか言ってもらわんことには
議論のしようがない。
0554デフォルトの名無しさん
2007/06/04(月) 15:08:2520FPSくらいしかでない
0555テスト
2007/06/04(月) 15:12:17$amp;
0556テスト
2007/06/04(月) 15:13:200557テスト
2007/06/04(月) 15:14:210558デフォルトの名無しさん
2007/06/04(月) 15:18:49最低でも30FPSは確保できないと。
ゲームではXNA使わないと無理か。
0559デフォルトの名無しさん
2007/06/04(月) 15:28:030560デフォルトの名無しさん
2007/06/04(月) 15:35:162000に対応してないのが痛いが、業務アプリでは
WPFで十分通用するからな。
0561デフォルトの名無しさん
2007/06/04(月) 16:49:05WPFも遅いですよ(´・ω・`)
0562デフォルトの名無しさん
2007/06/04(月) 17:39:51アプリ起動後遅いのは、クリティカルになる可能性があるが、
業務アプリ程度なら、それほど気にならない。
0563デフォルトの名無しさん
2007/06/04(月) 18:53:430564デフォルトの名無しさん
2007/06/04(月) 19:01:190565デフォルトの名無しさん
2007/06/04(月) 19:43:49昔のJava厨みたいだから。
0566デフォルトの名無しさん
2007/06/04(月) 19:46:39いや、今のJava厨も全然変わってないよ。
JavaでC++並みの実行速度を出すPGを組むスレ Part2
http://pc11.2ch.net/test/read.cgi/tech/1180877520/
0567デフォルトの名無しさん
2007/06/04(月) 19:49:040568デフォルトの名無しさん
2007/06/04(月) 19:52:410569デフォルトの名無しさん
2007/06/04(月) 20:02:320570デフォルトの名無しさん
2007/06/04(月) 20:12:45Formsが遅いのはコントロール毎にPaintを呼んでいるから。
0571デフォルトの名無しさん
2007/06/04(月) 20:15:18確かにWinアプリの起動は遅いんだけど、それも2.0から少し速くなった感じがするし。
0572デフォルトの名無しさん
2007/06/04(月) 20:16:35それWindows Formに限らないから。
恥ずかしい奴だなw
0573デフォルトの名無しさん
2007/06/04(月) 20:21:46つWPF
0574デフォルトの名無しさん
2007/06/04(月) 20:23:250575デフォルトの名無しさん
2007/06/04(月) 20:27:540576デフォルトの名無しさん
2007/06/04(月) 20:33:240577デフォルトの名無しさん
2007/06/04(月) 20:37:14チップセット内臓のVGA使ってる奴だっていっぱいいるんだけど。
そうでなくてもノートPCとかね
0578デフォルトの名無しさん
2007/06/04(月) 20:42:360579デフォルトの名無しさん
2007/06/04(月) 20:43:22そんな簡単に新しいPC調達できるわけ無いだろう。
0580デフォルトの名無しさん
2007/06/04(月) 20:44:03日本語でおk
0581デフォルトの名無しさん
2007/06/04(月) 20:56:31クリックした瞬間描画がクリアされて、1秒後に結果が表示される。
移植前のWTL前はクリック直後に即表示だったんで、1秒も我慢ならんのだが、
クリックした瞬間描画がクリアにならないようにするにはどうしたらいいか教えて。
0582デフォルトの名無しさん
2007/06/04(月) 20:57:393Dとか使わなきゃ
0583デフォルトの名無しさん
2007/06/04(月) 21:03:190584デフォルトの名無しさん
2007/06/04(月) 21:41:48コードうp
うちのpen4 2.4Gじゃそんなことにならん。
件数が多いのか?
0585デフォルトの名無しさん
2007/06/04(月) 21:52:370587デフォルトの名無しさん
2007/06/04(月) 22:07:33class ListViewItemComparer : System.Collections.IComparer{
public void SetColumn(int col);
public int Compare(object x, object y){
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
}
col保持部分ちょっと省略したけど、これをListViewItemSorterに設定して、
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
((ListViewItemComparer)this.listView1.ListViewItemSorter).SetColumn(e.Column);
}
してるだけ。件数は500件ぐらい。カラム数は14。pne2.6G。
0588デフォルトの名無しさん
2007/06/04(月) 22:08:49そんなムキにならんでもいいだろうに。
要するになんにか心に不安を抱えてる人間なんだと思うよ。
不安な人間というのは自分の知らない人や物を否定したがるもんなんだよ。
2chだったら極東スレだのハングルスレだの見れば実例にあふれてる。
イジーライダーって映画にも「アメリカ人は口を開けば自由というが、本当に自由な
連中を見ると嫌悪する」って台詞が出てくるな確か。
0589デフォルトの名無しさん
2007/06/04(月) 22:41:55揚げ足取りにしかなってないかも知れないけど、それってサンプル通りじゃないよね
それだとColumnClickのイベントハンドラでListViewのSort呼ばないとダメなんじゃないの?
0590デフォルトの名無しさん
2007/06/04(月) 22:46:57ListViewItemSorterを設定したら勝手にソートするってMSのサイトに書いてあった。
それより、知りたいのは、クリックした瞬間描画がクリアにならないようにする方法。
0591デフォルトの名無しさん
2007/06/04(月) 22:49:57それとも>>587はコピペミス?
0592デフォルトの名無しさん
2007/06/04(月) 22:51:16>col保持部分ちょっと省略したけど、これをListViewItemSorterに設定して、
0593デフォルトの名無しさん
2007/06/04(月) 22:52:33バカか?揚げ足とりしようとして失敗したの?
0594デフォルトの名無しさん
2007/06/04(月) 22:57:45俺が誤解してるのかも知れないけど、
MSDNライブラリのここの「メモ」にある
>ListViewItemSorter プロパティの値を設定すると、Sort メソッドが自動的に呼び出されます。
とは、ListViewItemSorterのセッターがコールされると、後続してSortメソッドが
呼び出される、という意味ではないのかな?
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.listview.listviewitemsorter(VS.80).aspx
あとここのサンプルコードにはこうも書いてある
// Set the ListViewItemSorter property to a new ListViewItemComparer
// object. Setting this property immediately sorts the
// ListView using the ListViewItemComparer object.
0595デフォルトの名無しさん
2007/06/04(月) 23:01:440596デフォルトの名無しさん
2007/06/04(月) 23:04:09たぶんそれだった思う。
でも、Sortメソッドを全く呼んでないけど、ソートはされてるので、そう理解した。
0597デフォルトの名無しさん
2007/06/04(月) 23:05:29回答?まだ一つも回答されてないよ?
0598デフォルトの名無しさん
2007/06/04(月) 23:22:240599デフォルトの名無しさん
2007/06/04(月) 23:23:10GDI/GDI+のビットマップ転送能力(第1稿)
0600デフォルトの名無しさん
2007/06/04(月) 23:25:03ListViewは至れり尽くせりだな。
0601デフォルトの名無しさん
2007/06/04(月) 23:31:39orz
0602デフォルトの名無しさん
2007/06/04(月) 23:38:03今更DDB使って高速化してもVista以降のWDDMだとにCPU処理されてDIB相当になるよ。
0603デフォルトの名無しさん
2007/06/04(月) 23:43:08やっぱりSort呼ばないとダメだと思うよ。
それが遅い原因かどうかはともかく。
>>594の「メモ」は英語では
>When you set the value of the ListViewItemSorter property, the Sort method is called automatically.
となっている。
どぼん氏のところのサンプルでも、>>587のコードのようにListViewItemSorter のセッタを呼んでない場合には
ちゃんとSortメソッドを呼んでいるようだ。
0604デフォルトの名無しさん
2007/06/04(月) 23:56:440605デフォルトの名無しさん
2007/06/05(火) 00:07:200606デフォルトの名無しさん
2007/06/05(火) 00:13:46ttp://codezine.jp/a/article/aid/1333.aspx
0607デフォルトの名無しさん
2007/06/05(火) 00:22:37だから「遅い」って言うやつは具体例を挙げろと何年言わせるんだ。
0608デフォルトの名無しさん
2007/06/05(火) 00:26:25ありがとう。ビンゴじゃないけど、わかりました。
昇順、降順機能を追加したとき、Sortingプロパティを設定してました。
Sortingプロパティを設定してもSort()が呼ばれるみたいです。
0609デフォルトの名無しさん
2007/06/05(火) 01:49:280610デフォルトの名無しさん
2007/06/05(火) 14:15:440611デフォルトの名無しさん
2007/06/05(火) 14:33:400612デフォルトの名無しさん
2007/06/05(火) 14:37:410613デフォルトの名無しさん
2007/06/05(火) 16:54:420614デフォルトの名無しさん
2007/06/05(火) 17:11:41遅いと感じないセンスの持ち主は顧客、ユーザーとしては最高だ。
悪く言えば、鈍感、のろまなんだけど。
0615デフォルトの名無しさん
2007/06/05(火) 17:32:230616デフォルトの名無しさん
2007/06/05(火) 17:35:25そういう口調で話すキモイ奴が今オレの横にいる
0617デフォルトの名無しさん
2007/06/05(火) 18:44:05別に理由は分かってるよ。25年もコード書いてるから。
ただ愚痴りたかっただけ。
0618デフォルトの名無しさん
2007/06/05(火) 18:46:36それって相当な負け組みなんじゃ…
いるのか?ずっとコーダのまま、そんなやつ。
0619デフォルトの名無しさん
2007/06/05(火) 18:48:11Formsが遅いのか?それとも、ロジックの実行速度が遅いのか?
0620デフォルトの名無しさん
2007/06/05(火) 18:49:420621デフォルトの名無しさん
2007/06/05(火) 18:50:280622デフォルトの名無しさん
2007/06/05(火) 18:50:49ただ、Javaと同じ間違いをしなければいい。
未だにデスクトップアプリでJavaが全く普及してない事実をよく考えないとね。
0623デフォルトの名無しさん
2007/06/05(火) 18:54:370624デフォルトの名無しさん
2007/06/05(火) 18:55:220625デフォルトの名無しさん
2007/06/05(火) 18:56:070626デフォルトの名無しさん
2007/06/05(火) 18:59:110627デフォルトの名無しさん
2007/06/05(火) 19:00:11MSのこれからの戦略次第でC#ブームは来る。
Javaブームは、言ってみればITブームに乗って偽装請負会社とSIの小銭稼ぎに利用されただけ。
0628デフォルトの名無しさん
2007/06/05(火) 19:01:340629デフォルトの名無しさん
2007/06/05(火) 19:04:22まさか、Javaが敬遠された理由、遅い、もっさりしているとか同じ理由で普及してないんじゃないのか?
0630デフォルトの名無しさん
2007/06/05(火) 19:09:36.NET Frameworkは、最近Windowsに標準搭載されているからその点有利になってきていると思うが
0631デフォルトの名無しさん
2007/06/05(火) 19:10:040632デフォルトの名無しさん
2007/06/05(火) 19:10:43あと10年待てばOK。
0633デフォルトの名無しさん
2007/06/05(火) 19:10:47.NET のところだけ見て反射でレスしてもうた。
0634デフォルトの名無しさん
2007/06/05(火) 19:10:580635デフォルトの名無しさん
2007/06/05(火) 19:12:400636デフォルトの名無しさん
2007/06/05(火) 19:13:09ランタイムを使うアプリからすると厳しいな。
初期起動でメモリにアプリを割り当てるのに時間がかかり、
Formsだと描画速度が劇遅でユーザが不満に思うのも無理がない。
0637デフォルトの名無しさん
2007/06/05(火) 19:13:470638デフォルトの名無しさん
2007/06/05(火) 19:14:550639デフォルトの名無しさん
2007/06/05(火) 19:49:32やるのも楽ですし。
0640デフォルトの名無しさん
2007/06/05(火) 20:35:40ちょっと凝ったことしようと思えばAPIの宣言からってVBと同レベじゃん
0641デフォルトの名無しさん
2007/06/05(火) 21:44:410642デフォルトの名無しさん
2007/06/05(火) 21:46:07単に趣味でプログラムやってるかもしれないだろ
というかC#な時点でその可能性が高いだろ
というかそういう考えが出る618は仕事でやってたりする?
0643デフォルトの名無しさん
2007/06/05(火) 21:46:180644デフォルトの名無しさん
2007/06/05(火) 21:46:450645デフォルトの名無しさん
2007/06/05(火) 21:47:530646デフォルトの名無しさん
2007/06/05(火) 21:48:40不満を感じてるのは作り手だけで実際使ってる方は思うほど気にしてない罠
0647デフォルトの名無しさん
2007/06/05(火) 21:51:36ほっとけw
不幸な奴というのはえてして不幸の原因をお門違いのものに求めるものなんだ。
防衛機制という心理的メカニズムだな。
642は不幸の原因を自分がプログラマであることに求めてしまったから、
642の中では不幸とPGが同値なんだろう
0648デフォルトの名無しさん
2007/06/05(火) 22:02:26MS自身DllImportを使いまくって.NET Frameworkのライブラリを実装してるわけだから
.NET FrameworkのライブラリのDLLの中に大量に含まれてるよ
そういうのは全部internalになってるけどw
0649デフォルトの名無しさん
2007/06/05(火) 22:03:16これから仕方なく.NET系VBへの以降が増えてくる。
世の中VB技術者が数だけはアホみたいに多いしな。
んで、.NET系トンでもシステムが爆産されて.NET使えねー扱いと
orz
0650デフォルトの名無しさん
2007/06/05(火) 22:24:31C#.NETだけだと、人数は少ないけど品質は最低限保証されるのができていたが、
VB.NETが参入してきて、人数が激増で品質はガタ落ちorz
0651デフォルトの名無しさん
2007/06/05(火) 23:07:40VB6の遺産をむりやり使おうとしてるプロジェクトの悲惨さは目も当てられないよな。
でかいプロジェクトだと仕方ないのかもしれないが・・・
>>650
VB.NET自体は悪くないと思う。
ただ、技術者の質がな・・・・
0652デフォルトの名無しさん
2007/06/06(水) 00:24:10その昔にアセンブラとC言語を速度比較してたのと同じじゃねーか。
どう考えても、今一番求められてるのは「開発コスト」だろ。
それも知らずにC#に手を出す意味がわからん。
開発コストを考える必要のない、誰も使わないフリーウェア作成が趣味のプログラマーは
最初からC++やってればいい。
0653デフォルトの名無しさん
2007/06/06(水) 00:27:24「速くはないが十分な速度。でも処理速度より開発効率が優先されてる」
って答えてる。
でも実際速度で困ったことはないけどな…
いったいみんな何作ってんの?
0654デフォルトの名無しさん
2007/06/06(水) 00:28:560655デフォルトの名無しさん
2007/06/06(水) 00:29:380656デフォルトの名無しさん
2007/06/06(水) 00:33:11馬鹿だらけ。
業務で使っているDBは表示部で絞ってるよ。
0657デフォルトの名無しさん
2007/06/06(水) 00:33:330658デフォルトの名無しさん
2007/06/06(水) 00:41:39Excel 2007で65535行超えられるようになったらしいんだけど
絶対予想の斜め上を行く奴が出てくるぜ。
0659デフォルトの名無しさん
2007/06/06(水) 00:44:340660デフォルトの名無しさん
2007/06/06(水) 02:29:080661デフォルトの名無しさん
2007/06/06(水) 02:58:46Oracleからのデータ取得に配列アクセスできるし。
0662デフォルトの名無しさん
2007/06/06(水) 03:04:390663デフォルトの名無しさん
2007/06/06(水) 04:01:320664デフォルトの名無しさん
2007/06/06(水) 06:05:36これって、ダイレクトxのラッパーなのですか?
それともウイン32apiを使ってるのですか?
0665デフォルトの名無しさん
2007/06/06(水) 07:01:520666デフォルトの名無しさん
2007/06/06(水) 07:19:510667デフォルトの名無しさん
2007/06/06(水) 07:25:42フナムシでもお前よりは頭を使いそうな気がする。
0668デフォルトの名無しさん
2007/06/06(水) 08:04:46もしかして、dllインポートとかの事を言ってるのか?
0669デフォルトの名無しさん
2007/06/06(水) 08:38:23Bitmapを用意し、DrawImageしたんですが、パフォーマンスがでません。
DrawImage以外でBitmapをPictureBoxに速く転送する方法ってありますか?
0670デフォルトの名無しさん
2007/06/06(水) 08:53:310671デフォルトの名無しさん
2007/06/06(水) 09:46:56BitBlt呼んだら変わるかね
0672デフォルトの名無しさん
2007/06/06(水) 10:40:03StartSound()とかStopSound()とかを使うんですよ。
0673デフォルトの名無しさん
2007/06/06(水) 10:54:48いや、俺の古いバージョンってのはもっと前のバージョンの話なんだけど、
まあ、良いです。
もともと、詰まらんことを聞いただけなので、
すんませんでした。
0674デフォルトの名無しさん
2007/06/06(水) 11:39:26BitBltの方が速い
0675デフォルトの名無しさん
2007/06/06(水) 12:23:32いやドトネトの世界でダブルバッファって言えば、
普通は君が言ってるような自前の実装じゃなくてコントロール自体のダブルバッファリングの機能を
使うことになるんじゃないの?
0676デフォルトの名無しさん
2007/06/06(水) 12:35:59{
double arary[256];
};
というC言語での構造体を、P/Invokeを用いてC#に渡したいのですが
C#で同じ構造体をつくるにあたって、double array[256]は
どう定義すればよいでしょうか?よろしくお願いします。
0677デフォルトの名無しさん
2007/06/06(水) 12:42:11http://msdn2.microsoft.com/ja-jp/library/eshywdt7(VS.80).aspx
0678デフォルトの名無しさん
2007/06/06(水) 13:01:300679デフォルトの名無しさん
2007/06/06(水) 13:04:25基本的な単語の定義が違いすぎて、混乱して、どうしよもなくて、
鬱になりそうで、ここで相談してるんじゃないの?
0680デフォルトの名無しさん
2007/06/06(水) 13:33:52APIの呼び出しコストのせいか更に遅くなった
0681デフォルトの名無しさん
2007/06/06(水) 13:34:33[ MarshalAs( UnmanagedType.ValByArray, SizeConst=n )]
だと構造体のポインタが宣言できなくて。すでに鬱です。
0682デフォルトの名無しさん
2007/06/06(水) 13:38:530683デフォルトの名無しさん
2007/06/06(水) 13:41:51APIレベルの話ではないと思うが。
0684デフォルトの名無しさん
2007/06/06(水) 13:45:42使っているのがC# 2.0なら固定サイズバッファとか。
ttp://msdn2.microsoft.com/ja-jp/library/zycewsya(VS.80).aspx
ただ、悪いことは言わないから
まずIntPtrで構造体の先頭アドレスだけ受け取って、
ちまちまとMarshal.ReadByteやMarshal.Copyで何とかする技術を
身につけておいたほうがいいと思うよ。
たくさんコード書かないといけないかもしれないけど、
とりあえず動くものは確実に作れる。
んで、ドトネトの世界にある程度なれてから見直せばいい。
属性使ったマーシャリングサポートは、わかれば一発なことも多いけど
悩めばわかるというものでもないので、わからないときにどうしようもいかなくなる。
属性によるマーシャリングは、上級者向けショートカット記法と思ったほうが良い。
0685676の者です
2007/06/06(水) 14:29:55助言まで頂いてなんとお礼を言えばよいやら。
本当にありがとうございます。
0686デフォルトの名無しさん
2007/06/06(水) 18:12:22全部デバッグコードなんですが。
0687デフォルトの名無しさん
2007/06/06(水) 18:14:42Debugモードでの最適化をオフにしてみれば?
0688デフォルトの名無しさん
2007/06/06(水) 18:29:010689デフォルトの名無しさん
2007/06/06(水) 20:09:23ヘルプ使うたびに困っています
ドトネトになってからオンラインで使うのが前提のようですが、
msdnライブラリってインストール出来る無償版ないのでしょうか?
0690デフォルトの名無しさん
2007/06/06(水) 20:22:39>>5
0691デフォルトの名無しさん
2007/06/06(水) 20:26:400693デフォルトの名無しさん
2007/06/06(水) 20:42:21フナムシのように掃除がうまいわけでもないし、
彼女いないからフナムシのように子供だってつくれない。
…アメーバ以下かもな。
0694デフォルトの名無しさん
2007/06/06(水) 20:51:58アメーバに謝れ
0695デフォルトの名無しさん
2007/06/06(水) 20:56:07アメーバは偉大なサービスですよニコニコ
それに、以下じゃなくて正確には未満だな。
こういうズボラさがバグを生むんだよ。
ループ条件で以下と未満を間違えて
OutOfRangeExceptionって感じだな。
俺はOutOf人生Exceptionだがなw
tryも彼女をcatchする元気もない。
いつもfinally一直線だけど、深夜に
会社のCloseをし忘れるおばかさん♪
だってチンポをusingしたことないんだもの。
やっほ〜〜おちんちんしゅぽしゅぽ見てママ
0696デフォルトの名無しさん
2007/06/06(水) 21:01:400697デフォルトの名無しさん
2007/06/06(水) 21:02:410698デフォルトの名無しさん
2007/06/06(水) 21:34:22コールドスタンバイね。
俺の息子はホットスタンバイ。
スレ違い哀しいお。
息子といえば俺に隠し子ハケーン。
ハグはないのにバグだらけ。
虫未満の俺様には出来すぎた
ムスコでした。使えないけど、
愛おしくて潰せない。
こんなオヤジギャグを聞かされながら
毎晩殺伐と残業する人生にEndInvoke
ごめん。他スレ逝ってきます。
このカキコを覗いてる会社様
精神病認定よろしく。
0699デフォルトの名無しさん
2007/06/06(水) 21:36:180700デフォルトの名無しさん
2007/06/06(水) 22:04:480701デフォルトの名無しさん
2007/06/06(水) 22:06:390702デフォルトの名無しさん
2007/06/06(水) 22:07:320703664
2007/06/06(水) 23:50:07。・゚・(つД`)・゚・。
0704デフォルトの名無しさん
2007/06/07(木) 01:10:420705デフォルトの名無しさん
2007/06/07(木) 05:56:46ドラッグソースのアプリまで固まってしまうんですが、
こういう場合、とりあえずドロップはすぐリターンして
次のターンで実行すると思うんですが、そのやり方の
定石ってあるでしょうか?
0706デフォルトの名無しさん
2007/06/07(木) 07:59:320707デフォルトの名無しさん
2007/06/07(木) 08:15:180708デフォルトの名無しさん
2007/06/07(木) 13:13:11中のインスタンス情報とかメソッドシグネチャとか引っ張って来れれば力技ででも何とかなるんだが。
ゆくゆくはイベントを保存したい
0709デフォルトの名無しさん
2007/06/07(木) 14:49:59次のターンで実行するって意味不明だけど
エフェクト返す前に非同期でやるんじゃね
0710デフォルトの名無しさん
2007/06/07(木) 15:06:580711デフォルトの名無しさん
2007/06/07(木) 15:31:43インスタンスへの参照になるわけだから、メソッドがstaticでなければ
インスタンスを保存するしかないね。
それともメンバポインタめいた事をしたいのかね?
Managed C++でもつかってろ。
0712デフォルトの名無しさん
2007/06/07(木) 17:37:22それが意味あるかはまた微妙ではあるが
0713デフォルトの名無しさん
2007/06/07(木) 17:58:00コマンドパターンとかファンクタという言葉を調べてみると幸せになれるかもしれない
0714デフォルトの名無しさん
2007/06/07(木) 18:03:330715デフォルトの名無しさん
2007/06/07(木) 19:30:26SQLでDataGridに取得した範囲を表示させたいのですが・・・・
できますかね?
0716デフォルトの名無しさん
2007/06/07(木) 19:33:010717715
2007/06/07(木) 19:38:040718デフォルトの名無しさん
2007/06/07(木) 19:39:110719デフォルトの名無しさん
2007/06/07(木) 19:39:210720715
2007/06/07(木) 20:20:240721デフォルトの名無しさん
2007/06/07(木) 20:23:19>>718
何が分からんのか分からんのじゃ答えようがねぇ
0722デフォルトの名無しさん
2007/06/07(木) 20:24:06ここでOK
各ステップすっ飛ばして全部分かりませんと言うなら
ここはスレ違い
0723デフォルトの名無しさん
2007/06/07(木) 20:24:120724715
2007/06/07(木) 20:33:01それから、OleDbAdapterをDataSetにセット、DBに接続してSQLのSELECT構文を使ってDataGridに表示させようとしてます・・・。
こんな感じでいいのかな・・・・?初心者丸出しでスミマセン。
0725デフォルトの名無しさん
2007/06/07(木) 20:35:550726715
2007/06/07(木) 20:38:580727デフォルトの名無しさん
2007/06/07(木) 20:43:480728デフォルトの名無しさん
2007/06/07(木) 20:49:300729デフォルトの名無しさん
2007/06/07(木) 20:52:24それで、どんなコード書いたのボク?
最初から順番に落ち着いてはなちてみまちょうね〜
0730デフォルトの名無しさん
2007/06/07(木) 21:09:140731デフォルトの名無しさん
2007/06/07(木) 21:19:350732デフォルトの名無しさん
2007/06/07(木) 21:55:00それじゃしょうがないねボク〜
うんうんむずかしいよね〜
いちどママにごそうだんして、れんらくちょうに書いてもらってね〜
じゃあまたね〜☆
0733デフォルトの名無しさん
2007/06/07(木) 22:15:220734デフォルトの名無しさん
2007/06/07(木) 22:28:31エスパーじゃないと、こんな事はわかりません!
1. textBox1/textBox2 にどのように SQL 文から得た結果を入れようとしているのか
2. そもそも textBox1.Text に入れようとしてるのか?
3. つーか、DataSet なのか? OracleClient 使ってるのか? もしかして ODBC とか?
4. てか、ToString() とか分かってるか?
Oracle なら SELECT 文で取り出すときに to_char(date_field, ’yyyy') してたら
DateTime として取り出すことにならない事とか分かるだろう
そういった情報すら一切出さずに「できません」「わかりません」とか言ったところで
他の人が「何故こんなこともできないのか」と分かる訳ないだろう
「こういう目的があって、こういうコードを書いてみたけどうまくいかない」というのと
「こういう目的が達成できない。できるのか?」じゃ大きく違う
後者じゃ、できるできないしか言いようがないし
どうやればできるのか、なんてのは答えが数多ある
他の部分でも処理に使うから日付型として取得する場合もあれば
他では使わないからそのまま取得する方が楽 & アプリ側の処理量が減るということで
to_char() する場合もあるかもしれない
そういう前後の状況なども考えずに >>715 のような聞き方をしたところで
>>716 のような答えになるのは当たり前
0735734
2007/06/07(木) 22:32:34基本的には同意だけど
学生さんとかだったらかわいそうだが
C# + Oracle という構成は、普通業務だろ
そう考えると、その程度もできないしヘルプすら調べられないなら
給料もらう資格すらないと思った方がいいとは思う
0736デフォルトの名無しさん
2007/06/07(木) 22:40:54お前も質問100回読み返すくらいの努力はしようぜ……
0737デフォルトの名無しさん
2007/06/07(木) 22:42:590738デフォルトの名無しさん
2007/06/07(木) 23:02:23ふらっと c#は初心者用ですからそっちに移ったら良い。
あとなあ、おまえさんは一からプログラム作るレベルじゃない。
他人の作ったプログラム読むか、初心者用の本読んで勉強したほうがいい。
0739デフォルトの名無しさん
2007/06/07(木) 23:04:48>それから、OleDbAdapterをDataSetにセット、DBに接続してSQLのSELECT構文を使ってDataGridに表示させようとしてます・・・。
んーなんだ、もそっと日本語分かりやすく書いてけれ。
0740デフォルトの名無しさん
2007/06/07(木) 23:06:400741デフォルトの名無しさん
2007/06/07(木) 23:10:08無駄無駄
たぶん昨日ふらっとスレにいた496だ
ブッ飛んだ質問してたからな
0742デフォルトの名無しさん
2007/06/07(木) 23:11:24/ \
,/ \
/ ― ― ヽ
lヽ - 、 ! , _ |
|r――-、_⊥ ,――'-、 |,-,
|::::::::::::::::/ |ヽ:::::::::::::::|-|'イ!|
ト、__,,/: |: `、__,,/ ,|ソ/
.| 、_ j| _,、 ,|-'
| /lll||||||||||l`、 ,|
`i ,|||' ̄= ̄`|||、 / ト、
「|ヽ|ll||||||||||||||||| /i |::::\
/:::::\`!!||||||||||||!!' |::::::::\
/::::::::::::::`ー-、.._ i |::::::::::::::\
/:::::::::::::::::::::::::::::::::::`ー-、. |::::::::::
ハント・シロムッテロ[Hunt Siromuttero]
(1955〜 アメリカ)
0743デフォルトの名無しさん
2007/06/07(木) 23:12:230744デフォルトの名無しさん
2007/06/07(木) 23:13:35BETWEEN @f1 AND @f2
0745デフォルトの名無しさん
2007/06/07(木) 23:19:17この手の奴って色々あるんだなぁ
でもググレカスのインパクトが強すぎて後はどれもイマイチだな
0746デフォルトの名無しさん
2007/06/07(木) 23:21:35いいひとだな。君は。
この汚らしい流れの中でひとり輝いているよ。
0747デフォルトの名無しさん
2007/06/07(木) 23:23:08回答者のクオリティとかじゃなくて、限定された問題に
ピンポイントで答えるためのスレだから横から読んでてもあんまりためにならないよ
0748デフォルトの名無しさん
2007/06/07(木) 23:25:21勉強になるのでは?
2ch見始めてから1年くらいカキコできなかった俺が言う。
0749デフォルトの名無しさん
2007/06/07(木) 23:29:17どうもここのところ良貨が悪貨に駆逐されてないか?
まともなレベルのPGは呆れて来ないようになってきている気がする。
少しはアホなレスは控えた方がいいんじゃないの?
このままのトレンドで行くと困ったときに質問するチャンネルが一つ減るぞ。
0750デフォルトの名無しさん
2007/06/07(木) 23:29:34/;::;::;:;:::;:;::;:;:;::;)._
,...;::;:" ´ ` ー" ヽ:;:ヽ
,:;::; ヽ:;ヽ
{:ミ ミ;:.,
;:;:;: i:;:ノ
i;:;i ;;iiiiillllllll) (llllllllliii;; l:;::;}
r^ミ /_(;;)ゝヽ / <(;;)_ゝ ミ
i ^ヽ.  ̄ l l  ̄ /^i
ヾ i: . , i j 、 .:./^ i
ヽi: : : ^`-'^ . :./-'/
_| i:. :.: .:_.:_.:_:._:. :. :. .:.lー'"
/ヽ .: .:...´ニニニ`. :i..:/
/ ヽ :.ヽ.: .: :. : .:. .:.i/
ヽ . :.ヽ、: .:_:ノ/
コ・チミルナ [Co Chimirunna]
(1902〜1959 キューバ共和国)
0751デフォルトの名無しさん
2007/06/07(木) 23:31:24回答者もあれだが、質問者のレベルがスレのレベルということもあるのでは
0752デフォルトの名無しさん
2007/06/07(木) 23:48:32C#のGUIコントロールは、UNICODEに対応しているのでしょうか?
また、国際化対応のためのコンポーネントなどがありますでしょうか?
GetText相当のものでもあればよいのですが・・・。
0753デフォルトの名無しさん
2007/06/07(木) 23:51:20それはeventとかを使わず独自のファンクターでsubscribeをしろということかね?
0754デフォルトの名無しさん
2007/06/07(木) 23:54:17yes
コンポーネントは必要なし。
フレームワークでおk
0755デフォルトの名無しさん
2007/06/07(木) 23:57:070756デフォルトの名無しさん
2007/06/07(木) 23:59:37仲良く使ってね。
ふらっとC♯, C#(初心者用) Part16
ttp://pc11.2ch.net/test/read.cgi/tech/1179313212/
カモこいや。カモーン
0757デフォルトの名無しさん
2007/06/08(金) 00:17:49そんなことしたからといってできるとは思えない
0758デフォルトの名無しさん
2007/06/08(金) 00:22:33簡単なのでいいけど、ユーザーによってはテキストで(ini or xml )
言語ファイル作れとか言うから困る
そっちのほうがユーザーが編集できるメリットはあるんだろうけど
0759デフォルトの名無しさん
2007/06/08(金) 00:29:50まぁせいげんもあるけれど。
0760デフォルトの名無しさん
2007/06/08(金) 00:56:46サンクス。
安心して、つこーてみるす
0761デフォルトの名無しさん
2007/06/08(金) 01:03:41後のほうは嘘じゃないかな?
0762デフォルトの名無しさん
2007/06/08(金) 06:17:46保存のレベルがどこまでかだが
他プロセスなりで復元可能なレベルでシリアライズしたいなら
EventArgs に SerializableAttribute が付いている訳だから
この辺りをうまく使ってコマンドパターン化してみるのは手かも
delegate 自体を保存して他プロセスで復元となると
無名関数をシリアライズするとか
動的に IL を生成してアセンブリとして保存するとかも
できないことはないが……
0763デフォルトの名無しさん
2007/06/08(金) 06:18:29特別なコンポーネントを組み込む必要なしに
フレームワークレベルでサポートしてるだろ
0764デフォルトの名無しさん
2007/06/08(金) 08:44:23やりたいことは独自のシリアライズFWでデリゲート呼び出しもシリアライズすることです。
いまちょっとみていたらDelegateからMethodInfoとれるので保存できそう。
ただDelegate保存できるようにすると少しややこしいことになりそう。
その場で知り合図して使う分にはいいけれど、オブジェクトの永続化として考えるとスキーマの変更以外にメソッドの変更や匿名メソッドの取り扱いを変えるだけで再生ができなくなるか。
でもDelegate保存できないと再生のあとにDelegateの復元作業を各クラスがしないといけなくなるのでまんどくさい。
0765デフォルトの名無しさん
2007/06/08(金) 08:50:51.NET Frameworkレベルでサポートされてる?
0766デフォルトの名無しさん
2007/06/08(金) 13:08:28文字列リソースが入ったサテライトアセンブリを
現在のカルチャ/UI カルチャを元に自動的に選択して
適切な文字列を選択したり、ニュートラルに落としたりするのは
.NET Framework レベルの仕事以外の何だと思うの?
0767デフォルトの名無しさん
2007/06/08(金) 16:39:44おお、そこまでやってくれるんだ。教えてくれて、ありがとう。
0768デフォルトの名無しさん
2007/06/08(金) 20:57:03ことがあります。closingやclosedは呼ばれてるんですが、
表示されたままで、それ以降はなにをしても無反応です。
無反応といっても完全に固まってるわけではない状態です。
たまにしか起こらないんですが、どういう原因があるのでしょうか?
0769デフォルトの名無しさん
2007/06/08(金) 21:00:170770デフォルトの名無しさん
2007/06/08(金) 21:01:36それは確認しましたが問題ありませんでした。
0771デフォルトの名無しさん
2007/06/08(金) 21:18:12で使っています。
今選択中のタブのインデックスを0として、
selectedtabを一番右に設定すると左のほうのタブ
が描画されないです。invalidateやvisibleをいじっても
だめなんですがどうすればいいでしょうか?
0772デフォルトの名無しさん
2007/06/08(金) 21:25:08スレッドが動きっぱなしになってるのかもよ。
0773デフォルトの名無しさん
2007/06/08(金) 21:28:590774デフォルトの名無しさん
2007/06/08(金) 21:36:19それ俺も困ってるんだわw
とりあえず、タブのAppearanceをNormalにすると直るんだよな
0776デフォルトの名無しさん
2007/06/08(金) 22:04:22何かを開放し忘れてるんじゃ・・・
他のフォーム呼び出したりしてない?
0777768
2007/06/08(金) 22:29:41開放し忘れているかはわからないんですが、
closingで自分が持ってるメンバーに対してはnullをセット
して様子をみましたが、やはり発生するようです。
他のフォームはダイアログ(showdialog)として呼び出したりしています。
あとやるとすればデザイナが作ったメンバーのすべてnullをセット
してみることも考えましたが、それはまだやっていません。
0778デフォルトの名無しさん
2007/06/08(金) 22:37:40まあ確実にいえるのは「普通は」そんなことは起こらないから。
なにか妙なことをやっているのは確かだということだね。
まあ、フォアグラウンドのスレッドが稼動しているときの症状そのもののように聞こえるね。
0779デフォルトの名無しさん
2007/06/08(金) 23:25:25このスレの510あたりから読んでみて
0780デフォルトの名無しさん
2007/06/08(金) 23:32:060781デフォルトの名無しさん
2007/06/08(金) 23:32:24そんなほのめかすような書き方は自信のなさの現われだろうけど、
自信がないのならむしろ黙っているべきだと思うぞ。
0782デフォルトの名無しさん
2007/06/08(金) 23:59:41例えほぼ無意味な一言レスでも、彼らにとっては貴重な発言の場
許してやって下さい
0784デフォルトの名無しさん
2007/06/09(土) 00:09:31ほのめかし、というのは当然779のことだ
0786デフォルトの名無しさん
2007/06/09(土) 00:40:020787デフォルトの名無しさん
2007/06/09(土) 01:25:360788デフォルトの名無しさん
2007/06/09(土) 05:57:59GUIスレッドのMainの前に[STAThread]は入ってる?
0789デフォルトの名無しさん
2007/06/09(土) 19:42:170790デフォルトの名無しさん
2007/06/09(土) 19:49:240791デフォルトの名無しさん
2007/06/09(土) 19:52:440792デフォルトの名無しさん
2007/06/09(土) 22:48:58クライアントなら接続先IPアドレスがいるだろうが、
サーバは接続される側なのになんでIPアドレスを指定するんだか
0793デフォルトの名無しさん
2007/06/09(土) 22:56:10NICが2つあるばあい、識別するため
0794デフォルトの名無しさん
2007/06/09(土) 23:20:310795デフォルトの名無しさん
2007/06/09(土) 23:24:300796デフォルトの名無しさん
2007/06/09(土) 23:50:39ない
0797792
2007/06/10(日) 00:14:59なるほど。そんなシチュエーションは考えてなかった。
>795
どうして手持ちのヘルプには「IPアドレスを指定しないコンストラクタは非推奨になりました」ぐらいしか書いてないんだぜ?
0798デフォルトの名無しさん
2007/06/10(日) 00:31:430799デフォルトの名無しさん
2007/06/10(日) 00:35:430800デフォルトの名無しさん
2007/06/10(日) 00:45:050801デフォルトの名無しさん
2007/06/10(日) 00:47:55自分の書いた内容がおかしくないか確かめたほうがいいぜ?
0802デフォルトの名無しさん
2007/06/10(日) 01:37:360803デフォルトの名無しさん
2007/06/10(日) 01:40:200804デフォルトの名無しさん
2007/06/10(日) 02:20:200805デフォルトの名無しさん
2007/06/10(日) 02:52:480806デフォルトの名無しさん
2007/06/10(日) 10:46:580807デフォルトの名無しさん
2007/06/10(日) 16:28:49ht("aaa") = ("a", "b", "c", 0, 1, 2);
Console.WriteLine( ht["aaa"][3] );
みたいな、キーに対して値が配列でもてるようなのあると便利なんだけど、
そんなうまい話はないですかね?
0808デフォルトの名無しさん
2007/06/10(日) 16:38:040809デフォルトの名無しさん
2007/06/10(日) 16:41:30普通は配列のところを構造体にでもするんじゃね
0810デフォルトの名無しさん
2007/06/10(日) 17:07:55Dictionary<string, object[]>
object[]部分を構造体にしたほうがいいんですか?
とりあえず、配列のままちょっとがんばってみます
0811デフォルトの名無しさん
2007/06/10(日) 22:03:510812デフォルトの名無しさん
2007/06/11(月) 01:05:130813デフォルトの名無しさん
2007/06/11(月) 01:15:080814デフォルトの名無しさん
2007/06/11(月) 01:52:19Dictionary<string, Dictionary<string, List<string>>> とか
やろうと思えばいくらでもできる訳だが
System.Collections.Generic 以下とかを眺めてみるといいんじゃまいか
0815デフォルトの名無しさん
2007/06/11(月) 02:44:500816デフォルトの名無しさん
2007/06/11(月) 10:51:34C#でウィザードダイアログを実現するには、パネルなどでCPage相当のものを作ってやるという形になるのでしょうか。
ざっと見たところ用意されていないようなので。。
0817デフォルトの名無しさん
2007/06/11(月) 13:49:01まずそのCPageというのを説明したほうがいいと思うぞ。
0818デフォルトの名無しさん
2007/06/11(月) 15:23:34すいません。CPageじゃなくてCPropertyPageクラスでした。
プロパティシートのウィザードモードみたいなクラスは用意されてないのかなと思った次第です。
0819デフォルトの名無しさん
2007/06/11(月) 15:28:35パフォーマンス向上の為、node同士をつなげるedgeの参照などに
C/C++スタイルのポインタを使用し、更に簡潔なコードなのでメモリ管理をプログラマ側で行いたいのですが、
unsafe CNode* pNode; などとするとやっぱりCS0208で弾かれます。
C/C++を使わないで済む、何か巧い方法はないでしょうか?
0820デフォルトの名無しさん
2007/06/11(月) 15:34:240821デフォルトの名無しさん
2007/06/11(月) 15:35:140822デフォルトの名無しさん
2007/06/11(月) 15:43:180823デフォルトの名無しさん
2007/06/11(月) 16:03:360824デフォルトの名無しさん
2007/06/11(月) 16:55:13参照型の変数ってポインタみたいなもんじゃん。
何が不満?
GC?
0825デフォルトの名無しさん
2007/06/11(月) 17:06:23Cで使うようなポインタでシコシコやった方がGC任せより早いって事だろ
0826デフォルトの名無しさん
2007/06/11(月) 17:11:25TabCotrol, TabPage
0827デフォルトの名無しさん
2007/06/11(月) 18:33:16どんなキーワードでぐぐればいいんでしょうか/どんな手がかりで調べればいいんでしょうか。
0828デフォルトの名無しさん
2007/06/11(月) 18:47:14C++ CLI
0829デフォルトの名無しさん
2007/06/11(月) 20:40:470830デフォルトの名無しさん
2007/06/11(月) 20:53:08Cでコーディングして要所だけasmキーワードを使っていたMMX時代がなつかしい
0831デフォルトの名無しさん
2007/06/11(月) 20:56:44Visual Studioでは別々のアセンブリにして参照設定することになると思う
0832デフォルトの名無しさん
2007/06/11(月) 20:56:470833デフォルトの名無しさん
2007/06/11(月) 20:58:590834デフォルトの名無しさん
2007/06/11(月) 21:00:130835デフォルトの名無しさん
2007/06/11(月) 21:04:27混在できないこともないし
0836デフォルトの名無しさん
2007/06/11(月) 21:05:21↓
C# でコーディングし、要所だけ C/C++ で記述する方法が知りたいのですが、
その間およそ3時間
0837デフォルトの名無しさん
2007/06/11(月) 21:06:09エクスプローラのツールバー作るのってどうやるんですか><
C#かVB.NETで作ってるみたいなんです
0838デフォルトの名無しさん
2007/06/11(月) 21:10:48ttp://mobiquitous.com/programming/ietoolbar.html
0839デフォルトの名無しさん
2007/06/12(火) 16:43:01エディタ上で、右のタブに移る、左のタブにうつる、というショートカット設定は可能でしょうか?
ウインドウ,次のドキュメントウィンドウ(Ctrl+F6)では、開いた順?か何かよくわからない順番で、
切り替わってしまいます。
普段、Borland製品を使っていまして、VS.netを使ってみたら、
挙動が違っていたので困ってしまいました。
0840デフォルトの名無しさん
2007/06/12(火) 18:13:58Visual Studio 2005スレ Part21
http://pc11.2ch.net/test/read.cgi/tech/1180692040/
0841デフォルトの名無しさん
2007/06/12(火) 18:28:18了解しました。
そちらに移ります。
誘導ありがとうさんです。
0842デフォルトの名無しさん
2007/06/12(火) 20:44:490843デフォルトの名無しさん
2007/06/12(火) 20:47:56また、ASP.NETならそれほど、変更が加えらないと思うので良い。
0844デフォルトの名無しさん
2007/06/12(火) 21:02:20はじめはVisual C# Express Edition落として遊んでみたらいいんじゃない?
0845デフォルトの名無しさん
2007/06/12(火) 22:05:150846デフォルトの名無しさん
2007/06/12(火) 22:08:580847デフォルトの名無しさん
2007/06/12(火) 22:14:04private static extern int PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
かな?
0848デフォルトの名無しさん
2007/06/12(火) 22:17:41それ「相当」違うw
0849デフォルトの名無しさん
2007/06/12(火) 22:21:000850デフォルトの名無しさん
2007/06/12(火) 22:46:07実現したいのはスレッドを用いない非同期実行です。
0851デフォルトの名無しさん
2007/06/12(火) 22:48:05それでした。ありがとうございます。
0852デフォルトの名無しさん
2007/06/12(火) 22:48:410853デフォルトの名無しさん
2007/06/12(火) 22:52:07使ってるんじゃね?
0854デフォルトの名無しさん
2007/06/12(火) 22:56:05MSDNには
>コントロールの基になるハンドルが作成されたスレッド上で、指定したデリゲートを非同期的に実行します。
とあるので、別スレッドで呼ばれることはないってことでいいんですよね。
0855デフォルトの名無しさん
2007/06/12(火) 23:03:050856デフォルトの名無しさん
2007/06/12(火) 23:03:20もうちょっと馬鹿な発言ぷり〜ず!
0857デフォルトの名無しさん
2007/06/12(火) 23:07:08MSDNには
>コントロールのハンドルを所有しているスレッドからでも呼び出すことができます。
と書いてあるので、同じスレッドでも問題ないですよね。
0858デフォルトの名無しさん
2007/06/12(火) 23:12:46でもそれ非同期っていわないから。
0859デフォルトの名無しさん
2007/06/12(火) 23:13:290860デフォルトの名無しさん
2007/06/12(火) 23:17:58非同期は非同期でしょ。
ただ自分にむかって自分で仕事をキックしてるだけの話
0861デフォルトの名無しさん
2007/06/12(火) 23:18:21非同期とはいわないんですか?でも同期でもないですよね?
なんて呼ぶのが正解なんですか?
0862デフォルトの名無しさん
2007/06/12(火) 23:20:41↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
終わった!
↓
さてBeginInvokeの次の行と。
って感じの理解でおk?
これって同期じゃね?
0863デフォルトの名無しさん
2007/06/12(火) 23:20:49書いてある。途中で方式変わったのかな?
でも同一スレッドで非同期処理なんて変だと思わないか?
0864デフォルトの名無しさん
2007/06/12(火) 23:23:06↓
さてBeginInvokeの次の行と。
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
終わった!
↓
こうですよね。
0865デフォルトの名無しさん
2007/06/12(火) 23:23:260866デフォルトの名無しさん
2007/06/12(火) 23:23:44だから非同期じゃん。
同期というのはBeginInvokeによって引き起こされる処理の完了に「同期して」
次の処理が実行されるような場合のことを言うんだよ。
0867デフォルトの名無しさん
2007/06/12(火) 23:26:04終了
0868デフォルトの名無しさん
2007/06/12(火) 23:27:29頭大丈夫?
0869デフォルトの名無しさん
2007/06/12(火) 23:27:40理解した
0870デフォルトの名無しさん
2007/06/12(火) 23:37:48↓
さてBeginInvokeの次の行と。
↓
メソッド内の作業中……
↓
とりあえずスレッドのキューが空になったぞ
↓
BeginInvokeの方を作業中……
↓
BeginInvokeの方を作業中……
↓
終わった!
でいいんでしょうかや?
なんかふらっと逝くべきですね
0871デフォルトの名無しさん
2007/06/12(火) 23:50:27それに翻訳の問題ありそうな気がする。
同期呼び出し Invoke
0872デフォルトの名無しさん
2007/06/12(火) 23:57:11>>861 そこでいっている例についてだけ言うなら同期でよろし。まあまり深く考える必要はない
0873デフォルトの名無しさん
2007/06/13(水) 00:14:17どちらかというとContorolのいじるために使うんじゃないの?
ttp://uchukamen.com/Programming/Asyncro/
0875デフォルトの名無しさん
2007/06/13(水) 00:23:39後で実行するために使うこともできるってだけの話。
0877デフォルトの名無しさん
2007/06/13(水) 00:40:540878デフォルトの名無しさん
2007/06/13(水) 00:45:34出来れば、C#メインで仕事がしたいと考えているのですが、
アバナードならC#メインで仕事できますかね?
0879デフォルトの名無しさん
2007/06/13(水) 00:48:05まともな返事は来ないだろうけど。
0880デフォルトの名無しさん
2007/06/13(水) 01:11:52既存の延長のやつはC++だけど。金融系。
0881デフォルトの名無しさん
2007/06/13(水) 01:41:26参照型変数ががptr(ポインタ)と略される要領で、ほかにも略記号ってどんなのがありますかね
コンストラクタとかインスタンスとか構造体とかあるんじゃないかなーってふと思いまして
0882デフォルトの名無しさん
2007/06/13(水) 01:57:26ってのはC++とかと比べたときのメタファーにすぎない(とか書くと突っ込まれそうだけど)
少なくとも略記号じゃないよ
コンストラクタとかにもそんなのないよ
0883デフォルトの名無しさん
2007/06/13(水) 02:07:18混乱しますでしょうか?
0884デフォルトの名無しさん
2007/06/13(水) 02:08:050885デフォルトの名無しさん
2007/06/13(水) 02:08:16人に訊くことじゃねえだろ・・・。
0886デフォルトの名無しさん
2007/06/13(水) 02:13:09ありがとうございました。
0887デフォルトの名無しさん
2007/06/13(水) 02:36:29どういたしまして
0888デフォルトの名無しさん
2007/06/13(水) 08:44:53ありがとうございましすー。
別に誰かに見せるわけでもないし、
特にないならコメントは勝手に自分だけわかるように略記して問題ないですね
0889デフォルトの名無しさん
2007/06/13(水) 08:46:49JR束はwin鯖+C#がおおいぞ。えきねっとなんかそうだと思う。
新幹線の運行管理にまで使っているらしい。束の情報子会社なんてどお?
そんな新幹線、個人的には(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブルだが
0890デフォルトの名無しさん
2007/06/13(水) 10:00:32うちもDBにC++とjavaだったけど端末なんてWinばっかだし
C#でできるものはそっちでやるようにしてるとこ
0891デフォルトの名無しさん
2007/06/13(水) 10:44:23現在ログ出力自体はできているのですが、
ログの出力先・ファイル名の設定を
xmlでは無くiniファイルで設定したい、
という要望があります。
ソースを改造する手もありますが、
もっと簡単に実現できないものでしょうか。
0892デフォルトの名無しさん
2007/06/13(水) 11:12:09Processで起動したプログラムが異常終了したとき
Microsoftに送信しますか?だとかデバッグする?みたいに
聞いてくるウィンドウがでますよね?
あのウィンドウをでなくして、エラーを起こしたプログラムが即終了するようにする
方法ってありますか?
0893デフォルトの名無しさん
2007/06/13(水) 11:38:40Application.Run(new Form1());
をtry..catchで囲めばいいんじゃないっけ…(自信はない)。
0894デフォルトの名無しさん
2007/06/13(水) 11:40:01仮にそうでなくとも>>893のは問題外
0895デフォルトの名無しさん
2007/06/13(水) 11:46:590896デフォルトの名無しさん
2007/06/13(水) 12:14:49情報ありがとうございます
program1.exe
program2.exe
があって、program1.exeからProcessでprogram2.exeを呼び出すんですが
program2.exeがエラー起こしておわっちゃうと、ウィンドウがでてそこで
program1が延々と待ってしまうので、それを避けたいのです
今のところ思いつくのはprogram2のなかでtryつかっちゃうことですが
それだと自分がつくったものじゃないときに対応できないので
program1側でなんとかできないかなと思って
>>895さん、設定でオフってWindowsの設定でできるんでしょうか?
それでもOKです
どうすればいいんでしょ?おしえてください
0897デフォルトの名無しさん
2007/06/13(水) 12:32:39http://www.google.co.jp/search?hl=ja&q=%E3%82%A8%E3%83%A9%E3%83%BC%E5%A0%B1%E5%91%8A+%E7%84%A1%E5%8A%B9&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0898デフォルトの名無しさん
2007/06/13(水) 12:36:02プログラムからならサービスの[Error Reporting Service]を止めちゃうとか
0899892
2007/06/13(水) 12:54:51ありがとうございました
希望通りになりました
>>898
新たな情報ありがとうございます
プログラムでコントロールできるんですね
でもボクの能力の限界を超えているようです
やりかたわかんないTT
0900デフォルトの名無しさん
2007/06/13(水) 13:03:09Process myExe = Process.Start("sc stop ersvc");
myExe.WaitForExit();
これでどう?やったことねえけどwwwww
コマンドプロンプトで
sc stop ersvc
とうてばXPなら[Error Reporting Service]をとめれる
0902デフォルトの名無しさん
2007/06/13(水) 14:12:080903デフォルトの名無しさん
2007/06/13(水) 14:13:04そのものずばりのAPIがあったはずだから探してみれ
0904デフォルトの名無しさん
2007/06/13(水) 14:23:26外部からは知らんけど、プロセス起動時に設定できてもいいような気はする。
0905904
2007/06/13(水) 14:28:31それはそれでなんつーかアレだけど。
ttp://msdn2.microsoft.com/en-us/library/ms680621.aspx
>A child process inherits the error mode of its parent process
というわけで自分のプロセスでこれ設定して子プロセス起こせば
それで解決じゃね?
0906892
2007/06/13(水) 15:19:13情報ありです
下のようなことやってみたけどだめでした
897さんの方法でいっときます
ではでは〜
using System.Runtime.InteropServices;
・・・
[DllImport("kernel32.dll")]
extern static uint SetErrorMode(uint uMode);
・・・
uint oldmode = SetErrorMode(0x0001とかいろいろ);
・・・
Process p = Process.Start("・・・・");
p.WaitForExit();
・・・
SetErrorMode(oldmode);
0907デフォルトの名無しさん
2007/06/13(水) 15:38:440908デフォルトの名無しさん
2007/06/13(水) 16:42:47public event EventHandler MyEvent;
protected void OnMyEvent(object sender, EventArgs e){略}
のパターンに従え
0909デフォルトの名無しさん
2007/06/13(水) 17:55:30Cのprintf("%3d",hoge)のような処理は、どのようにすれば実現できます
でしょうか?
string.Format("{0:000}",hoge)だと"0"が含まれてしまいますし、
ブランクは設定できないようですし、ワタシとても困てるね。
宜しくお願いします。
0910デフォルトの名無しさん
2007/06/13(水) 18:04:550912デフォルトの名無しさん
2007/06/13(水) 20:39:380913デフォルトの名無しさん
2007/06/13(水) 20:41:26ちったぁ、ドキュメント読め! そこのフナムシ!
0914デフォルトの名無しさん
2007/06/13(水) 20:49:440915デフォルトの名無しさん
2007/06/13(水) 22:15:48うぜーし、つまらん。どかいけ、カス。
0917デフォルトの名無しさん
2007/06/14(木) 01:39:280918デフォルトの名無しさん
2007/06/14(木) 01:51:420919デフォルトの名無しさん
2007/06/14(木) 08:35:59空気嫁よ。
0920デフォルトの名無しさん
2007/06/14(木) 10:28:250921デフォルトの名無しさん
2007/06/14(木) 11:52:090922デフォルトの名無しさん
2007/06/14(木) 11:59:14やってないことは確かだが
0923デフォルトの名無しさん
2007/06/14(木) 15:30:00ValueType[] a = new int[] { 0, 1, 2 };
としましたが、暗黙的に変換できませんと、エラーがでました。
こういうことってできないですか?
0924デフォルトの名無しさん
2007/06/14(木) 15:41:40じゃないの?
0925デフォルトの名無しさん
2007/06/14(木) 15:45:33別の配列にするより、いちいち要素ごとに型の心配する方が面倒だと思うんだけど
0926デフォルトの名無しさん
2007/06/14(木) 16:19:45スクリプト言語だと、あたり前にできたりするが、C#はできない。
そういうこと。
0927デフォルトの名無しさん
2007/06/14(木) 16:24:010928デフォルトの名無しさん
2007/06/14(木) 16:24:560929デフォルトの名無しさん
2007/06/14(木) 16:29:01昔見たことがあるのですが、ブックマークしてなくて忘れてしまいましたorz
0930デフォルトの名無しさん
2007/06/14(木) 16:32:39object [] a = new object[] { 1, 2, 3, 4.2, "abc" }
objectをValueTypeにしてもboxingは発生してる。
違いは上の例でstringがエラーになる程度のこと。
オブジェクトの配列はリフレクションでよく見かけるね。
0931デフォルトの名無しさん
2007/06/14(木) 17:02:54int intValue;
double doubleValue;
bool isInt;
}//無駄が多すぎるな。もうちょっといいアイデアない?
0932デフォルトの名無しさん
2007/06/14(木) 17:12:10object でよくね?
どうしてもというなら、
[StructLayout(LayoutKind.Explicit)] と [FieldOffset(0)] 属性使えば
C の union みたいな事できる。
0933デフォルトの名無しさん
2007/06/14(木) 18:39:32Cassiniのことかな?
Microsoft製
ttp://www.asp.net/Projects/Cassini/Download/
UltiDev製
ttp://ultidev.com/products/Cassini/index.htm
0934デフォルトの名無しさん
2007/06/14(木) 19:41:280935デフォルトの名無しさん
2007/06/14(木) 19:49:19それをインターフェイスにして、
* intを引数にとるコンストラクタから作る実態はintの構造体と
* doubleを引数にとるコンストラクタから作る実態はdoubleの構造体
の二つにインプリメントさせればいいんじゃない?
0936デフォルトの名無しさん
2007/06/14(木) 20:54:160937デフォルトの名無しさん
2007/06/14(木) 20:58:400938デフォルトの名無しさん
2007/06/14(木) 21:09:510939デフォルトの名無しさん
2007/06/14(木) 21:38:490940デフォルトの名無しさん
2007/06/14(木) 22:21:110941デフォルトの名無しさん
2007/06/14(木) 22:24:19是非とも実現してみてくれ。
0942デフォルトの名無しさん
2007/06/14(木) 22:24:39int i;
{
int i;
}
ってできないの?
0943デフォルトの名無しさん
2007/06/14(木) 22:24:480944デフォルトの名無しさん
2007/06/14(木) 22:26:58意味不明。
名前が被ってるってことか?
一番目と2ばんめのiの区別はどうするつもりだ
0945デフォルトの名無しさん
2007/06/14(木) 22:28:560946デフォルトの名無しさん
2007/06/14(木) 22:29:15どう考えてもバグの温床だろ
0947デフォルトの名無しさん
2007/06/14(木) 22:38:34それを開こうとおもって、SimpleCalc.slnファイルをクリックしたらソリューションは
開けましたが、ソースコードの画面で、フォームのデザイン画面の表示の仕方がわかりません。
おしえてください。よろしくお願いします。
0948デフォルトの名無しさん
2007/06/14(木) 22:38:48意味不明ってなんだよ。
Cでは
int testfunc(int n){
int i=n*n,j=n+n;
if(n%2){ return n; }
{
int i=n*n*n;
if(i%5==0){ j+=n; }
}
return j;
}
としてもエラーにはならない。
C++でメンバ関数の引数名とメンバそのものが被ってもエラーにならないのと同じだ。
0949947
2007/06/14(木) 22:40:030950デフォルトの名無しさん
2007/06/14(木) 22:40:36そのコード意味不明。
0951デフォルトの名無しさん
2007/06/14(木) 22:42:39ソリューションエクスプローラーから対象のものをダブルクリックで開かない?
右クリックでデザイナの表示でもいいが
0952デフォルトの名無しさん
2007/06/14(木) 22:42:53this
>>942
ちゃんと内容書けよ。
ここはエスパー養成所じゃないんだ。
0953デフォルトの名無しさん
2007/06/14(木) 22:43:50それIDEでエラーなくコピペできる?
0954デフォルトの名無しさん
2007/06/14(木) 22:44:21例だから意味なんてない。
俺は子スコープで名前が同じ変数を使いたいだけなんだ。
for(int i=0;i<hoge;i++){
for(int i=0;i<huga;i++){//実行回数が問題でトップレベルのforなんて関係ないね
func();
}
}
0955デフォルトの名無しさん
2007/06/14(木) 22:44:44エスパーを召還してるのは942じゃなくてアンタでしょw
>>942は別に意味不明じゃないぞ
0956デフォルトの名無しさん
2007/06/14(木) 22:47:210957デフォルトの名無しさん
2007/06/14(木) 22:47:25>>946
終了。
続きは高校卒業してからな。
0959デフォルトの名無しさん
2007/06/14(木) 22:58:35なんで俺が高校生って分かったの?
嘘だけど。
0960デフォルトの名無しさん
2007/06/14(木) 22:59:280961デフォルトの名無しさん
2007/06/14(木) 23:00:370962デフォルトの名無しさん
2007/06/14(木) 23:34:250963デフォルトの名無しさん
2007/06/14(木) 23:36:230964デフォルトの名無しさん
2007/06/15(金) 01:42:09>>954みたいな書き方をCでしたとき
スコープの外のiを中で使いたいときはどうすんの?
つーか使えないこと前提なの?
0965デフォルトの名無しさん
2007/06/15(金) 02:02:29使う必要があるなら別の名前にする。
0966デフォルトの名無しさん
2007/06/15(金) 04:20:130967デフォルトの名無しさん
2007/06/15(金) 11:00:580968デフォルトの名無しさん
2007/06/15(金) 12:07:22int i;
}
{
int i;
}
したいときはある。
0969デフォルトの名無しさん
2007/06/15(金) 12:10:26それだったら問題なく出来るんじゃね?
0970デフォルトの名無しさん
2007/06/15(金) 12:11:250971デフォルトの名無しさん
2007/06/15(金) 17:16:54何も問題ない。
0972デフォルトの名無しさん
2007/06/15(金) 17:22:160973デフォルトの名無しさん
2007/06/15(金) 17:22:530974デフォルトの名無しさん
2007/06/15(金) 17:43:390975デフォルトの名無しさん
2007/06/15(金) 17:44:350976デフォルトの名無しさん
2007/06/15(金) 19:07:01入ってなかったのは初期のドラフト時代のみらしい。
0977デフォルトの名無しさん
2007/06/15(金) 22:35:230978デフォルトの名無しさん
2007/06/15(金) 23:08:070979デフォルトの名無しさん
2007/06/15(金) 23:40:540980デフォルトの名無しさん
2007/06/16(土) 01:13:580981デフォルトの名無しさん
2007/06/16(土) 14:23:37ところで
{
int i;
}
{
{
int i;
}
}
これもできないよね。
0982デフォルトの名無しさん
2007/06/16(土) 14:27:090983デフォルトの名無しさん
2007/06/16(土) 14:30:02>VCが仕様をみたしてなかったんでは。
当時のこと知らないなら黙ってろ。
まだ策定されてなかったんだよ。
0984デフォルトの名無しさん
2007/06/16(土) 14:36:40>>983
知らないけど、割と最近までそういう製品だった印象があるよ
0985デフォルトの名無しさん
2007/06/16(土) 14:39:050986デフォルトの名無しさん
2007/06/16(土) 14:39:34C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
0987デフォルトの名無しさん
2007/06/16(土) 14:40:07だがここは C# スレだ
0988デフォルトの名無しさん
2007/06/16(土) 14:40:09それはVC++6.0の話だね。
あれはコンパイルスイッチをつけないと、新しい仕様にならなかった。
0989デフォルトの名無しさん
2007/06/16(土) 14:55:50forに関しては使いたければこうすればいいということだったが未だに理屈が分からん。
#define for(x) if(0);else for(x)
あとC#に話を戻すけどC++から削った要素に8進数表記がある。
これに対する苦情はあまり聞かないけどどう?
010 はCだと8 だが C#だと10になる。
0377が使いたくてしょうがない人とか居る?
0990デフォルトの名無しさん
2007/06/16(土) 15:02:13ゼロが頭につくと8進表記扱いになるって知らなきゃ
即バグに繋がるような問題だしねぇ。
0991デフォルトの名無しさん
2007/06/16(土) 15:10:240992デフォルトの名無しさん
2007/06/16(土) 15:14:5016進や2進ならバイト表現に便利なのはわかるんだが
0993デフォルトの名無しさん
2007/06/16(土) 15:16:09ニブルが3ビットでバイトが6ビットみたいな環境とかでもあったんかな
0994デフォルトの名無しさん
2007/06/16(土) 15:17:550995デフォルトの名無しさん
2007/06/16(土) 15:18:350996デフォルトの名無しさん
2007/06/16(土) 15:18:45数字だけで使えるしね
0997デフォルトの名無しさん
2007/06/16(土) 15:18:49列挙型で使いたいんだが
0998デフォルトの名無しさん
2007/06/16(土) 15:19:10昔はCPUの命令体系が8進数ベースだったんじゃよ。
0999デフォルトの名無しさん
2007/06/16(土) 15:20:53リテラル二進表記はない。
16進で書いて後ろにコメント付けとけ。
1000デフォルトの名無しさん
2007/06/16(土) 15:20:57boolを32個ならべる
↓
それはそれとして
卵かけ御飯をおいしくいただく
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。