トップページ⇒tech
1001コメント275KB

C#, C♯, C#相談室 Part39

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2007/05/09(水) 00:46:29
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C♯, C#相談室 Part38
http://pc11.2ch.net/test/read.cgi/tech/1173763436/

過去スレは>>2-5あたり。
0002デフォルトの名無しさん2007/05/09(水) 00:49:29
Part37 http://pc11.2ch.net/test/read.cgi/tech/1169110545/
Part36 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:20
Part22 http://pc8.2ch.net/test/read.cgi/tech/1109630502/
Part21 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:13
Part8 http://pc3.2ch.net/tech/kako/1032/10324/1032488831.html
Part7 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:48
ふらっとC#, C♯, C#(初心者用) Part15
http://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:12
この時間におつかれさん
0007デフォルトの名無しさん2007/05/09(水) 01:15:59
注:私の有意義な発言に対し、自分の理解不足を棚に上げ煽り、1行レス
で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
0008デフォルトの名無しさん2007/05/09(水) 01:56:46
>>7まじ?
0009デフォルトの名無しさん2007/05/09(水) 03:27:01
昔はやったコピペだ
相手にすんな
0010デフォルトの名無しさん2007/05/09(水) 10:18:22
なんかC井も入れたくなるようなスレタイだな
0011デフォルトの名無しさん2007/05/09(水) 10:20:07
 C#
  ↑これって♯(シャープ)じゃなくて#(ナンバー)だよね。いいのかね。
001212007/05/09(水) 13:51:26
>>11
仕様書ではこれが正当なので先頭にしました。(参照: ウィキペディアとか
0013デフォルトの名無しさん2007/05/09(水) 20:07:06
C#勉強する前にC言語勉強したほうがいいのかな?
0014デフォルトの名無しさん2007/05/09(水) 20:36:10
別物です。ご自由に。
0015デフォルトの名無しさん2007/05/09(水) 20:36:56
ありがとうございました
0016デフォルトの名無しさん2007/05/09(水) 22:21:49
>>1
おつかれー
ありがとね
0017デフォルトの名無しさん2007/05/09(水) 22:39:54
そういえばいつの間にかスレタイに # 使えるようになってたんだな。
0018デフォルトの名無しさん2007/05/09(水) 22:41:44
C#相談室

1 名前:名無しさん♯ [] :2000/12/18(月) 13:06
作ってみました。

==========
使えない時期ってあったのか?
0019デフォルトの名無しさん2007/05/09(水) 22:53:26
#お知らせ# スレタイに#が使えるようになりました。
http://pc11.2ch.net/test/read.cgi/tech/1171342757/
0020デフォルトの名無しさん2007/05/09(水) 23:12:09
2スレ目見たら♯になってた。
一番最初に使える時期があって、
それから使えなくなって、
また使えるようになったのか。
0021デフォルトの名無しさん2007/05/10(木) 11:52:34
COMインターフェイスについて質問です。

IHoge hogeを複数のインターフェイスにキャストするとき、
たとえば

IFoo foo = (IFoo)hoge;
IBar bar = (IBar)hoge;

みたいにして使用した後、解放するときは
もとのhogeをReleaseComObjectするだけでいいの?
fooやbarに対してそうすると
"RCWから分離されたオブジェクトを操作できません"みたいな
例外が出るんですが。

キャストってQueryInterface相当じゃなかったの?
0022デフォルトの名無しさん2007/05/10(木) 21:48:19
RCW で一度ラップしてるってのがポイントだ。
0023デフォルトの名無しさん2007/05/11(金) 08:08:47
C/C++あがりのひとです。
C#では、#defineで値のある定数が定義できませんがそれに変わるものや方法はあるのでしょうか?
当方は、(ほぼグローバル)定数専用のクラスをおこしてそこにずらずらconstしてます。
定番の方法とか知りたいです。
0024デフォルトの名無しさん2007/05/11(金) 08:11:44
グローバルな定数を使わない
妥当なクラスに(静的かどうかは意味に合わせて)プロパティを用意する
0025デフォルトの名無しさん2007/05/11(金) 08:15:54
internal なら const つかってもいいし
値が絶対に変わることがないのなら public でもいい
0026デフォルトの名無しさん2007/05/11(金) 12:58:22
グローバル定数の代わりなら、列挙型使えばいいのではないか?
0027デフォルトの名無しさん2007/05/11(金) 13:13:41
便乗質問

>>24
> グローバルな定数を使わない
グローバルな定数は定義できない。
じゃないの?

> 妥当なクラスに(静的かどうかは意味に合わせて)プロパティを用意する
これは、>>23の言う、定数専用クラスもその一例。
ってことでOK?

それとも逆に、
定数専用クラス(静的クラス)も含め、グローバルに扱える定数は使わない。
「妥当なクラス」とは、個々のオブジェクトの独立性を保てる範囲である。
ってことになるのかしらん?
0028デフォルトの名無しさん2007/05/11(金) 16:25:29
C#ではグローバルスコープには名前空間とクラスしか書けないからグローバル定数はもともと存在しない。
0029デフォルトの名無しさん2007/05/11(金) 16:51:47
まあそんな理屈はどうでもいいよ
全部クラスに属してるから純粋なオブジェクト指向だ
っなんてのと一緒だな。
0030デフォルトの名無しさん2007/05/11(金) 18:10:27
public static class Global
{
public const int Teisuu = 5;
public static int Hensuu = 0;
public static string Mojiretsu = "";
}
0031デフォルトの名無しさん2007/05/11(金) 20:33:14
>>23
たとえば円周率πがどう定義されているかをMSDNで調べてみると参考になるかもしれない。
グローバル定数専用クラスも結構だが、名前空間(クラス名含む)を適切に定義できるかどうかがキモじゃないの。
性的なプロパティにするかどうかは意味次第ってことで。
0032デフォルトの名無しさん2007/05/11(金) 20:35:13
名前空間MyのクラスGlobalに定義でもしておけ。
0033デフォルトの名無しさん2007/05/11(金) 21:14:54
保守の面でも、ソリューションごとか、アプリごとに、なにかしらnamespaceつけるのが妥当だよな。
0034デフォルトの名無しさん2007/05/12(土) 00:37:00
>>23
普通は、関連のあるクラスの const メンバ変数で定義しとく。
どことも関連しなさそうなら設計が悪いかも。
まあ、定数専用のクラス作るのもいいんだけど。

で、もしなんだけど、public な定数でかつ、
仕様の変更に伴って変わる可能性のある定数なら、
できれば static なプロパティか、static readonly なメンバ変数にしといた方がいい。
const にすると、修正したときに利用側でも再コンパイルが必要になるから。

πみたいに仕様が変更されても絶対といっていいほど定数であるものとか
private な定数なら迷うことなく const でいいんだけど。
0035デフォルトの名無しさん2007/05/12(土) 03:13:09
DataSet.ReadXml()による更新以前と以後の差分をとりたいです。
(更新を判定できるRSSリーダをつくりたい)
まったく同じ内容のXmlで更新した場合、
DataSet.GetChanges(DataRowState.Added)で差分だけとりたいのに
全部とれてしまうのですがこれはなぜでしょう?
AcceptChanges()はGetChangesのあと実行しています。
0036デフォルトの名無しさん2007/05/12(土) 03:20:39
>>35ですが、わかりづらくて申し訳ありません。
現在のDataSetと同じ内容のXmlをReadしたとき、GetChanges()
したら空のDataSetが返ると期待しているのに、なぜだかすべての
テーブル内容が返ってくるということです。
0037デフォルトの名無しさん2007/05/12(土) 11:57:13
以前 内容1 DataRowState.Unchanged
以前 内容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
>>36
同じ内容を再リードしてるんならそれで正しいと思うが?
全てを更新してるからな。
0039デフォルトの名無しさん2007/05/12(土) 16:03:37
VC#EEにdelphiにあるTChartのようなものはありますか?自分で作るの大変。
0040デフォルトの名無しさん2007/05/12(土) 16:05:51
c# グラフで検索。
0041デフォルトの名無しさん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:31
「片っ端から上書き」って具体的にどうするつもりなんだろう?
PrimaryKeyがないテーブルにImportRowしていくなら結局>>37と同じ結果になるよ
0043デフォルトの名無しさん2007/05/12(土) 23:43:39
>>42
ありがとうございます。
「PrimaryKeyがない場合、テーブルに同じRowが重複して追加される」
(>>37は、XMLがもつRowは5個だが、重複して10個になっている状態)
という理解でよろしいでしょうか?
ReadXml()したとき、更新前と更新後でもRowの数が変わらなかったので、
「ReadXml()は既存のテーブル内容を破棄する」
ということではないのでしょうか?
「主キーを設定しRowの上書き途中でConstraintExceptionが投げられたとき、
そのRowの状態をModifyにする」これでうまくいくでしょうか?
0044デフォルトの名無しさん2007/05/13(日) 03:05:17
>>43
>「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
>>44
おっしゃるとおりで解決しました。自分の馬鹿さ+睡眠不足で、
頭おかしくなってたみたいです。ありがとうございました。
0046デフォルトの名無しさん2007/05/13(日) 11:42:08

最初にAが入ってるところにさらにAを読み込んだ。
A → A+A
さて更新部分はどこ?
0047デフォルトの名無しさん2007/05/13(日) 14:32:03
は?
0048デフォルトの名無しさん2007/05/13(日) 15:23:17
なにその抽象的な
0049デフォルトの名無しさん2007/05/13(日) 15:35:05
なぞなぞなんじゃない?
答えはなんかの駄洒落だよ、きっと
0050デフォルトの名無しさん2007/05/13(日) 15:39:24
>>51の超能力に期待
0051デフォルトの名無しさん2007/05/13(日) 16:18:27
ずつーにバファリン♪
0052デフォルトの名無しさん2007/05/13(日) 20:54:41
Visual C# 2005 Express Editionを使用しています。
コンソールアプリケーションとしてある動作をするファイルを作成しました。
これをWindowsアプリケーション上にあるボタンクリックにより起動させるには
どのようにすればよいのでしょうか?

大まかなヒントだけでもかまいませんので、どうぞよろしくお願いします。
0053デフォルトの名無しさん2007/05/13(日) 21:01:29
大まかなヒント以前に質問が大まかすぎるっての。
取りあえず System.Diagnostics の Process クラス調べれ。
0054デフォルトの名無しさん2007/05/13(日) 21:49:16
>>53
さっそくどうもありがとうございます。
おかげさまで先に進めそうです。
0055デフォルトの名無しさん2007/05/13(日) 22:05:42
とりあえずふらっとすれレベルの質問だろそれ。
0056デフォルトの名無しさん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
>>59
どんな地獄にも一人ぐらい仏はいるもんだ。

本当に初心者ゆえに(それなりに自分で理解する努力はしているにもかかわらず)
分からないと思われる質問なら回答してもらえる可能性は高いでしょ。

ただの怠惰な「どちて坊や」だから叩かれるか無視されるんだよ。
0061デフォルトの名無しさん2007/05/14(月) 02:01:35
いいじゃん怠惰だろうがなんだろうが。
それがイヤなら答えないだけだし。
実際、普段答えもしないくせにそういう「ルール」みたいな話になると
途端に饒舌になるやつの方がウザい。

他人が困ってても見向きもしないヤツに限って、自分のときは
「オレはこんなに大変だ」みたいにアピールしたり不満漏らしたり。
0062デフォルトの名無しさん2007/05/14(月) 02:24:15
>>61
お前ひょっとして今疲れてない?あまり無理はするなよ。
0063デフォルトの名無しさん2007/05/14(月) 07:27:52
何度も繰り返されてきた議論をまた同じように蒸し返す奴はウザイよね
0064デフォルトの名無しさん2007/05/14(月) 09:28:10
過去スレ読んでないだけだと思うよ。
というか、39スレも読むの大変だし。
0065デフォルトの名無しさん2007/05/14(月) 10:00:56
どこの質問スレも定期的にこんな感じになるね
0066デフォルトの名無しさん2007/05/14(月) 10:08:59
スルー。
それは精神がタフでないとできない。
知性が低いとできない。
勇気がないとできない。
おれにはできない。
0067デフォルトの名無しさん2007/05/14(月) 12:40:42
SQLserver2000のdatetime型にyyyy/mm/ddを書き込みたいですがうまくいきません
DateTime.ParseExactを使ってもうまくいきませんでした
教えてくださいお願いします。
datetime以外の部分はすべて順調です。
0068デフォルトの名無しさん2007/05/14(月) 13:41:39
DateTime.Parse(string + " 00:00:00")
にすると楽
0069デフォルトの名無しさん2007/05/14(月) 13:54:26
>>67
ParseExact使っているのは大変よろしい。
でも月はmmじゃなくてMM。mmは分です(minutes)。
0070672007/05/14(月) 14:02:33
string WriteDate = DateTime.Today.ToString();
0:00:00ってのをヒントに上記のやつでいけました
もともとうえのでやってたんですけどSQLのinsertの部分で
'使うの忘れてたみたいです
ありがとうございました。
0071デフォルトの名無しさん2007/05/14(月) 14:04:01
SQL文にyyyy/MM/ddを追加したいってことだったのか
0072デフォルトの名無しさん2007/05/14(月) 14:06:49
'つけて無いのわすれてて軽くはまって
わけわからなくなってました
0073デフォルトの名無しさん2007/05/14(月) 23:59:14
>>67
というかMSSQLなら素直にパラメタライズクエリ使えよ
何やってんだ。

…ん?ひょっとしてWriteDateって挿入した日?なら
GETDATE()を使え
0074デフォルトの名無しさん2007/05/16(水) 19:00:37
TableAdapterでUpdateしたときに新規追加されるデータのAutoIncrementの値を取得したいんですが、どうすればいいんでしょう??
0075デフォルトの名無しさん2007/05/16(水) 19:04:07
hage
0076デフォルトの名無しさん2007/05/16(水) 20:11:06
>>74
ふらっとC#, C♯, C#(初心者用) Part15
http://pc11.2ch.net/test/read.cgi/tech/1176387265/977

マルチは死ね
0077デフォルトの名無しさん2007/05/16(水) 23:41:22
TableAdapterにAutoIncrementプロパティってあるの?

それにUpdateしたときに新規追加されるデータって表現はおかしくないかな?
0078デフォルトの名無しさん2007/05/17(木) 00:06:20
質問の意図も読み取れないバカは黙ってろ
0079デフォルトの名無しさん2007/05/17(木) 00:13:24
AutoIncrementがTrueかFalseか知りたいだけだろ?
0080デフォルトの名無しさん2007/05/17(木) 00:16:02
違うよバカ
0081デフォルトの名無しさん2007/05/17(木) 00:31:20
読み取れてるんなら、答えてやれよ。上級者。
0082デフォルトの名無しさん2007/05/17(木) 11:51:15
そんなんもわからんのなら辞めれば^^;
0083デフォルトの名無しさん2007/05/17(木) 23:08:13
空気悪い。
0084デフォルトの名無しさん2007/05/18(金) 21:48:57
ええい、しっかりせんかい
0085デフォルトの名無しさん2007/05/19(土) 15:02:33
>>74
データベースはSQLサーバー?
0086デフォルトの名無しさん2007/05/19(土) 15:39:33
C#というか.NETでローカルのDBとしてBase(OpenOfficeのデータベース)を
使う事ってできる?
Accessじゃないと駄目なのかな?
もしできるならやり方とか書いてあるサイトを教えてもらいたいです
0087デフォルトの名無しさん2007/05/19(土) 15:46:08
>86
ODBCのドライバとかないのか?
0088デフォルトの名無しさん2007/05/19(土) 22:49:34
.NETでRPCみたいなのってないの?SOAPみたいな重いのだけ?
0089デフォルトの名無しさん2007/05/19(土) 22:57:38
RPC と SOAP は同列に並べることはできんだろ
リモーティングになら IpcChannel が .NEt 2.0 で追加された
.NET 3.0 の WCF でも NamedPipe を使える
あとは MSMQ とかか?
0090デフォルトの名無しさん2007/05/20(日) 13:52:08
SOAPが重いって脳腐ってないか?
0091デフォルトの名無しさん2007/05/20(日) 14:20:14
発酵してるんだよ
0092側近中の側近 ◆0351148456 2007/05/20(日) 18:01:22
>>67,70
(っ´▽`)っ
っていうか、時分秒は入れなくていいのか?
datetime型なのに時分秒が入ってないと
後で困るかも。整列させるときとかね。

いっそのことvarcharでいいんじゃね?
時分秒が入ってないのはもうdatetimeとはいえないのでは?
0093デフォルトの名無しさん2007/05/20(日) 19:04:54
なんかアホな質問だったらごめんなさい。

lockについてなんですが、

クラスのオブジェクトにたいして読み書きするメソッドAdd(),Remove()と
読むだけのメソッドRead1(), Read2() とがありまして、

Add() や Remove() では他のメソッドと同期したいんですが、
Read1() ⇔ Read2() 間では排他にしたくないんです。

こういう場合ってどうしたらいいんでしょうか。
0094デフォルトの名無しさん2007/05/20(日) 19:18:56
ReaderWriterLock 使え
0095デフォルトの名無しさん2007/05/20(日) 19:23:18
C#で書かれたwindowsアプリのサンプルが
大量に載ってる教本ってないですかね?
サンプルプログラムではなく
アプリとしてのってるのがいいのですが、見つかりません。
VBAやperlではたくさんあるんですが・・・。

検索すると、カットシステムから出版されている
「.net FrameworkプログラミングテクニックVol3」っていうのが
かなり近い感じですが、もう読み終わってしまったので
更なるステップアップを目指しています。

オープンソースのフリーソフトを読むというのも考えたのですが、
解説があるのと無いのでは理解する速度が断然違いますし、
変な癖がついたりするのも怖いです(経験あります)

該当する書籍、資料などありましたら教えて頂けると幸いです<(_ _)>
0096デフォルトの名無しさん2007/05/20(日) 19:38:20
アプリならCodeProjectからダウンロードすればいいと思うが。
あれじゃ駄目か?
0097デフォルトの名無しさん2007/05/20(日) 20:53:16
>>94
ありがとうごさます。ばっちりでした
0098デフォルトの名無しさん2007/05/21(月) 00:18:21
TreeViewいじってて気付いたんですが、
TreeNodeのnodeがあったとして
普通にnode.Text = "hoge";ってやるよりも
いったんnodeを削除して同じ場所に新しい"hoge"ノードを作った方が
早いような気がします。
ただ、無限ループで繰り返して計測した訳ではないので
あくまでも「気がする」の域です。(こう書くと釣りっぽいですが(^^;
ちなみにBeginUpdate()は使っていません。
(できない場所だったので)

これって何か理由でもあるんですかね。
0099デフォルトの名無しさん2007/05/21(月) 00:39:58
クマー
0100デフォルトの名無しさん2007/05/21(月) 00:45:51
ビロニストが混じってるようだ。
0101sage2007/05/21(月) 00:54:16
こんな餌に俺が...
0102デフォルトの名無しさん2007/05/21(月) 01:35:33
>無限ループで繰り返して計測

さて、ここは無限ループでどうやって計測するのか議論するスレになりました。
しかも繰り返してですよお客さん
0103952007/05/21(月) 02:54:25
>>96
レス遅れてすいません。
検索してみましたが、これはどういうサイトなんですか?
英語ダメなもんで orz

とりあえず、ソフトやコードのサンプルがたくさんあるようですが・・・。
想像していた物とは違いますが、これはこれで勉強になりそうです。
良いサイトを教えて下さりありがとうございます。
0104デフォルトの名無しさん2007/05/21(月) 05:28:34
英語がダメって小学生かよ。
0105デフォルトの名無しさん2007/05/21(月) 05:44:29
>>103
英語からの情報を諦めてたらプログラマとしての成長が早いところで頭打ちになるよ。
プログラミングの勉強と並行して英語もやった方がいい。
小説などと違って簡単な言い回しでの説明が多いからすぐ慣れると思うよ。
あとは単語を辞書で引いたりググったりすれば大丈夫。
.Netのクラスライブラリも日本語版と英語版があるから読み比べてみるといい。
0106デフォルトの名無しさん2007/05/21(月) 15:00:38
class Pair<T,U>があったときに
Pair<Pair<string,Pair<string,int>>,object>のようなものをC#(.NET)の正規表現で解析できるものでしょうか?
教えてエロイ人(´・ω・`)
0107デフォルトの名無しさん2007/05/21(月) 15:22:59
>>106
エロイ人ほど深読みしそうな書き方だけど、
class Pair<T,U>ってのは文字列?
string hoge = "class Pair<T,U>"; みたいな。

エロイ人は Type fuga = typeof( Pair<T,U> ); についての
パターンマッチの仕組みを聞かれている可能性を悩んでそうな希ガス。
0108デフォルトの名無しさん2007/05/21(月) 15:30:42
>>107 紛らわしくてすいません。
class 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
>>108
文字列の解析ね。
正規表現を使うことというのは条件なの?
普通に考えたらC#の構文解析器の該当部分をどこかからパクってくるのが正攻法な気がするけど、
エディタのマクロを組みたいとかそういう用途?

あと、ソースコード中のある箇所でAという型名に見えても、
using A=B; ってエイリアスされてるかもしれないから
厳密にはタイプパラメータとは言えないかもね。
実行中にその型名で検索しても何も見つからないってこともあるよ。

厳密な実装をやりたいのか、
誰かから引き継いだコードを泣く泣く書き換えたいだけなのかで答え変わりそうだね。
単にあるコードを解析したいだけなら、
いったんコンパイルしてリフレクションで解析でもいいだろうし。
0110デフォルトの名無しさん2007/05/21(月) 16:22:40
もちろん出来ない。
01111092007/05/21(月) 16:24:54
ああそうか。usingのエイリアスを持ち出すまでもなく
ネームスペースや参照アセンブリが省略されてるから、
どっちにしろ型引数に書かれた文字列だけ得ても元の型は一意に定まらないね。
ややこしい例出してスマソ。
0112デフォルトの名無しさん2007/05/21(月) 16:35:47
>>108
正規表現の言語クラスでは再帰的表現を扱うことはできない。
今回の場合は、複数回パターンマッチを行うようにしても無理。
0113デフォルトの名無しさん2007/05/21(月) 16:38:38
>>109 いえ、とりあえず例に挙げたようなクラスで、元のGeneric型とそのタイプパラメータをタイプパラメータにGeneric型が入る可能性を考えた上でひっぱってきたいだけです。
その他の文法とかは考慮しませんし、エイリアス使ってる場合なども含めて厳密に型を引っ張ってこられるかは別問題です。
やりたいことを詳しく書くと上記の例に挙げたようなクラス名称を文字列として渡されたときに、元となるGeneric型やそのタイプパラメータを引っ張ってきて処理できるようにしたいんです。
もちろんアセンブリやネームスペースなども考慮しますが先に挙げた例は正規表現で再帰的な構造を含むものを処理できるかノ例としてあげたまでです。
正規表現の使用は絶対ではありませんが、構文解析よりはひとまず敷居が低いと使用を考えたまでです。
0114デフォルトの名無しさん2007/05/21(月) 16:42:10
>>112
そうですか・・・
だとすると構文解析的なものを考えないとだめそうですね。
0115デフォルトの名無しさん2007/05/21(月) 22:22:20
質問であります。
XMLシリアル化ってバージョントレラントなんだろうか?

「バージョントレラント」の厳密な定義とは違うかもしれませんが、
俺としては次の条件を満たせば必要十分なんですが。

(1) デシリアライズの際、XMLに、デシリアライズされるクラスが知らない
  フィールドやプロパティが記述してあっても例外にならない。

(2) デシリアライズの際、XMLに、デシリアライズされるクラスの本来シリアル化対象のはずの
  フィールドやプロパティが記述してなくても例外にならない。

簡単なコードでテストしてみると、どうもこれらの条件は満たしているっぽいのですが、
できれば何か裏づけが欲しいんですよね。

MSDNライブラリ見てもググって見てもどうも裏付けるような文章が見つからない。
↓の中氏の文章は(誌面の都合もあるんでしょうが)いまいち舌足らずだし。
http://www.microsoft.com/japan/msdn/netframework/skillup/core/article9.aspx
0116デフォルトの名無しさん2007/05/21(月) 22:48:38
(1)はともかく(2)は気持ち悪くないか?
0117デフォルトの名無しさん2007/05/21(月) 22:53:09
いや、バージョンアップ後も古いバージョンのデータが読めるためには必要な条件でしょう。
0118デフォルトの名無しさん2007/05/21(月) 22:56:40
そこからいけるリンク先に答え書いて内科医?
ttp://msdn2.microsoft.com/ja-jp/library/ms229752(VS.80).aspx
0119デフォルトの名無しさん2007/05/21(月) 23:00:38
書いてナイアルよ。。
0120デフォルトの名無しさん2007/05/22(火) 21:58:00
質問です。
time,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:46
一行ずつ読めば?
0122デフォルトの名無しさん2007/05/22(火) 22:04:45
遅いのはオブジェクトの生成を繰り返しているからだ。
後は自分で考えろ。
0123デフォルトの名無しさん2007/05/22(火) 22:06:04
一行読む>カンマまで消す でやってみます
0124デフォルトの名無しさん2007/05/22(火) 22:10:33
>>123
おいおいそんな下手なやり方じゃダメだよw

必ずしも一度に全部Stringにぶち込む必要はないが(不可能な場合もあるだろうし)
ファイルはチビチビ読まず一度にまとめて読む、という方針はむしろ正しい。

問題は読んだ後の処理にあると思われる。
String.Splitとか正規表現とか、いろんな方法を自分でいろいろ試してみるしかないよ。
0125デフォルトの名無しさん2007/05/22(火) 22:23:11
上手い具合に教えないとな。
Cだったら簡単なのに…c#は難しい!とか言われそう。
0126デフォルトの名無しさん2007/05/22(火) 22:28:58
なるほど、Splitよさそうですね!
とりあえずRemoveで消すという無駄な処理をなくしてみます。
どうもです。
0127デフォルトの名無しさん2007/05/22(火) 22:30:11
>>126
http://msdn2.microsoft.com/ja-jp/library/system.string(VS.80).aspx
Stringクラスは重要だから全てのメソッドに目を通しといたほうがいいよ。
0128デフォルトの名無しさん2007/05/22(火) 23:05:22
うそヒント scanf()
0129デフォルトの名無しさん2007/05/22(火) 23:17:25
regexで一気にマッチできるような気もするな・・・
0130デフォルトの名無しさん2007/05/23(水) 01:00:05
>>129
全読みしていいんならむしろ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:50
GC.KeepAliveのサンプルのところがよくわからないのだけど、
http://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:57
変な気もするけどそうなってんだからしょうがない。
0134デフォルトの名無しさん2007/05/23(水) 14:44:50
>>132
>なのでsひょうか?
違います。

そのURLの例が示しているのは、hogeのプロパティとして返された配列を利用している
最中にhogeがGCされて、hogeのファイナライザがその配列を変更してしまうというケース。
それ以上でもそれ以下でもない。
0135デフォルトの名無しさん2007/05/23(水) 14:54:17
>>134
クローンしてる。
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
なんで別スレッドとか出てくるのか意味がわからんw
インライン化されようがなんだろうが、自分のスコープ抜ける前に死ぬ訳がないと思うんだが。
0138デフォルトの名無しさん2007/05/23(水) 19:05:34
ローカルでのスコープてのはコンパイル時の概念
実行時には関係ないんだよ
0139デフォルトの名無しさん2007/05/23(水) 19:06:23
まあスレッドはあまり関係ないが
0140デフォルトの名無しさん2007/05/23(水) 19:11:52
>>138
なんか基本から勘違いしてない?
そんなわけないってw

MSDNライブラリに書いてある通り、GCが問題になるのは、
例えば変数がスコープ抜けた後もその変数への参照をアンマネージコードが
保持しているような場合だけだって。
0141デフォルトの名無しさん2007/05/23(水) 20:00:40
>>140
>MSDNライブラリに書いてある通り
msdn の↓の事例について話してるわけだが。
http://msdn2.microsoft.com/ja-jp/library/system.gc.keepalive(VS.80).aspx
0142デフォルトの名無しさん2007/05/23(水) 22:32:57
.net2です。
toolstrip(ツールバー)上に置いたコンボボックスをツールバーの
幅に合わせて、いっぱいまで広げたいのですが、簡単な方法は
ないでしょうか?

ステータスバー上のアイテムならばSpringプロパティがあるのですが。
0143デフォルトの名無しさん2007/05/23(水) 23:29:55
簡単なのはなさそう。
0144デフォルトの名無しさん2007/05/24(木) 00:20:38
>なんか基本から勘違いしてない?
>そんなわけないってw

知らないんなら適当なこというなよ。
ローカルのスコープは実行時には消滅する。
実行時にはメソッド全体でひとつのスコープ。

で、たとえローカル変数のスコープ内でも、最後にそのローカル変数を経由して
参照を使用した場所より後ろでは、その参照はGC対象になる。

さらにJIT最適化により、最後の参照しようが消滅する場合がある。
こうなると、最後のインスタンスメソッド呼び出し最中にはすでにGC対象となっている。
0145デフォルトの名無しさん2007/05/24(木) 00:23:41
世の中、詳しい人がいるもんだな。
0146デフォルトの名無しさん2007/05/24(木) 00:30:54
>>144
C#はスタックフレームとかは作られないの?
0147デフォルトの名無しさん2007/05/24(木) 00:43:28
作られる
0148デフォルトの名無しさん2007/05/24(木) 00:43:46
>>144
タイプミスのせいどうか何が言いたいのかよくわからないけど、
やはり何か勘違いしてるとしか俺には思えない。
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:15
>>149
hoge1.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変数は消滅してるのと同じってこと。

また本来なら、hoge.Boke呼び出しで、hogeは暗黙のthis参照として
Bokeに渡されるので、Bokeから戻るまではGC対象にならないが、
JIT最適化によりBoke実行中にすでにGC対象になってしまう場合があるということ。
0153デフォルトの名無しさん2007/05/24(木) 01:06:06
そこまできつきつのチューンはしてないと思うけど
0154デフォルトの名無しさん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:11
いや、インラインは関係ないか。
this参照も最後に使われた以降は消滅するわけだから。
01581542007/05/24(木) 02:03:40
つまり、あのリンク先の例での肝は ex.Hash; のHash呼び出しだが、
これのコードが、コメントに書かれた動作から推察するに
1.exからHashのアドレス取り出し
2.不要になったexをFinalizationキューに突っ込む
3.Hash処理呼び出し
こうなってるってことだろ

んで、タイミングによってはHash処理が終わる前にGCが動いてデータが読み出せないことがある、と

スコープもインライン展開も関係ないやろ?w
0159デフォルトの名無しさん2007/05/24(木) 02:08:56
もうええわ
0160デフォルトの名無しさん2007/05/24(木) 02:41:45
>>158
違うよ。
インスタンスメソッドではexはthis参照として渡されてる。
でも渡された側でexを使ってないから、JITコンパイルされた結果ではすぐにnullに設しなおされるってことだろ。
この時点でGC対象になり、さらにGCも走った場合、Fキューに入ってファイナライズが走る。

>スコープもインライン展開も関係ないやろ?w
動作時にはスコープは意味ないってのがもともとの話だしょ。
まあどうでもいいけど。

インラインは確かに関係ないな。
0161デフォルトの名無しさん2007/05/24(木) 02:51:57
GC.KeepAlive(ex);でexを使っちゃったら、ガベージされないのって当然じゃね???
正直かわりに Object dummy = ex; って書いておいても同じじゃないのコレ???

ワカランから詳しく説明きぼん。
あ、試してみればいいのか・・・自分で。
0162デフォルトの名無しさん2007/05/24(木) 02:53:11
って書いてから気づいた。最適化で除去されるのか。
0163デフォルトの名無しさん2007/05/24(木) 02:58:48
そう。
GC.KeepAliveは最適化で消されたりしないようになってる。
まあインスタンスメソッド呼び出しとかでもなんでもいいんだけどね。
0164デフォルトの名無しさん2007/05/24(木) 03:00:25
だから本当に必要なことってめったにない。
間違った(あるいは勘違いした)例は結構あるけど。
0165デフォルトの名無しさん2007/05/24(木) 03:06:16
案外GC.KeepAlive()の実装って単に

public int secret;
KeepAlive(Object obj) {
if ("".Equals(obj)) secret++;
}

みたいな感じだったりして。(試してない)
0166デフォルトの名無しさん2007/05/24(木) 03:09:27
む、ダメだ、Stringキャスト発生しそう・・・
どう作ればエレガントかな???
0167デフォルトの名無しさん2007/05/24(木) 03:11:45
>>164
ここなんかそうだね。Close呼んでるならKeepAliveいらないだろって。
間違いじゃないけど蛇足?
ttp://jeanne.wankuma.com/tips/process/mutex.html
0168デフォルトの名無しさん2007/05/24(木) 03:42:29
自分のプログラムから、自分のアイコンを変えたり、
デスクトップの壁紙を変えたりって事はできるのですか?
0169デフォルトの名無しさん2007/05/24(木) 03:42:50
はい。
0170デフォルトの名無しさん2007/05/24(木) 03:52:07
マジですか?
教えてください。
お願いします。
0171デフォルトの名無しさん2007/05/24(木) 03:55:52
いいえ。
0172デフォルトの名無しさん2007/05/24(木) 04:07:15
いやん!
0173デフォルトの名無しさん2007/05/24(木) 04:19:35
>>160でも渡された側でexを使ってないから、
まちがい、hashValueを使用していこう使ってないから、だな。

0174デフォルトの名無しさん2007/05/24(木) 04:22:38
>>167
そこ、以前はとてつもなく間違ってたけど、
今のはちゃんと理解してないな、レベルになったなw。

書いてておかしいと思うんだけどね。

// GC.KeepAlive メソッドが呼び出されるまで、ガベージ コレクション対象から除外される
GC.KeepAlive(hMutex);

// Mutex を閉じる (正しくは オブジェクトの破棄を保証する を参照)
hMutex.Close();

いやいや、おかしいだろw

0175デフォルトの名無しさん2007/05/24(木) 04:25:30
わろうたw
0176デフォルトの名無しさん2007/05/24(木) 09:10:26
すいません。わかりません。

public byte[] Hash { get { return (byte[]) hashValue.Clone(); }}

このコードが実行されてる最中に自身のファイナライザーが
呼ばれるかもしれないということですか?

thisを最後に使ったあとでGC対象になるってことですが、thisのメンバー
であるhashValueはClone()内で参照されているのに消えてしまうんですか?
それともこれはbyte[]だからこうなるという話ですか?






0177デフォルトの名無しさん2007/05/24(木) 09:36:09
>>176
public 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
ちなみに csc /debug でコンパイルすると現象は起きなくなる。
これはJITでの最適化がOFFとなり、参照にnullを代入などしない限り
ファイナライズやGCはスタックの回収時以降となるため。

もし>>177 の仮説があってればMSDNのサンプルとしては特殊ケース過ぎる。
先に出ているMutexとKeepAliveの例の方がサンプルとしてベターだと思う。
0179デフォルトの名無しさん2007/05/24(木) 10:00:13
>>177
なるほど、そう解釈すればなっとくいきます。
0180デフォルトの名無しさん2007/05/24(木) 10:29:52
ちがうよ。
hashValueはGC対象じゃないよ。
hashValueが解放されるのが原因じゃなくて、
exの参照先が解放される際に、ファイナライズで消してしまうから。
原因はあくまでexの参照先の方。
0181デフォルトの名無しさん2007/05/24(木) 10:33:01
おまいら、変な想像で書きすぎだ
0182デフォルトの名無しさん2007/05/24(木) 10:50:49
http://blogs.msdn.com/cbrumme/archive/2003/04/19/51365.aspx
http://blogs.msdn.com/bclteam/archive/2005/03/16/396900.aspx

マネージコードの範囲内なら問題なかったと思い込んでたんだけど、
そうでもなかったっけこれ・・・。
0183デフォルトの名無しさん2007/05/24(木) 11:15:50
>>177
仮説が崩れた。このケースでも発生しとる。
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:14
欠陥言語だな
0185デフォルトの名無しさん2007/05/24(木) 11:47:39
デストラクタで明示的に配列を消してるからあかんじゃないのか
0186デフォルトの名無しさん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
>>186
コンストラクタの完了前にファイナライザが実行される例。
ttp://d.hatena.ne.jp/NyaRuRu/20060626/p4

あと、結果を代入するかどうかよりも、
その後代入された値が使われるかどうかに着目すべき。
0189デフォルトの名無しさん2007/05/24(木) 12:17:51
>>187
ふらっとの新スレ
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
>>183
とりあえずよほどの自信がない限り
ファイナライザ中でマネージオブジェクトの操作なんてしないのが得策かと。
頭痛いのはそういうことしちゃう人。

 return (byte[])hashValue.Clone();

こうやって書くからthis云々に思えるけど、
下のような意味だと思えば、フィールドにアクセスした直後からすでに
thisが不要になっていることが分かる。

 byte[] tmp = this.hashValue; // これ以降thisは不要
 // ここでfinalizerが実行されてもおかしくない
 byte[] tmp2 = (byte[]) hashValue.Clone();
 // returnにもthisは不要
 return tmp2;

>>185
正解。
01921902007/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
>>189
レスいただきどうもありがとうございます。
ふらっとのスレは全角の#でも検索するべきでした。

それから、教えていただいた方法でできました、ありがとうございました。
助かりました。
0195デフォルトの名無しさん2007/05/24(木) 12:54:00
>>193
ファイナライザが実行されても、
メソッド自身やメソッド実行中のスタック変数のメモリ領域まで解放されるわけじゃないよ。

確かにC++でdelete this;やったことあるような人でないとわかりにくいかもね。
まあ一般には「自身がなければファイナライザを自分で書くな」でいいと思う。
0196デフォルトの名無しさん2007/05/24(木) 13:00:24
>>195
この例だと、hashValueってのはマネージヒープ上にあるんじゃないの?
0197デフォルトの名無しさん2007/05/24(木) 13:04:10
>>196
もしかしてあるクラスのインスタンスが解放されたら、
そのタイミングで全てのフィールドも解放されると思ってる?
そんなことはないんだけど。
0198デフォルトの名無しさん2007/05/24(木) 13:06:19
欠陥ちゃ欠陥だが、CLRがパフォーマンスを理由にあえてそうなってんだから仕方がない。
マネージコードの範囲内ならお行儀良くしていれば良いだけだし、
マネージラッパー書くならSafeHandle(これも万能には程遠いが)使いましょう、と。

>>196
そしてthisはそのメモリを参照しているだけ。
0199デフォルトの名無しさん2007/05/24(木) 13:18:40
>>197,198
ありがとう。やっとわかった。
0200デフォルトの名無しさん2007/05/24(木) 19:23:45
TextBoxに入力されるキーを見て、
それが特定のキーならデータがLinesプロパティに書き込まれるのを阻止したいんですけど、
どうすればいいかわかりません。
誰かご教授お願いします。
0201デフォルトの名無しさん2007/05/24(木) 19:29:14
GCの仕様を知らない馬鹿がいるスレはここですか?
0202デフォルトの名無しさん2007/05/24(木) 19:38:38
いるわけないだろそんなバカ
0203デフォルトの名無しさん2007/05/24(木) 19:43:37
どなたか>>115に関して分かる方いたらお願いします。
0204デフォルトの名無しさん2007/05/24(木) 20:06:21
>>200
http://msdn2.microsoft.com/ja-jp/library/ms229644(VS.80).aspx
0205デフォルトの名無しさん2007/05/24(木) 20:06:33
いるわけないだろそんなバカ
0206デフォルトの名無しさん2007/05/24(木) 20:49:06
>>204
KeyPressで捕らえたらe.Handledをtrueにすると反映を阻止できるんですね。
ありがとうございました。
0207デフォルトの名無しさん2007/05/24(木) 21:50:25
は?
0208デフォルトの名無しさん2007/05/24(木) 21:59:04
リンク先くらい見ろよ
0209デフォルトの名無しさん2007/05/25(金) 00:21:24
もしかしてREG_NONEってRegistryKeyクラス使って読めないの???
0210デフォルトの名無しさん2007/05/25(金) 01:19:29
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/478registryvaluekind/registryvaluekind.html
0211デフォルトの名無しさん2007/05/25(金) 01:43:21
レスthx

ぶっちゃけ
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer
の
IconUnderline(REG_NONE)を読みたいんですよね……

どうも無理っぽいんでAPI使うしかないすかね?
またDllImportが増える。。
0212デフォルトの名無しさん2007/05/25(金) 01:52:40
調べたらREG_NONEのときはデータを無理やり文字列(StringBuilder)にして読もうとするらしい。。
素直にbyte[]で返してくれればいいのに プンプン
0213デフォルトの名無しさん2007/05/25(金) 14:34:41
ファイナライザーでAssertに引っかかっても、別スレッドのせいか
ダイアログが消えてしまいます。どうすればAssertの内容を確認できますか?
0214デフォルトの名無しさん2007/05/25(金) 14:35:26
↑書き忘れました。アプリ終了時の話です。
0215デフォルトの名無しさん2007/05/25(金) 19:51:56
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
 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:05
DataGridView の DataSourece に DataTable を割り当てている状態で
DataTable のセルの値を一度に多数書き換えているんですが
値が書き換わるたびにDataGridViewがソートをしてしまうので非常に重くなってしまいます。

とりあえず、書き換える前にダミーとして空の DataTable を DataSource に割り当てて
書き換えが全て終わった後に、元の DataTable に割り当てなおすようにしてます。
これだと動作は軽くなるんですが、テーブルが一瞬空になってしまうので非常にかっこわるいのです。


DataSource を割り当てたまま DataGridView を一時的に更新停止させる方法はあるのでしょうか?
0217デフォルトの名無しさん2007/05/26(土) 00:08:26
>>215
以前間違えて別スレッドからcontextMenuStripを表示したとき
似たようなことになったが
0218デフォルトの名無しさん2007/05/26(土) 00:58:48
ListBoxを継承して
OnPaintメソッドをoverrideした
カスタムコントロールを作ったんだけどイベントが発生しないです。
なんで?
0219デフォルトの名無しさん2007/05/26(土) 01:06:20
くだすれでも恥ずかしくて聞けないような質問だなあ。。。
もっとも218にはそれが恥ずかしい質問だ、という認識すらないだろうけど
0220デフォルトの名無しさん2007/05/26(土) 01:07:04
ListBox は描画をシステムに丸投げしてるから。
ちゃんと ListBox.Paint にこのイベントは使われないって書かれてる。
0221デフォルトの名無しさん2007/05/26(土) 02:17:45
いい加減にしろ!!
0222デフォルトの名無しさん2007/05/26(土) 03:51:53
ThreadPoolで実行されているスレッドを全て強制終了させるにはどうしたらよいのでしょうか?
0223デフォルトの名無しさん2007/05/26(土) 04:09:52
Environment.Exit
まあThreadPool以外も強制終了されるけどなw
0224デフォルトの名無しさん2007/05/26(土) 04:14:26
↑そういった解答は出ると思ってました。

自分でスレッド管理します。
0225デフォルトの名無しさん2007/05/26(土) 04:34:55
ところでどういう場面で必要になるの?
0226デフォルトの名無しさん2007/05/26(土) 11:32:56
いい加減にしたいときだろ
0227デフォルトの名無しさん2007/05/26(土) 17:55:16
>>216
ソートを一時的にやめたら?
0228デフォルトの名無しさん2007/05/26(土) 21:06:24
素朴な質問だけど、private指定したプロパティって邪道?
要はクラス内部で使うGet,Setメソッドを変数風に定義しよう
としているんだけど。素直にメソッド使っとけって感じ?
0229デフォルトの名無しさん2007/05/26(土) 21:10:48
何の問題もない。
0230デフォルトの名無しさん2007/05/26(土) 21:25:51
多用はしないがときどき使うな
0231デフォルトの名無しさん2007/05/26(土) 21:31:06
全く邪道ではない。
ゲット セットのほうが邪道。
0232デフォルトの名無しさん2007/05/26(土) 21:39:11
C#3.0で自動プロパティが使えるようになったら使いまくるかも
0233デフォルトの名無しさん2007/05/26(土) 21:42:25
c#にはなんで(インデクサ以外の)引数付きプロパティがないんだろう
0234デフォルトの名無しさん2007/05/26(土) 21:48:56
インデクサで実現できるから
0235デフォルトの名無しさん2007/05/26(土) 21:54:27
>>234
脳が足りないお方か?
0236デフォルトの名無しさん2007/05/26(土) 22:03:53
インデクサが付いたインターフェイスを内部クラスで実装すればいいだろ
0237デフォルトの名無しさん2007/05/26(土) 22:32:31
意味がわからない
0238デフォルトの名無しさん2007/05/26(土) 22:41:59
それは頭が悪いだけだろ
0239Anders Hejlsbergは神2007/05/26(土) 23:04:40
神聖なCoBoLの血を引くDelphiを、そしてLispへと融合しつつあるC#を作ったAnders Hejlsbergは神。
0240デフォルトの名無しさん2007/05/26(土) 23:18:34
なんじゃそりゃ
0241デフォルトの名無しさん2007/05/26(土) 23:20:49
いや、Delphiはそんな血は引いてないからw
0242デフォルトの名無しさん2007/05/26(土) 23:25:49
>>233はVisual C++の
property String^ SampleProperty[int]
みたいなことが何でC#に無いかって訊いてるんだろ。
>>236は「最終的に欲しい型をインデクサで返す中間クラスを定義して
それを返すプロパティにすればいい」って言っている。

何で無いのかと訊かれれば、言語設計者の気まぐれじゃね?
0243デフォルトの名無しさん2007/05/26(土) 23:26:39
COBOLの血を引いてるなんて言ったらボコるぞ!
0244デフォルトの名無しさん2007/05/26(土) 23:27:48
引数付きプロパティをVBで組んで一度CLRにコンパイルしてから
C#で逆コンパイルするとどんなコードになるんだろう
02452282007/05/26(土) 23:32:33
みなさん、レスどうもです。privateでの使い方って聞いた事なかったんで、
文法的にNGなのかと思っていたんですが、試しに書いてみたらすんなり
通ったんだけど、清く正しい書き方かどうか不安になったもんで。
0246デフォルトの名無しさん2007/05/26(土) 23:33:42
サポートされていないものを適切に逆コンパイルできるわけがなかろう
0247デフォルトの名無しさん2007/05/26(土) 23:39:33
>>245
VC#2005に付いてるスクリーンセーバスタートキットで
思いっきり使われてた記憶がある
0248デフォルトの名無しさん2007/05/26(土) 23:43:57
>>246
ILになったものをC#から参照するときどう見えるかは気になるな。
試してないけど
get_プロパティ名(引数)
というメソッドになるんじゃない?
0249デフォルトの名無しさん2007/05/26(土) 23:57:53
DLLにしてC#で使おうとするとどうなるんだろ
「この言語ではサポートされていません」みたいなエラーが出るのかな
0250デフォルトの名無しさん2007/05/26(土) 23:59:27
デフォルトプロパティならC#のインデクサと同じ構文でアクセスできるけど、
その他はアクセサメソッドを直に使うことになるね。
0251デフォルトの名無しさん2007/05/27(日) 00:18:16
>>242
>何で無いのかと訊かれれば、言語設計者の気まぐれじゃね?
気まぐれでは何なので予想してみる。
構文解析上うざいから?まぁなんにしろ評価してバランスがあわん
かったんだろう。
0252デフォルトの名無しさん2007/05/27(日) 00:23:31
言語設計者は間違いなく、俺たちより優秀な奴らがレビューして
決めているから、あきらめて使うしかないよ。
バージョン変わると新しくできる可能性があるかもれないが。
0253デフォルトの名無しさん2007/05/27(日) 00:29:09
>>248
それで正解。
VB で xx.NameProp(1) = "nnnnn"
C#だと xx.set_NameProp(1, "nnnnn");
0254デフォルトの名無しさん2007/05/27(日) 00:35:02
へジの趣味だろ
0255デフォルトの名無しさん2007/05/27(日) 00:40:15
バカなおまいらのためにヘジが気を使ってくれたというのに、おまいらときたら・・・
親の心子知らずとはこのことですな。
0256デフォルトの名無しさん2007/05/27(日) 01:17:19
indexが予約語になったらお前らのソースがコンパイルできなくなるから。
0257デフォルトの名無しさん2007/05/27(日) 01:20:27
?
0258デフォルトの名無しさん2007/05/27(日) 01:24:26
〜コレクションで実現できるからじゃないかな?
0259デフォルトの名無しさん2007/05/27(日) 01:30:09
そのコレクションを作るのが手間だというのは問題でそ
0260デフォルトの名無しさん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:03
2.0のBackgroundWorkerでちょっとお尋ねしたいんですが、Windowsフォームに
BackgroundWorker開始用のボタン 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:35
続き

private 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:16
続き2

private 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:31
くだらねぇ煽り入れてる暇があるなら答えてやりな。
0267デフォルトの名無しさん2007/05/27(日) 11:16:44
死んでもイヤだね。
でも別にお前さんが答えることまでは止めないよ。
0268デフォルトの名無しさん2007/05/27(日) 11:16:53
以下、オマエモナーループ
0269デフォルトの名無しさん2007/05/27(日) 11:17:19
>>265
調べてもわからないから聞いているんですが・・・。
DOBONさんや、MSDNでは

重い処理 = System.Threading.Thread.Sleep(10000);

という扱いになっているのでなんとも・・・。
0270デフォルトの名無しさん2007/05/27(日) 11:18:03
>>265
>>267
なんだわからないだけかw  おまえみたいなゴミは死んだほうがマシだな
0271デフォルトの名無しさん2007/05/27(日) 11:18:39
>>262
MSDNにあるサンプルと見比べてみ。
それでもわかんなかったら、相当に注意力が欠如してる。
0272デフォルトの名無しさん2007/05/27(日) 11:23:54
>>269
本当に調べてわからないならプログラミングなんてやらない方が自分のためだと思う。
いや本当に煽りとか悪意とか抜きで、むしろ善意で言ってるつもりだけど。
0273デフォルトの名無しさん2007/05/27(日) 11:26:31
>>272
いるいる、おまえみたいなやつ。
さっさと答えいえばいいのに関係ないことねちねちいう馬鹿w
0274デフォルトの名無しさん2007/05/27(日) 11:37:59
>>273
せめて自分の言葉を自分自身に向けたら?w
脳の不自由なお方だねえ。
0275デフォルトの名無しさん2007/05/27(日) 11:40:28
>>271
ttp://msdn2.microsoft.com/ja-jp/library/system.componentmodel.backgroundworker(VS.80).aspx

MSDNのサンプルをみながら、処理部分を別ループにだしてみたりいろいろしてみたんですが
textbox1.AppendTextのみ描画されて、ボタンは描画されないままでした(上の結果と同じ)

ちょっと煮詰まってきたので休憩してから再度取り組んで見ます。
0276デフォルトの名無しさん2007/05/27(日) 11:41:27
>>274
はぁ? おまえ小学校からやりなおしたほうがいいぞw
0277デフォルトの名無しさん2007/05/27(日) 11:43:27
荒れてますね
0278デフォルトの名無しさん2007/05/27(日) 11:48:21
>>275
何も学ばずに再度取り組んでも絶対に同じこと。
君はそもそもスレッドの概念がまったく理解できてないんだろ。
せめて@ITやCodeZineの解説に書いてあることぐらい理解してからでなきゃ
何やったって意味ないね。

BackgroundWorkerってのは(個人的には存在意義が疑問だが)
スレッドを簡単に使うためのものであってスレッドを理解してない人間でも
スレッドを使えるようにするものではないんだよ。
0279デフォルトの名無しさん2007/05/27(日) 11:50:45
>>278
荒れるだけだし勿体つけずに教えてやれよ。
0280デフォルトの名無しさん2007/05/27(日) 11:54:13
>>278
何も学ばずにって、教えてくださいっていっても>>265とか>>271とか
答えと関係ないレスしか返ってこない世の中じゃ・・・。
0281デフォルトの名無しさん2007/05/27(日) 11:54:37
お前が教えてやれよw
0282デフォルトの名無しさん2007/05/27(日) 11:58:05
つまりここに分かる奴はいないわけだw
0283デフォルトの名無しさん2007/05/27(日) 12:07:00
そういうことになってもいいなw
0284デフォルトの名無しさん2007/05/27(日) 12:07:31
それ、.NETのバグだよ
0285デフォルトの名無しさん2007/05/27(日) 12:08:30
自分じゃ教えられないから他人に教えてやれよって怒ってたのかよw
0286デフォルトの名無しさん2007/05/27(日) 12:16:51
できない奴のパターン

自分では分からない質問が投稿されるが、かっこよく答えてみたいと思う。
↓
「自分で調べろ」と一人前ぶっていってみる。
↓
「調べてもわからない」から教えてくださいと返ってきていい気になる。
↓
「サンプルと比べろ」とさもわかったかのように言って見るも、自分も必死に探す。
↓
自分が挫折しかけたので「わからないなら諦めろ」と煽ってみる。
↓
サンプルを張られ、みてみるがサンプルすら理解できない。
↓
「理解してないなら意味がない」といって見る。
↓
まわりに「おまえ本当はわかってないだろ」と突っ込まれる ← いまここ
0287デフォルトの名無しさん2007/05/27(日) 12:48:38
>>262のコードはなんら間違ってないが、描画は時間のかかる処理ってことを忘れてないか。
おまえさんのコードだとBackgroundWorkerは黙々と処理をこなしていくが、backgroundWorker1_ProgressChangedの
処理が追いつかずに、処理待ち状態(キューにスタックされた状態)になる。
つまり、スタックされた描画処理のほうにマシンパワーをとられてしまいスレッドの意味がなくなってしまうというわけ。
その描画に使われる時間が>>262のマシンだと20ミリ秒なんだろう。
0288デフォルトの名無しさん2007/05/27(日) 12:53:51
>>278は見当違いもいいところだなw ワロスw
スレッドの概念を学んでから氏んだほうがいいw
0289デフォルトの名無しさん2007/05/27(日) 12:54:13
>>287
適当なこと言うなよ。
>>262のコードは、単にシンタックスレベルでの誤りがないというだけ。
意味論的には、こんなコードならBackgroundWorker(というかスレッド)を使う意味がない。

要はスレッドが何か分かっていない、ということだ。
スレッドが何か分からずにどうしてそれを使おうと思うのかは不可解な点だが。
0290デフォルトの名無しさん2007/05/27(日) 12:55:22
>>289
おまえBackgroundWorkerわかってる?
0291デフォルトの名無しさん2007/05/27(日) 12:59:23
>>289
>>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
278 289 涙目

そして必死の一言↓
0293デフォルトの名無しさん2007/05/27(日) 13:01:26
ど、ど、どうていちゃうわ!
0294デフォルトの名無しさん2007/05/27(日) 13:02:17
ワロス
0295デフォルトの名無しさん2007/05/27(日) 13:04:07
またいつものヤツが暴れてるかよ…
0296デフォルトの名無しさん2007/05/27(日) 13:04:55
>>289
ん?
では具体的にどこが間違っているか指摘してみ。
できないなら黙れ。
0297デフォルトの名無しさん2007/05/27(日) 13:08:26
ねぇ、なんでこの時期に湧く訳?
0298デフォルトの名無しさん2007/05/27(日) 13:09:45
抽象論ではぐらかそうとしてるな。久々にワロタ。
0299デフォルトの名無しさん2007/05/27(日) 13:09:53
注:私の有意義な発言に対し、自分の理解不足を棚に上げ煽り、1行レス
で返す方が多いようですが、そのような方はスレの皆様を混乱させるだけでなく
スレの雰囲気を崩しかねないのでお黙り下さい。
また質問者は回答者に知識を披露する場を与える貴重な存在なので、
質問者を見下した回答、あまりにも儀礼を欠いた回答も厳重に禁止いたします。
忙しい中、少ない時間の合間を縫って質問しに来てるわけですので、
その辺ご承知下さい。なお、当方が質問に対して有意義な答えであると
判断した方には評価いたしますので各自よく調べ、よく考え正確な回答をするように。
0300デフォルトの名無しさん2007/05/27(日) 13:11:22
お
っ
け
ー
ま
か
せ
な
0301デフォルトの名無しさん2007/05/27(日) 13:12:30
>>289まだー?
0302デフォルトの名無しさん2007/05/27(日) 13:15:11
これはひどいwwwww
0303デフォルトの名無しさん2007/05/27(日) 13:16:20
方法論的にはProgressChangedの処理が終わるまで
MonitorとかでDoWorkを待機させればいいわけ?
0304デフォルトの名無しさん2007/05/27(日) 13:18:18
>>296
>>289で必要十分だと思うが敢えて言葉を替えるなら、
これでは実質的に(バックグラウンドではなく)UIスレッドで処理を実行しているのと
何も変わらない、ということ。

まあ、>>289に納得できないのなら言葉を替えようが同じことだろうけど
0305デフォルトの名無しさん2007/05/27(日) 13:21:27
>>304
もしかして本気でBackgroundWorkerわかってない?
0306デフォルトの名無しさん2007/05/27(日) 13:22:10
結局、DoWorkで時間がかかる処理をやってないから意味がない
って言ってるだけだろ
なんでわざわざややこしくする
0307デフォルトの名無しさん2007/05/27(日) 13:22:13
念のためもう少し補足すると>>262のコードなら、
UIスレッドでビジーループまわしてApplication.DoEventsしてるのと等価になってしまうね。
0308デフォルトの名無しさん2007/05/27(日) 13:27:15
>>306
言いたいことは分かるけど、それが問題の本質じゃないだろう。
より正確に、頻繁にControl.BeginInvokeしてるのと同じだから問題だ、
と言いたいのなら同意するよ。
0309デフォルトの名無しさん2007/05/27(日) 13:36:17
話はわかったがそれは>>287が言ってることだろ
0310デフォルトの名無しさん2007/05/27(日) 13:44:04
で、どうすれば・・?
0311デフォルトの名無しさん2007/05/27(日) 13:45:34
このスレでは「どうすればいい」という具体的な答えは書き込めません。
全員知ったかなのでえらそーなことを回りくどく書くだけです。
0312デフォルトの名無しさん2007/05/27(日) 13:48:33
289で必要十分だなんて、そっちのほうが心配になりました。
0313デフォルトの名無しさん2007/05/27(日) 13:52:41
で、>>287の言うとおりでどうにもならないの?
0314デフォルトの名無しさん2007/05/27(日) 13:54:12
どうにもならないとは言ってない
0315デフォルトの名無しさん2007/05/27(日) 13:57:01
>>263の //System.Threading.Thread.Sleep(20);
のタイミングで「時間のかかる処理」を実行すればいいだけ
>>287が,0から23877までの数字を表示することを「時間のかかる処理」と
認識してるならそれは間違い。
0316デフォルトの名無しさん2007/05/27(日) 13:57:05
で、どうすれば・・?
0317デフォルトの名無しさん2007/05/27(日) 13:58:30
>>315
わかってないね、あんたもw

そこで「時間のかかる処理」を実行しても、Sleepをいれなきゃ描画されないの。
ためしにやってみ。
0318デフォルトの名無しさん2007/05/27(日) 14:01:15
で、どうすれば・・・?
0319デフォルトの名無しさん2007/05/27(日) 14:02:17
Sleepいれるか、頻繁に描画するのやめればいい
0320デフォルトの名無しさん2007/05/27(日) 14:08:33
>>263の23877が「兄さんバナナ」というのが問題。
0321デフォルトの名無しさん2007/05/27(日) 14:15:10
アッー!
0322デフォルトの名無しさん2007/05/27(日) 16:07:19
もうスルーしてくれよ。
ウザいよあいつ。
0323デフォルトの名無しさん2007/05/27(日) 16:58:56
>>215です。

>>217
SharpDevelop1.1と.NET Framework1.1を入れて
Context Menu StripじゃなくContext Menuで同じ事をすると
タスクバーは表示されませんでした。

どうやらContext Menu Stripのバグのようです。
0324デフォルトの名無しさん2007/05/27(日) 18:01:17
ReportProgressって同期?非同期?どっちだっけ?
普通に考えたら非同期だとは思うけど

もし普通に思いつくような実装なら、ペンディングされた分は省かれるだろうしな…
まあとりあえずレポート上げるのはせめて100ms程度は間隔空くぐらいのが無難だろ。

もし同期だったりペンディングされてる分も省かれないんなら、(そんな実装ではないとは思うが)
レポート間隔をきちんと空けないと、スレッドの意味なしになったり処理と描画が破綻しかねない。
0325デフォルトの名無しさん2007/05/27(日) 18:05:20
あぁもちろん例え非同期の実装だとしてもある程度空けるべきなのは同じだが
0326デフォルトの名無しさん2007/05/27(日) 19:34:27
>>287で答えで正解だろ。
ReportProgressは非同期だろうが、描画であぼんしてるとおもわれ。
0327デフォルトの名無しさん2007/05/27(日) 20:49:47
ふらっと向きの質問かもしれないけど
ReportProgress内でUIスレッドで処理されるのものが多い場合、
処理しきれないメッセージは破棄されるの?
Application.DoEventsするとスタックオーバーフローしたりするじゃないですか
0328デフォルトの名無しさん2007/05/27(日) 20:55:14
ReportProgressはどうも単にスレッドの切り替えでProgressChangedを発火するだけっぽいから
どんどんたまっていってしまいそうだな。
単純に描画がまったく間に合わなくなる。

非同期ではあるがペンディングになった分は省かれたりしない。
0329デフォルトの名無しさん2007/05/27(日) 20:57:19
あぼんとかなんとか、大まかというかガサツな思考だなそれ。
だから違うって何度も言ってるだろうに

バックグラウンドの処理が所期のパフォーマンスを上げない、ということを
問題にしているのであればそういう回答でもいいかもしれないが、
はて、262はそう言ってるのかえ?w

262の「問題」とは、別スレッドでやってるバックグラウンドの処理にSleepをかまさないと
UIのレスポンスが停止する、というものでしょうが。
0330デフォルトの名無しさん2007/05/27(日) 20:57:21
ReportPrrogressは十分に間隔をあけて呼べ。
ProgressChangedでの描画ではあまり重いことはするな。
以上。
0331デフォルトの名無しさん2007/05/27(日) 21:00:25
>>329何いってんのかよくわからんが、
描画処理がたまって操作を受けつけるまで時間がかかってしまうってこったろ。
つまりキャンセルとかもすぐにはできない、あたりまえ。

ってか>>262だとあっという間に全部ReportProgressを実行しきって処理も完了してしまう。
そのあと、一生懸命たまった分の描画を行っている。

キャンセルする暇なんかねーよ、当たり前。
0332デフォルトの名無しさん2007/05/27(日) 21:02:40
あ、何万回もやってんだっけか、それならあっという間には終わらんかもしれんが、
まあ起こってることはおんなじようなもんだ。
0333デフォルトの名無しさん2007/05/27(日) 21:03:58
>>327
その場合はたぶんスレッドプールにキューされるまで待たされるんだろうね。
確認したわけじゃないが。
0334デフォルトの名無しさん2007/05/27(日) 21:04:25
ProgressChangedの処理のためのメッセージがあっという間に大量にたまってしまうから、
キャンセルなんて押してもずっと順番待ちの後ろになってしまうってことね。
すでに全部ReportProgressし終わってたら、もうキャンセルもできないわな。
0335デフォルトの名無しさん2007/05/27(日) 21:06:39
>>329
おまえもう出てこなくていいよw
頭悪すぎる
0336デフォルトの名無しさん2007/05/27(日) 21:08:24
ってか>>329誰に言ってんだ?ってかどれに言ってんだ?
0337デフォルトの名無しさん2007/05/27(日) 21:08:54
クロールとかスキャンとかしてる最中に
そのファイルパスを表示したいじゃないですか。
どうせどんな動体視力の持ち主でも見えないけど。

label1.Text = "C:\hoge\hoge";
とか
lable2.Text = iCounter.ToString();
とかやるじゃないですか。

プログレスバーも表示したいじゃないですか。
progressBar11.Increment();

非力なマシンだったら破綻するわけですか?
0338デフォルトの名無しさん2007/05/27(日) 21:12:37
>>336
329の直近で「あぼん」というワードが出てくるスレ。
というか、本気で聞いているなら・・・いや何でもないw
0339デフォルトの名無しさん2007/05/27(日) 21:12:49
非力じゃなくても破綻する(間隔が短すぎたらの話)。
直接描画したら多少はいけるかもね。

通常の操作で描画させる限り、ある程度間隔をあけないと破綻する。
0340デフォルトの名無しさん2007/05/27(日) 21:13:37
>>338あん見落としてたのん
0341デフォルトの名無しさん2007/05/27(日) 21:17:43
>>337
ああいうのはそもそも「ハングアップせずにちゃんと動いてるよ」という
ポーズ以上のものではないんだよ。
だから当然(普通は)馬鹿正直に全部表示したりしないよ。

俺はそもそもBackgroundWorkerなんて初心者に中途半端に媚びた「いらない子」
だと思ってるんで余計にそうおもうんだけど、こういう処理はスレッドをクラスで
ラップしてUIスレッド側からタイマイベントか何かでプロパティ経由で
状態をアクセスするようにした方がむしろ直観的なように思う。
0342デフォルトの名無しさん2007/05/27(日) 21:20:19
それをちゃんとできないのがいっぱいいるから、
簡単にできるようにBackgroundWorkerつけたんだろ。

簡単という意味では悪いもんではないと思うが。
まあそれでも使いこなせないのはいっぱいいそうだな。

下手にラップしてるおかげで、余計になにも考えずに使って
破綻する原因にはなってるかもしれん

0343デフォルトの名無しさん2007/05/27(日) 21:33:32
>>323
タスクバーが表示される、ってのは意味不明でしかない。
タスクバーはデフォルトでは常に表示されてるものじゃないのか。
0344デフォルトの名無しさん2007/05/27(日) 21:33:44
なにこの気持ち悪いレスの嵐w

初心者が質問したら「プログラミングやめろ」とか次元の違う答えを返し、
そもそも質問の本質とは異なるところで「これは重い処理ではない」と揚げ足取りをし、
原因がわかったところで「だからこういう機能はいらないのに」とか意味不明なことを語りだし
さらには解決したことをねちねちと「そこが問題ではない」と穿り返す。
0345デフォルトの名無しさん2007/05/27(日) 21:40:21
>>343
ContextMenuStripってのは普通のウィンドウだから
なんかの拍子でたまにタスクバーにボタンが表示されたりするんだよ。
特殊なことしないとそうならないけど。
0346デフォルトの名無しさん2007/05/27(日) 21:41:16
周りの空気読めてないプログラマっておおいからな。
むしろ、読めるほうが少ないw
0347デフォルトの名無しさん2007/05/27(日) 21:43:40
草生やしてるのは同一人物?
0348デフォルトの名無しさん2007/05/27(日) 21:45:45
>>343
まぁ>>215を試してからレスしろって事だな。
解決策は知らんけど。w
0349デフォルトの名無しさん2007/05/27(日) 21:47:32
試しても異常な点は見られなかったわけだが。
0350デフォルトの名無しさん2007/05/27(日) 21:48:24
異常な点は見つからなかったとかえらそうだな。
眼科いけよ。
0351デフォルトの名無しさん2007/05/27(日) 21:48:26
今夜はこのスレですか。いつもお疲れ様です
0352デフォルトの名無しさん2007/05/27(日) 21:49:18
ここの平均年齢って何歳なんだろうな
0353デフォルトの名無しさん2007/05/27(日) 21:52:15
小学三年生です。
0354デフォルトの名無しさん2007/05/27(日) 21:57:31
単純に平均とっても意味なさそう
0355デフォルトの名無しさん2007/05/27(日) 22:35:27
それでは分散もお願いします><
0356デフォルトの名無しさん2007/05/27(日) 22:49:55
いや、ここは個人の偏差値を言ってもらおうか
0357デフォルトの名無しさん2007/05/27(日) 23:03:39
じゃあ俺65くらいがいい
0358デフォルトの名無しさん2007/05/27(日) 23:06:04
俺は34で
0359デフォルトの名無しさん2007/05/28(月) 16:17:20
けんかするのやめろよ。
頼むからこういうスレくらいはマターリ進行しようぜ。
0360デフォルトの名無しさん2007/05/28(月) 17:30:59
質問スレは荒れる
0361デフォルトの名無しさん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:42
はいはいまんこまんこ
0364デフォルトの名無しさん2007/05/28(月) 19:09:18
荒れる荒れないの話題でスレを荒らさないでください><
0365デフォルトの名無しさん2007/05/28(月) 19:33:16
何かあるとすぐプログラマ止めろとか素っ頓狂なことを抜かす
約一名の人がいなくなれば荒れないと思います><;
0366デフォルトの名無しさん2007/05/28(月) 20:49:48
C# Java Virtual Machine
http://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:41
質問者が高飛車で逆切れしないかぎり
0369デフォルトの名無しさん2007/05/28(月) 22:35:20
ツールチップをプログラマ側のタイミングで表示するにはどうすればいいの?
0370デフォルトの名無しさん2007/05/28(月) 22:43:52
プログラマ側のタイミング、とは?
0371デフォルトの名無しさん2007/05/28(月) 22:49:17
あっちこっちのスレで意味不明の質問ばかりしてる奴って同一人物?
0372デフォルトの名無しさん2007/05/28(月) 22:58:33
少なくとも同一レベルの頭脳を持つ人物
0373デフォルトの名無しさん2007/05/28(月) 23:05:33
ひょっとして369 = 371?
だとしたらせっかく善意で聞いてるのに煽りか何かだと思ったのかな?w

>>369のような文章で自分の疑問が伝わると本気で思っているのなら
(まあ思っているから、かくのような粗末な文章を書くのだろうが)
ちょっと知的レベルに問題あるぞ。
0374デフォルトの名無しさん2007/05/28(月) 23:12:34
どいつもこいつも意味不明。
誰一人、読む人間のことを考えて文章を書いちゃいない。

俺もだけど。
0375デフォルトの名無しさん2007/05/28(月) 23:35:39
>>369
ToolTipのメンバをMSDNでよく眺めてみな。特にメソッド
0376デフォルトの名無しさん2007/05/29(火) 00:04:25
ツールチップのような極めて機能が限定されているもので
タイミングといえば「表示」しかないような気がするのだが…
オレがエスパーなのか?
0377デフォルトの名無しさん2007/05/29(火) 00:34:06
質問者に意味不明なところを確認しても答えない質問者はスルーしたほうがいい。
0378デフォルトの名無しさん2007/05/29(火) 01:27:25
>>369程度の意味が汲めないようなら外に出るのやめた方が良いと思うよ。
0379デフォルトの名無しさん2007/05/29(火) 02:43:21
Showメソッドのオーバーロードを調べろ

の一行で済むのにね
0380デフォルトの名無しさん2007/05/29(火) 03:05:36
ListViewで簡易エクスプローラを作成したいんですが、ファイルの種類の名称は
どのように取得すればよいか教えてください><
「テキストファイル」とか「ファイルフォルダ」とか
0381デフォルトの名無しさん2007/05/29(火) 03:18:39
Shell32をCOMから叩けばいいと思うよ。

http://www.atmarkit.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
0382デフォルトの名無しさん2007/05/29(火) 08:12:00
>>379
ツーツチップが「何か」を知っていて、かつ実際に使ったことがあれば、
そんなに単純には考えないはずだと俺は思うけどね。
0383デフォルトの名無しさん2007/05/29(火) 10:43:37
>>382
でたw 俺様ルール。
プログラマによくいるんだよね。俺の常識=世間の常識とかおもってる馬鹿。
それにおまえがどう思ってるとかいちいち書かずに、渋らずに質問に答えりゃいいのに。

質問したやつが何をもとめているかを考えてみろよ。
おまえが思ってることを知りたかったら「>>382の思いを語れ」ってレスつくだろw
>>344を100回読んで半年ROMれや
0384デフォルトの名無しさん2007/05/29(火) 10:49:09
バカさらしあげ
0385デフォルトの名無しさん2007/05/29(火) 10:50:49
↑馬鹿が自分で「さらしあげ」^^

↓悔しさの一言
0386デフォルトの名無しさん2007/05/29(火) 11:57:16
C#でマンコを開発したいのですがどうすればいいですか?
0387デフォルトの名無しさん2007/05/29(火) 14:43:32
そんな事より俺のアナルにコショウ瓶をぶち込んでくれないか?
0388デフォルトの名無しさん2007/05/29(火) 16:35:49
>>386
Manko
{
System.Console.Write("マンコ完成");
}
0389デフォルトの名無しさん2007/05/29(火) 17:48:26
>>388
コンパイル通らないんじゃね?
0390デフォルトの名無しさん2007/05/29(火) 18:03:10
public class Manko
{
0391デフォルトの名無しさん2007/05/29(火) 18:16:40
ゆとり世代のバカっぷりは半端じゃないな。
0392デフォルトの名無しさん2007/05/29(火) 18:33:24
ゆとり世代とか言ってるが、ゆとり教育っていうのは
(本格的に始まったのは中曽根内閣以降だが)70年代から始まってることを
知らないお前さんも十分馬鹿だろうw

まあまず間違いなく、その意味ではお前さんだって「ゆとり世代」なんだよw
知らぬは本人ばかりなり。

いや勘違いしてもらっては困るが、383以降の愚劣なレスを書いてる人間を
肯定しているわけではないからね。
0393デフォルトの名無しさん2007/05/29(火) 19:00:13
ゆとり教育=ゆとり世代ではないですよ。
0394デフォルトの名無しさん2007/05/29(火) 19:03:16
そりゃあそうだろう。
要するに「ゆとり世代」みたいな言葉を好んで使う人間のメンタルというのは
「自分以外はみんな馬鹿」だからな。

いや、厳密にはちょっと違う。
こうい人間のメンタルをより厳密に言えば、『「自分以外はみんな馬鹿」だと思いたい』だな
0395デフォルトの名無しさん2007/05/29(火) 19:07:12
解釈が特殊すぎて着いていけません。
0396デフォルトの名無しさん2007/05/29(火) 19:11:10
>「自分以外はみんな馬鹿」
そうじゃなくて「お前そんな事も知らないのかよ」だよ。
0397デフォルトの名無しさん2007/05/29(火) 20:12:19
>>392 = >>394
でたw 俺様ルール。
プログラマによくいるんだよね。俺の常識=世間の常識とかおもってる馬鹿。
それにおまえがどう思ってるとかいちいち書かずに、渋らずに質問に答えりゃいいのに。

質問したやつが何をもとめているかを考えてみろよ。
おまえが思ってることを知りたかったら「>>394の思いを語れ」ってレスつくだろw
>>344を100回読んで半年ROMれや
0398デフォルトの名無しさん2007/05/29(火) 20:23:22
意味がわからない。
0399デフォルトの名無しさん2007/05/29(火) 20:28:25
というか、>>397は寂しい奴が構ってほしさネタでやってるとかではなく
どうも本格的に頭おかしい気がする。

なるほど、俺様ルールが悪いんだと仮定しよう。(俺は認めないがね)
しかし、「俺様ルール」というのはまさに397の書いているようなことなはずだが、
そんな簡単な理屈も分からないのだろうか。

というか、質問した奴って誰なんだろう?w
0400デフォルトの名無しさん2007/05/29(火) 20:29:48
この話どーでもよくね?
0401デフォルトの名無しさん2007/05/29(火) 20:30:32
うん。
0402デフォルトの名無しさん2007/05/29(火) 20:34:20
せめてC#語でやろうぜ
0403デフォルトの名無しさん2007/05/29(火) 21:46:49
まーた騒いでるのかw
0404デフォルトの名無しさん2007/05/29(火) 22:03:36
>>386
一瞬、コンマを空目しちゃったんだろうと勘違いして
随分、2ちゃんに毒されちまったなぁとか思っちまったじゃねぇか。
0405デフォルトの名無しさん2007/05/29(火) 22:11:16
>>387-390をみてふと思ったんだが
manko.Insert(chinko);と
chinko.Insert(manko);のどっちが自然?
0406デフォルトの名無しさん2007/05/29(火) 22:13:41
前者
0407デフォルトの名無しさん2007/05/29(火) 22:21:07
前者なら コンテナ.Insert(要素); と同じ形になる。
0408デフォルトの名無しさん2007/05/29(火) 22:54:30
>>405
両方とも不自然。
He.Insert(凸,凹)
0409デフォルトの名無しさん2007/05/29(火) 23:19:03
>>408
それじゃHeに属さない凸を指定できてしまうだろw
0410デフォルトの名無しさん2007/05/29(火) 23:22:42
>>399
おまえあたまおかしくね?
0411デフォルトの名無しさん2007/05/29(火) 23:22:49
God.Connect(凸,凹);
0412デフォルトの名無しさん2007/05/29(火) 23:23:39
>>410
しーっ、かまっちゃいけません
0413デフォルトの名無しさん2007/05/29(火) 23:24:14
>>409
Heに属してなくてもいいじゃないか。
0414デフォルトの名無しさん2007/05/29(火) 23:25:18
>>409
またイチャモンつける
氏ねよ
0415デフォルトの名無しさん2007/05/29(火) 23:27:09
やだよ
0416デフォルトの名無しさん2007/05/29(火) 23:27:32
>>415
まじきもーい
0417デフォルトの名無しさん2007/05/29(火) 23:28:41
それは偏見だ
0418デフォルトの名無しさん2007/05/29(火) 23:28:51
>>415
まじくさーい
0419デフォルトの名無しさん2007/05/29(火) 23:29:55
>>416
まじやばーい
0420デフォルトの名無しさん2007/05/29(火) 23:31:00
とりあえずおまえは消えろ、な。
空気よめてなさすぎなんだよw
友達いねーだろ? いい加減気付けよ ↓
0421デフォルトの名無しさん2007/05/29(火) 23:35:25
知ってるよん
0422デフォルトの名無しさん2007/05/29(火) 23:36:33
やっべ!こいつまじ臭い↑
なにこの体臭。おまえ風呂はいってんのか?
2chで必死になってる暇があったら日光浴して殺菌しろよ。
脳みそだけじゃなく全体的に腐ってんぞ
0423デフォルトの名無しさん2007/05/29(火) 23:44:13
>>421,422
いい加減やめたら。
ロムってたけどうざくなってきた。

取り敢えず どれが自分のレスか書いたら?
その中で自分の代表作のレスあげてほしいな。
0424デフォルトの名無しさん2007/05/29(火) 23:45:46
>>423
自作自演ってたのしい?
0425デフォルトの名無しさん2007/05/29(火) 23:48:42
もちろん
0426デフォルトの名無しさん2007/05/30(水) 01:13:11
現在Visual Studio 2005 C#にてプログラムを作成しているのですが、スレッドからのフォームの作成は不可能なのでしょうか?

下記のような感じでプログラムを作ったのですが、子フォームの枠が出たままフリーズしてしまいます。どうしてもスレッドからフォームを新規作成したいのですが、何かやり口はあるのでしょうか?

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:16
具体的には、チャットのプログラムを作成してまして、DoWorkのメソッド内でメッセージを常時待ち受けて、会話開始のメッセージがきたらチャットウィンドウを新規作成するようにしたいのです・・
0429デフォルトの名無しさん2007/05/30(水) 01:37:26
ListBoxに表示している項目の行区切りに
線を描画したいです。

Paintイベント無いみたいだし、なんか方法ない?
0430デフォルトの名無しさん2007/05/30(水) 01:37:32
if(.....)のスコープ抜けたらfcへの参照が消えるけど?

たしかに必然性が感じられない
そのフォームの扱いに困るし
メインスレッドに通知してそっちで作った方がいいっしょ

LimeChatとやらのモドキを作ってる方ですか?
0431デフォルトの名無しさん2007/05/30(水) 01:38:17
>>429
DrawItemイベント
0432デフォルトの名無しさん2007/05/30(水) 01:58:23
>>428
チャットウィンドウの作成をメインスレッドに委託すれば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
TabControl.ShowToolTips = true;
とした場合、ツールチップの表示時間とかは細かく設定できないんでしょうか?
0434デフォルトの名無しさん2007/05/30(水) 07:05:13
>>432
ありがとうございます。ちょっと試してみます。
0435デフォルトの名無しさん2007/05/30(水) 10:52:33
WeakReference(object, true) がどういう動作をするのか教えてください。
MSDNにそれらしい記述はあるのですが、何を書いてあるのかさっぱりです。
>WeakReference オブジェクトは、終了後にターゲットへの参照を維持するかどうか、
>つまり、弱い参照によりターゲットの再生を追跡するかどうかを指定できます。
>再生を追跡しない弱い参照は、"短い弱い参照" と呼ばれます。
>再生を追跡する弱い参照は、"長い弱い参照" と呼ばれます。
0436デフォルトの名無しさん2007/05/30(水) 10:55:25
分からないなら使わないほうがいい
それに使う場面なんて通常はないし
0437デフォルトの名無しさん2007/05/30(水) 13:19:15
あるクラスを指しているTypeがあるとしてそのクラスがあるInterfaceを継承しているか調べたいんですが、エレガントな方法ありますか?
それらしいメソッド見つからなくてIsSubClassOf試してみたけど撃沈・・・orz
0438デフォルトの名無しさん2007/05/30(水) 13:58:47
ファイナライザで復活したオブジェクトをさらに追跡すりかどうか
普通は使う必要はない
0439デフォルトの名無しさん2007/05/30(水) 14:10:40
>>437
オブジェクトじゃなくTypeとinterfaceを調べるなら、スマートな方法はなさそうです。
Type#GetInterfaces使うしかないっかな。

>>438
普通じゃないケースというのは具体的にどういう時使うのだろう?
0440デフォルトの名無しさん2007/05/30(水) 14:32:11
>>439
.NETじゃなくてJavaの話だけど、
GC有りの言語で特殊な参照が役に立つ例。
ttp://blogs.wankuma.com/kacchan6/archive/2007/04/17/71882.aspx
0441デフォルトの名無しさん2007/05/30(水) 14:42:07
>>440
話題になってるのは単純な弱参照のことじゃなくて長い弱参照。
GCの対象になってファイナライザが動いて、それでいてメモリがまだ回収されてないときに
強参照が回復するとオブジェクトが復活するってことだよな。
使い道が不明だなこりゃ。
0442デフォルトの名無しさん2007/05/30(水) 18:09:32
>>437
typeof(ISample).IsAssignableFrom(type)は?
0443デフォルトの名無しさん2007/05/30(水) 18:16:59
>>442 m9(゚д゚)っ ソレダッ!!
0444デフォルトの名無しさん2007/05/30(水) 19:13:57
MAKEINTRESOURCEマクロをC#で使用するにはどうすればいいのでしょうか?
P/Invokeに使用する構造体のLPTStrなフィールドに数値を入れるのに必要です。
とりあえずはそのフィールドをintにすれば動くのですが。
0445デフォルトの名無しさん2007/05/30(水) 19:28:25
MAKEINTRESOURCEって単にcharポインタへのキャストでないの?
0446デフォルトの名無しさん2007/05/30(水) 19:29:41
wcharの場合もあるのか・・・
0447デフォルトの名無しさん2007/05/30(水) 20:07:35
>P/Invokeに使用する構造体P/Invokeに使用する構造体
どれのこと?

c#でIDなんか使わないと思うが?
04484442007/05/30(水) 20:31:43
CMINVOKECOMMANDINFOです。
IContextMenu.QueryContextMenuで得たメニューをTrackPopupMenuで表示して
返ってきたコマンドIDをCMINVOKECOMMANDINFO.Verbに入れて
IContextMenu.InvokeCommandするのに必要です。

Verbフィールドは
[MarshalAs(UnmanagedType.LPTStr)] public string Verb;
今のところこれをintにしている…。
0449デフォルトの名無しさん2007/05/30(水) 21:31:01
high-order word が0なら数字と解釈されるんでそ>MAKEINTRESOURCE
コマンドID入れるならIntPtrでOKじゃない?

昔書いたC#のソースだと
TrackPopupMenuの戻り値から1引いて(indexになおす?)
0xFFFFとANDとってた
0450デフォルトの名無しさん2007/05/30(水) 21:33:48
#define MAKEINTRESOURCE(i) (LPTSTR) ((DWORD) ((WORD) (i)))

これだけだから上手いことやったら?
04514442007/05/30(水) 21:42:49
public static string MakeIntResource(int n){
    return Encoding.Default.GetString((BitConverter.GetBytes(n)));
}

これでいけそうな気がしたが上手く動かないな…。
変換後のバイト列は確かに同じなんだけど…。
マーシャリングが上手くいってないのか?
04524442007/05/30(水) 21:44:25
ああ、リロードすべきだった。
もうちょっと悩んでみる。
IntPtrでも用は足りるんだけど、スマートじゃないかなと思った…。
0453デフォルトの名無しさん2007/05/30(水) 21:45:22
基本的な勘違いがありますよ…

文字とポインタ。
0454デフォルトの名無しさん2007/05/30(水) 21:54:10
>IntPtrでも用は足りるんだけど、スマートじゃない

何でそう思うの?
04554442007/05/30(水) 21:59:36
TrackPopupMenuの返り値から-1するのは
QueryPopupMenuのidCmdFirst引数の分を引くからだと思う。

>>453
ああ、そうか、おぼろげながら分かってきた(ような)。
変換した文字列へのポインタを渡しちゃってるわけか。
04564442007/05/30(水) 22:11:34
他の構造体だとLPTStrが出てきたら脊椎反射的に
MarshalAs(ryしてたから変に感じたのかもしれない…。
この場合マーシャリングするとアレだと分かったのでIntPtrでいきます。
0457デフォルトの名無しさん2007/05/30(水) 22:56:10
>>437
type.FindTypes(Module.FilterTypeName, "InterfaceName")
もしくは
type.FindTypes(object.ReferenceEquals, interfaceType);
てな感じとか
0458デフォルトの名無しさん2007/05/30(水) 22:57:46
IntPtrなのはポインタだからというよりLPだから
intだとアウト
0459デフォルトの名無しさん2007/05/30(水) 22:59:43
っとと
>type.FindTypes(object.ReferenceEquals, interfaceType);
type.FindTypes(object.Equals, interfaceType);
の方が普通だな。
0460デフォルトの名無しさん2007/05/30(水) 23:03:58
じゃねー
FindTypesじゃなくてFindInterfacesの間違い。
0461デフォルトの名無しさん2007/05/30(水) 23:04:07
>>458
試したのか?

多分、構造体の定義変えれば全く問題ないはず。
0462デフォルトの名無しさん2007/05/30(水) 23:08:50
static bool IsImplemented(Type @interface, Type @class) {
return Array.IndexOf(@class.GetInterfaces(), @interface) >= 0;
}
0463デフォルトの名無しさん2007/05/30(水) 23:20:13
struct fooのstatic foo operator+(foo,foo)を定義して、
foo 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
>>463
必要な情報が抜けすぎです。
取り敢えずfoobar()ってなに?
0465デフォルトの名無しさん2007/05/30(水) 23:29:12
foobarはなんでも良い処理。
VSのデバッガで追うと、x=x+y;の次の行にいった時点でxが元に戻る。
0466デフォルトの名無しさん2007/05/30(水) 23:31:59
>>463

答え以前に structが何か理解していないな。
参照型じゃないぞ。
0467デフォルトの名無しさん2007/05/30(水) 23:33:13
それ言ってることがおかしいぞ。
x=x+y;
が実行された時点でデバッガは次の行にいってる。
この時点で新しいxの内容が表示される。

もうちと正確に表現してくれ。

0468デフォルトの名無しさん2007/05/30(水) 23:34:13
>>463
その質問の仕方じゃ、人様にお前さんがこさえたバグを
エスパーしろと言っているのと同じだと思う。

問題を再現可能な最小のコードを提示しようよ。
0469デフォルトの名無しさん2007/05/30(水) 23:34:35
>演算前のxも消えるはずです。

代入されるの間違いじゃないか?
0470デフォルトの名無しさん2007/05/30(水) 23:36:45
>type.FindInterfaces(object.Equals, interfaceType);
便利になったもんだ。
0471デフォルトの名無しさん2007/05/30(水) 23:49:17
>>461
64bitだとまずくね?
0472デフォルトの名無しさん2007/05/31(木) 00:02:30
まずい
0473デフォルトの名無しさん2007/05/31(木) 00:04:32
八名信夫か
0474デフォルトの名無しさん2007/05/31(木) 00:05:10
>>463
なんで構造体を既定のコンストラクタでnewしてんの?
意味分かって書いてるならいいんだけど。
0475デフォルトの名無しさん2007/05/31(木) 00:06:34
にわかっぽいね。
0476デフォルトの名無しさん2007/05/31(木) 00:14:29
コードうpれ

returnに変なもん渡してんじゃないの?
引数を内部で書き換えて終了させてるとかw
04773802007/05/31(木) 00:16:02
>>381
さんくすこ!!
0478デフォルトの名無しさん2007/05/31(木) 04:15:05
List<double> で降順ソートしたいんですが、これって比較関数を自分で作らないとダメなんですか。
C++のstd::greater<double>()みたいなのはないんでしょうか。
0479デフォルトの名無しさん2007/05/31(木) 04:32:59
list.Sort(new Comparison<double>(delegate(double x, double y){return y.CompareTo(x);}));
0480デフォルトの名無しさん2007/05/31(木) 04:39:23
>>479
ありがとうございます。助かります。
0481デフォルトの名無しさん2007/05/31(木) 10:41:37
速度が必要ないときやメンドクサイときは
Sort()→Reverse()
0482デフォルトの名無しさん2007/05/31(木) 11:44:05
>>435
class 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
>>482 の解説
ファイナライザでアンマネージドリソースを開放したがメモリは回収していない状態で、
そのメモリを再利用してオブジェクトを復活させるのに使用する。
一度ファイナライザが動くと次回のGCで即メモリが回収されてしまうので、
最初期化でGC.ReRegisterForFinalize(this)を使い今一度ファイナライザが動くように設定するのがポイント。
0485デフォルトの名無しさん2007/06/01(金) 10:42:11
GetHashCode()の実装で困っています。プロパティが持つ値すべてを
比較して一意性を持たせたいのですが、どんな手法を使うべきでしょうか?
例えば、string型でもint型でもすべてbyte[]型に変換してXORする、
といったやり方はどうでしょうか?
0486デフォルトの名無しさん2007/06/01(金) 11:35:09
>>485
オーバーライドしなくてもインスタンスごとに
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
目的はDictionary使って値等価の参照型インスタンスを高速検索
することです。だからハッシュがばらけててくれないと困ります。。
プロパティを変更したときにハッシュを再計算させて、キャッシュに
残しとけばGetHashCode()ではそれを返すだけだから速度は解決のような。
別の値でおんなじハッシュになったらどうするんでしょうか?リストで
連結して、それらをEquals()で比較?
0491デフォルトの名無しさん2007/06/01(金) 14:05:16
あるTypeがあったとしてobjectをそのTypeでキャストしたいとしたらどうしたらいいんでせう?
教えてエロイ人。
0492デフォルトの名無しさん2007/06/01(金) 14:12:23
object instance=new Type();
((Type)instance).Method();
0493デフォルトの名無しさん2007/06/01(金) 14:26:37
>>492 すまん質問がおかしかった。
ついでに事故解決しますた。

>あるタイプを表わすSystem.Type t;があったとしてobjectをそのtでキャストしたいとしたらどうしたらいいんでせう?
>教えてエロイ人。
0494デフォルトの名無しさん2007/06/01(金) 14:28:14
質問の意味はわかったがそれをどうやって事故解決したの?
0495デフォルトの名無しさん2007/06/01(金) 14:28:41
あーいらつく
0496デフォルトの名無しさん2007/06/01(金) 15:21:45
System.Convert.ChangeType
です。
けれども少なくともEnumの場合は
(EnumType)(System.Int32)0と
Convert.ChangeType(typeof(Enumtype),0)では動作が違うようです。
後者ではInvalidCastExceptionがでます。
0497デフォルトの名無しさん2007/06/01(金) 16:05:16
test
0498デフォルトの名無しさん2007/06/01(金) 16:41:04
failed.
0499デフォルトの名無しさん2007/06/01(金) 16:49:35
>>490
そういう用途の場合だと、自分はシングルトンパターンを使って
値等価のインスタンスはひとつしか作成しないようにします。
シングルトンパターンが使いにくい場合もあるかもですが…
0500デフォルトの名無しさん2007/06/01(金) 16:54:20
メンバの値変更できないじゃないか
0501デフォルトの名無しさん2007/06/01(金) 16:57:00
>>490
普通にプロパティのハッシュを求めてシフトしながらxorとればいいでしょ。
ハッシュの衝突は気にしなくてよい。
0502デフォルトの名無しさん2007/06/01(金) 16:58:29
>>499
Stringのようなオブジェクトを作りたいって話だとおもうんだが、シングルトンじゃ無理だろ。
0503デフォルトの名無しさん2007/06/01(金) 17:27:52
レミングトンなら?
0504デフォルトの名無しさん2007/06/01(金) 20:34:45
GetHashCode()についてお尋ねした者です。レス頂いた皆様有難うざいました。
>>499様 singletonてよりflyweightfactor?それもいい。参考になります^^
>>489様>>501様 かっこよいです。貴方のようなスーパーハカーになりたいお。
0505デフォルトの名無しさん2007/06/01(金) 21:18:16
ココで質問する内容じゃないと思うよ。
0506デフォルトの名無しさん2007/06/01(金) 21:21:56
?
0507デフォルトの名無しさん2007/06/01(金) 21:47:42
困ります って書く奴は幼稚に見える。
勝手に困ってろ。
0508デフォルトの名無しさん2007/06/01(金) 22:01:10
アンカーもなしにそんな大深度レスつけられてもなあ・・・
0509デフォルトの名無しさん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:15
連結リストを作ってみた
list_data.next -> .next -> .next -> [null]

これを解放するときは先頭の
 list_data = null;
を実行するだけでいいのかな?
0512デフォルトの名無しさん2007/06/02(土) 17:06:53
他の箇所から参照されていなければそのうち解放される。
0513デフォルトの名無しさん2007/06/02(土) 17:58:03
>>512
�dクス
0514デフォルトの名無しさん2007/06/02(土) 18:19:05
現実問題としては参照消すために null を代入することってまずないよな
0515デフォルトの名無しさん2007/06/02(土) 18:23:03
VB6じゃ Set obj = Nothing よくやってたけどね
0516デフォルトの名無しさん2007/06/02(土) 19:17:09
それは参照カウントを使っていたからこそ必要だったこと
0517デフォルトの名無しさん2007/06/02(土) 19:37:09
>>515
vbモジュールに参照を置いてしまうようなプログラムも少なくなかったからね。
消し忘れるぐらいならなんにでもNothingをぶち込めとかの程度の低いコーディングルールがまかり通っていた。

.NETのGCだと循環参照もスパッと消えていい感じ。
相互に参照をもってる双方向のリストも問題なく消える。
0518デフォルトの名無しさん2007/06/02(土) 21:20:16
不要なGC世代の昇格を防ぐ、とういう意味では
無駄では無くも無いような気がしないでも無いような
0519デフォルトの名無しさん2007/06/02(土) 21:24:35
世代に影響が出ることなんてほとんどないから気にしなくていい
どうせ大抵はスタックに一つ参照がとられるだけかフィールドとして親と寿命は共にするかのどっちかだ
メソッドの途中ですら使わないオブジェクトは GC 対象になるし
0520デフォルトの名無しさん2007/06/03(日) 02:39:09
GCは優秀な子
0521デフォルトの名無しさん2007/06/03(日) 03:57:43
ミッションちゃんの事だから、やっぱり「狩らなきゃ・・・狩らなきゃ・・・」みたいな脅迫観念があるんだろうか。
0522デフォルトの名無しさん2007/06/03(日) 04:20:25
???
0523デフォルトの名無しさん2007/06/03(日) 22:40:40
ADO.NETでデータベースプロバイダに依存しないデータ取得コードを作成したいと思っています。

SQLの条件を書くのに便利そうだと思って、DbParameterなどを調べて使っていたのですが
よくよく調べてみると、パラメータ化の書式が違うようです。

DbParameterなどは「データベースプロバイダに依存しないデータ取得コード」には
結局使えないということで理解はあっているでしょうか?
0524デフォルトの名無しさん2007/06/03(日) 22:59:45
「データ取得コード」がどういうものを指しているのかわからないが、
プロバイダに依存しないデータ取得メソッドレベルの話ならラップするだけじゃねーの?
0525デフォルトの名無しさん2007/06/04(月) 00:50:05
ImmとかTFSとかとにかくそこらへんのクラスはあるですか
0526デフォルトの名無しさん2007/06/04(月) 01:04:24
ない
APIでドゾ
0527デフォルトの名無しさん2007/06/04(月) 01:13:56
>>525
強いて言えばWPFに多少入ってる。
でも激しくラップされた高レベルAPIばかりだから
ネイティブAPIの代わりにはならんよ。
0528デフォルトの名無しさん2007/06/04(月) 03:12:20
sdffsdfsdfadfsdfwefdfssdfsdfawsefsdfsfsdfsdfsfsfsfsdf
0529デフォルトの名無しさん2007/06/04(月) 04:04:19
.NET遅い。なんかムカついてきた。
0530デフォルトの名無しさん2007/06/04(月) 08:51:11
>>529
遅いの君のせい
0531デフォルトの名無しさん2007/06/04(月) 10:39:19
>>530
素人は黙ってたほうがいいよ。
0532デフォルトの名無しさん2007/06/04(月) 10:41:55
負け惜しみ乙
0533デフォルトの名無しさん2007/06/04(月) 11:03:39
速いと思う奴はいないわな。
0534デフォルトの名無しさん2007/06/04(月) 11:08:21
Javaに比べたら遅いとは思わないが、C++Nativeに比べたら、明らかに遅い。
そんなことは初めから分かってることだ。
0535デフォルトの名無しさん2007/06/04(月) 11:11:11
ムカつくほど遅いというのは何なんだろう・・・
メモリが少ないのかな
0536デフォルトの名無しさん2007/06/04(月) 11:53:49
大抵アルゴリズムが悪いんだよな。そういうのは。
0537デフォルトの名無しさん2007/06/04(月) 12:01:38
昔、VBで遅いっつうから見てみたら
プロパティの値変更をループの中に入れてるのがあった
で、それが実態はプロシージャだったもんだから・・
Windowのサイズ変更とかだったかなあ、最後に一回呼べば済むようなやつね。
0538デフォルトの名無しさん2007/06/04(月) 12:45:51
>>534 遅いのはGDI+じゃまいか?
アルゴリズム的なのはそれほど遜色ないと思うが。
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:10
速いとは誰も言ってなかろう。
0543デフォルトの名無しさん2007/06/04(月) 13:49:05
DrawingとFormsは確かに遅い。
0544デフォルトの名無しさん2007/06/04(月) 13:50:33
.NETが速くもないが遅くもないっていう感性になりてーよ。
そういう奴ってなんにも不満がなくて、幸せそう。
0545デフォルトの名無しさん2007/06/04(月) 13:59:07
Java、VB6からの移行組みはそれほどでもないだろうが、
C++からの移行組みは文句のひとつもいいたくなるだろうな。
ましてや遅いのがスキルのせいにされてはな。
0546デフォルトの名無しさん2007/06/04(月) 13:59:51
プロパティとフィールドとでそんなに速度違うもの?
自動プロパティがでてきてフィールド使う機会が減りそうだから心配。
あと、自動プロパティって○○Changedに勝手にアクセスしてくれるかね?
0547デフォルトの名無しさん2007/06/04(月) 14:16:49
プロパティはJITコンパイル時にかなり最適化されるから、パフォーマンスにはほとんど差異はないはず。
自動プロパティがPropertyChangedイベントを呼んでくれるって話は聞いたことがないな。

ところで、2.0からは○○Changedイベントは非推奨になってるよ。
0548デフォルトの名無しさん2007/06/04(月) 14:22:34
VB6のプロパテーの話だろ
0549デフォルトの名無しさん2007/06/04(月) 14:23:09
もし、本当に遅いのなら、そのクリティカルな部分だけC++で書けばいいだけ
0550デフォルトの名無しさん2007/06/04(月) 14:50:36
別にC++で書かなくても、アンセーフにして書けばいいだろう。
わざわざ、DLL呼ぶのは冗長だな。
0551デフォルトの名無しさん2007/06/04(月) 14:51:18
>>547
INotifyですね。教えてくれてありがとう。
0552742007/06/04(月) 14:52:22
>>77
AutoIncrement の 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
>>541

何をやったらどういう風に遅かったのか言ってもらわんことには
議論のしようがない。
0554デフォルトの名無しさん2007/06/04(月) 15:08:25
640*480の面積をダブルバッファで塗りつぶすと
20FPSくらいしかでない
0555テスト2007/06/04(月) 15:12:17
テスト
 
$amp;
0556テスト2007/06/04(月) 15:13:20
&
0557テスト2007/06/04(月) 15:14:21
  aaa
0558デフォルトの名無しさん2007/06/04(月) 15:18:49
20FPSでは、ゲームには使えないな。
最低でも30FPSは確保できないと。
ゲームではXNA使わないと無理か。
0559デフォルトの名無しさん2007/06/04(月) 15:28:03
ラスタオペレーションろくに無いしな
0560デフォルトの名無しさん2007/06/04(月) 15:35:16
とりあえず、Formsの代わりにWPF使えれいいか。
2000に対応してないのが痛いが、業務アプリでは
WPFで十分通用するからな。
0561デフォルトの名無しさん2007/06/04(月) 16:49:05
>>560
WPFも遅いですよ(´・ω・`)
0562デフォルトの名無しさん2007/06/04(月) 17:39:51
別に初期起動が遅いのは、メモリにプログラム読み込むから仕方ない。
アプリ起動後遅いのは、クリティカルになる可能性があるが、
業務アプリ程度なら、それほど気にならない。
0563デフォルトの名無しさん2007/06/04(月) 18:53:43
60fps以上出るDirectXアプリC#で普通に作っているけど?
0564デフォルトの名無しさん2007/06/04(月) 19:01:19
なんという読解力のなさ・・・
0565デフォルトの名無しさん2007/06/04(月) 19:43:49
.Netが遅いということに対して速いPC用意するのはなしな。
昔のJava厨みたいだから。
0566デフォルトの名無しさん2007/06/04(月) 19:46:39
>>565
いや、今のJava厨も全然変わってないよ。

JavaでC++並みの実行速度を出すPGを組むスレ Part2
http://pc11.2ch.net/test/read.cgi/tech/1180877520/
0567デフォルトの名無しさん2007/06/04(月) 19:49:04
.NETが遅いんじゃなく、Formが遅いから、DirectXは高速
0568デフォルトの名無しさん2007/06/04(月) 19:52:41
裸のC#そのものは遅くないんでしょ?
0569デフォルトの名無しさん2007/06/04(月) 20:02:32
なんでFormsは遅いの?Swingと同じミスを犯したの?
0570デフォルトの名無しさん2007/06/04(月) 20:12:45
>>569
Formsが遅いのはコントロール毎にPaintを呼んでいるから。
0571デフォルトの名無しさん2007/06/04(月) 20:15:18
なんで、ってそもそもそんなに遅くも重くもないけど。。
確かにWinアプリの起動は遅いんだけど、それも2.0から少し速くなった感じがするし。
0572デフォルトの名無しさん2007/06/04(月) 20:16:35
>>570
それWindows Formに限らないから。
恥ずかしい奴だなw
0573デフォルトの名無しさん2007/06/04(月) 20:21:46
>>572
つWPF
0574デフォルトの名無しさん2007/06/04(月) 20:23:25
WPFって実質、速いPC用意するのと変わらないじゃん。
0575デフォルトの名無しさん2007/06/04(月) 20:27:54
3Dグラフィックス使えるPCじゃないと意味無いな。
0576デフォルトの名無しさん2007/06/04(月) 20:33:24
パーツショップで売っててDirect3D対応してない商品を教えてくれw
0577デフォルトの名無しさん2007/06/04(月) 20:37:14
世の中自分と同じパソヲタばかりだと思ってるなら立派な精神病だよw
チップセット内臓のVGA使ってる奴だっていっぱいいるんだけど。
そうでなくてもノートPCとかね
0578デフォルトの名無しさん2007/06/04(月) 20:42:36
それでも一応動くだろ
0579デフォルトの名無しさん2007/06/04(月) 20:43:22
企業は自宅でPC所有するわけじゃないんだ。
そんな簡単に新しいPC調達できるわけ無いだろう。
0580デフォルトの名無しさん2007/06/04(月) 20:44:03
>企業は自宅でPC所有するわけじゃないんだ

日本語でおk
0581デフォルトの名無しさん2007/06/04(月) 20:56:31
そんなことより、ListViewのDetailsでMSのいうとおりにカラムヘッダクリックでソートできるようにしたんだが、
クリックした瞬間描画がクリアされて、1秒後に結果が表示される。
移植前のWTL前はクリック直後に即表示だったんで、1秒も我慢ならんのだが、
クリックした瞬間描画がクリアにならないようにするにはどうしたらいいか教えて。
0582デフォルトの名無しさん2007/06/04(月) 20:57:39
別にWPFはそんなにスペックいらんだろ
3Dとか使わなきゃ
0583デフォルトの名無しさん2007/06/04(月) 21:03:19
そもそもGDIが遅いからDirectXが出来たのが10年以上前の話
0584デフォルトの名無しさん2007/06/04(月) 21:41:48
>>581
コードうp
うちのpen4 2.4Gじゃそんなことにならん。
件数が多いのか?
0585デフォルトの名無しさん2007/06/04(月) 21:52:37
だから「遅い」って言うやつは具体例を挙げろと何年言わせるんだ。
05865852007/06/04(月) 21:53:26
あ、>585は>>581じゃなくてゲーム厨のほうな。
0587デフォルトの名無しさん2007/06/04(月) 22:07:33
>>584
class 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
>>585
そんなムキにならんでもいいだろうに。
要するになんにか心に不安を抱えてる人間なんだと思うよ。

不安な人間というのは自分の知らない人や物を否定したがるもんなんだよ。
2chだったら極東スレだのハングルスレだの見れば実例にあふれてる。

イジーライダーって映画にも「アメリカ人は口を開けば自由というが、本当に自由な
連中を見ると嫌悪する」って台詞が出てくるな確か。
0589デフォルトの名無しさん2007/06/04(月) 22:41:55
>>587
揚げ足取りにしかなってないかも知れないけど、それってサンプル通りじゃないよね

それだとColumnClickのイベントハンドラでListViewのSort呼ばないとダメなんじゃないの?
0590デフォルトの名無しさん2007/06/04(月) 22:46:57
勝手にソート呼んでくれてるよ。
ListViewItemSorterを設定したら勝手にソートするってMSのサイトに書いてあった。
それより、知りたいのは、クリックした瞬間描画がクリアにならないようにする方法。
0591デフォルトの名無しさん2007/06/04(月) 22:49:57
だからListViewItemSorterをセットしてないでしょ。
それとも>>587はコピペミス?
0592デフォルトの名無しさん2007/06/04(月) 22:51:16
>>591
>col保持部分ちょっと省略したけど、これをListViewItemSorterに設定して、
0593デフォルトの名無しさん2007/06/04(月) 22:52:33
>>591
バカか?揚げ足とりしようとして失敗したの?
0594デフォルトの名無しさん2007/06/04(月) 22:57:45
>>592
俺が誤解してるのかも知れないけど、
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:44
とりあえず、質問者は回答者の回答を試してみれば?
0596デフォルトの名無しさん2007/06/04(月) 23:04:09
>>594
たぶんそれだった思う。
でも、Sortメソッドを全く呼んでないけど、ソートはされてるので、そう理解した。
0597デフォルトの名無しさん2007/06/04(月) 23:05:29
>>595
回答?まだ一つも回答されてないよ?
0598デフォルトの名無しさん2007/06/04(月) 23:22:24
GDI 遅い の検索結果 約 27,800 件中 1 - 100 件目 (0.11 秒)
0599デフォルトの名無しさん2007/06/04(月) 23:23:10
ttp://lamoo.s53.xrea.com/develop/gdiplus/gdiplus_blt_old.html
GDI/GDI+のビットマップ転送能力(第1稿)
0600デフォルトの名無しさん2007/06/04(月) 23:25:03
Sort()し忘れたら、勝手にSort()呼んでくれるのか。
ListViewは至れり尽くせりだな。
0601デフォルトの名無しさん2007/06/04(月) 23:31:39
必死にGDI+でDDB扱う方法探してるんだがやはり無理だったのか。
orz
0602デフォルトの名無しさん2007/06/04(月) 23:38:03
>>601
今更DDB使って高速化してもVista以降のWDDMだとにCPU処理されてDIB相当になるよ。
0603デフォルトの名無しさん2007/06/04(月) 23:43:08
>>596
やっぱり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:44
10倍遅いってw
0605デフォルトの名無しさん2007/06/05(火) 00:07:20
当たり前だ。DIBからDDBに変換してるんだから。
0606デフォルトの名無しさん2007/06/05(火) 00:13:46
CodeZineでListViewのソート周りの記事公開されてたんだな・・・
ttp://codezine.jp/a/article/aid/1333.aspx
0607デフォルトの名無しさん2007/06/05(火) 00:22:37
585 名前:デフォルトの名無しさん[sage] 投稿日:2007/06/04(月) 21:52:37
だから「遅い」って言うやつは具体例を挙げろと何年言わせるんだ。
0608デフォルトの名無しさん2007/06/05(火) 00:26:25
>>603
ありがとう。ビンゴじゃないけど、わかりました。
昇順、降順機能を追加したとき、Sortingプロパティを設定してました。
Sortingプロパティを設定してもSort()が呼ばれるみたいです。
0609デフォルトの名無しさん2007/06/05(火) 01:49:28
遅い早いネタは質はともかくもりあがるな
0610デフォルトの名無しさん2007/06/05(火) 14:15:44
せっかく苦労して作っても、「遅い。いらない(あるいは作り直せ)」と言われたら最悪だからね。
0611デフォルトの名無しさん2007/06/05(火) 14:33:40
っつーか、作ってから「遅い」って言う時点でセンスの問題としか…
0612デフォルトの名無しさん2007/06/05(火) 14:37:41
まあプロファイラでチューニングすりゃいいしな
0613デフォルトの名無しさん2007/06/05(火) 16:54:42
問題はそんな簡単ではない。
0614デフォルトの名無しさん2007/06/05(火) 17:11:41
そうだよな。センスの問題だよな。
遅いと感じないセンスの持ち主は顧客、ユーザーとしては最高だ。
悪く言えば、鈍感、のろまなんだけど。
0615デフォルトの名無しさん2007/06/05(火) 17:32:23
キミが書くプログラムは何でもかんでも遅くなるんだな
0616デフォルトの名無しさん2007/06/05(火) 17:35:25
>>614
そういう口調で話すキモイ奴が今オレの横にいる
0617デフォルトの名無しさん2007/06/05(火) 18:44:05
C++で書くと劇速なんだけど、C#で書くと劇遅なんだよ。
別に理由は分かってるよ。25年もコード書いてるから。
ただ愚痴りたかっただけ。
0618デフォルトの名無しさん2007/06/05(火) 18:46:36
>25年もコード書いてるから
それって相当な負け組みなんじゃ…
いるのか?ずっとコーダのまま、そんなやつ。
0619デフォルトの名無しさん2007/06/05(火) 18:48:11
どんなプログラムで劇遅なのか知りたいのだが?
Formsが遅いのか?それとも、ロジックの実行速度が遅いのか?
0620デフォルトの名無しさん2007/06/05(火) 18:49:42
IL 使ってるからだろ
0621デフォルトの名無しさん2007/06/05(火) 18:50:28
↑ミロ
0622デフォルトの名無しさん2007/06/05(火) 18:50:49
.Netが遅いと認めたくないのは、昔のJava厨と同じ心境なんだろうね。
ただ、Javaと同じ間違いをしなければいい。
未だにデスクトップアプリでJavaが全く普及してない事実をよく考えないとね。
0623デフォルトの名無しさん2007/06/05(火) 18:54:37
Java アプリのデザインってダサ(ry
0624デフォルトの名無しさん2007/06/05(火) 18:55:22
処理速度を比較したサイトがあったけど
0625デフォルトの名無しさん2007/06/05(火) 18:56:07
ちょっと待てよ。昔、Javaブームってあったよな。C#ブームってあったか?
0626デフォルトの名無しさん2007/06/05(火) 18:59:11
今
0627デフォルトの名無しさん2007/06/05(火) 19:00:11
>>625
MSのこれからの戦略次第でC#ブームは来る。
Javaブームは、言ってみればITブームに乗って偽装請負会社とSIの小銭稼ぎに利用されただけ。
0628デフォルトの名無しさん2007/06/05(火) 19:01:34
これから来ると思い続けて早5年・・・
0629デフォルトの名無しさん2007/06/05(火) 19:04:22
じゃあ、.Netのデスクトップアプリは普及してるか?
まさか、Javaが敬遠された理由、遅い、もっさりしているとか同じ理由で普及してないんじゃないのか?
0630デフォルトの名無しさん2007/06/05(火) 19:09:36
遅さとかより.NET FrameworkやらJREやらをインストールしなければならないというのが面倒
.NET Frameworkは、最近Windowsに標準搭載されているからその点有利になってきていると思うが
0631デフォルトの名無しさん2007/06/05(火) 19:10:04
Java もインストールしなきゃダメだぜ。最近は。
0632デフォルトの名無しさん2007/06/05(火) 19:10:43
昔はWin95も遅い、メモリ食いと言われたが今となったら軽いOSの部類。
あと10年待てばOK。
0633デフォルトの名無しさん2007/06/05(火) 19:10:47
あ、JRE って書いてあるわ。
.NET のところだけ見て反射でレスしてもうた。
0634デフォルトの名無しさん2007/06/05(火) 19:10:58
日本語読めないのですか
0635デフォルトの名無しさん2007/06/05(火) 19:12:40
自分の周りだと、元々VC++でやっていたところはどんどんC#に置き換わっていってるけど。
0636デフォルトの名無しさん2007/06/05(火) 19:13:09
デスクトップアプリはユーザがMFCを基準にして、性能を見ているから、
ランタイムを使うアプリからすると厳しいな。
初期起動でメモリにアプリを割り当てるのに時間がかかり、
Formsだと描画速度が劇遅でユーザが不満に思うのも無理がない。
0637デフォルトの名無しさん2007/06/05(火) 19:13:47
TwinTail便利だよ
0638デフォルトの名無しさん2007/06/05(火) 19:14:55
隣に比べるものがあるとダメだな。
0639デフォルトの名無しさん2007/06/05(火) 19:49:32
非同期化やらUIが固まらないことを徹底してみたらええ感じですよ
やるのも楽ですし。
0640デフォルトの名無しさん2007/06/05(火) 20:35:40
フレームワークの品揃えじゃないかな
ちょっと凝ったことしようと思えばAPIの宣言からってVBと同レベじゃん
0641デフォルトの名無しさん2007/06/05(火) 21:44:41
ちょっとラップしてやれば気になるようなことじゃないよ
0642デフォルトの名無しさん2007/06/05(火) 21:46:07
>>618
単に趣味でプログラムやってるかもしれないだろ
というかC#な時点でその可能性が高いだろ
というかそういう考えが出る618は仕事でやってたりする?
0643デフォルトの名無しさん2007/06/05(火) 21:46:18
unsafeだし
0644デフォルトの名無しさん2007/06/05(火) 21:46:45
何でも包み込もうとすると、C++みたいにごちゃごちゃになってしまう。
0645デフォルトの名無しさん2007/06/05(火) 21:47:53
P/Invokeの宣言を集めたアセンブリを標準で入れといてくれたらいいのに
0646デフォルトの名無しさん2007/06/05(火) 21:48:40
>>636
不満を感じてるのは作り手だけで実際使ってる方は思うほど気にしてない罠
0647デフォルトの名無しさん2007/06/05(火) 21:51:36
>>642
ほっとけw
不幸な奴というのはえてして不幸の原因をお門違いのものに求めるものなんだ。
防衛機制という心理的メカニズムだな。

642は不幸の原因を自分がプログラマであることに求めてしまったから、
642の中では不幸とPGが同値なんだろう
0648デフォルトの名無しさん2007/06/05(火) 22:02:26
>>645
MS自身DllImportを使いまくって.NET Frameworkのライブラリを実装してるわけだから
.NET FrameworkのライブラリのDLLの中に大量に含まれてるよ
そういうのは全部internalになってるけどw
0649デフォルトの名無しさん2007/06/05(火) 22:03:16
VB6とかのシステムがアホみたいに残ってるから
これから仕方なく.NET系VBへの以降が増えてくる。
世の中VB技術者が数だけはアホみたいに多いしな。

んで、.NET系トンでもシステムが爆産されて.NET使えねー扱いと
orz
0650デフォルトの名無しさん2007/06/05(火) 22:24:31
>>649
C#.NETだけだと、人数は少ないけど品質は最低限保証されるのができていたが、
VB.NETが参入してきて、人数が激増で品質はガタ落ちorz
0651デフォルトの名無しさん2007/06/05(火) 23:07:40
>>649
VB6の遺産をむりやり使おうとしてるプロジェクトの悲惨さは目も当てられないよな。
でかいプロジェクトだと仕方ないのかもしれないが・・・

>>650
VB.NET自体は悪くないと思う。
ただ、技術者の質がな・・・・
0652デフォルトの名無しさん2007/06/06(水) 00:24:10
あのさー、C++なんかと比べる時点でそいつがバカなだけじゃねーの?
その昔にアセンブラとC言語を速度比較してたのと同じじゃねーか。

どう考えても、今一番求められてるのは「開発コスト」だろ。
それも知らずにC#に手を出す意味がわからん。

開発コストを考える必要のない、誰も使わないフリーウェア作成が趣味のプログラマーは
最初からC++やってればいい。
0653デフォルトの名無しさん2007/06/06(水) 00:27:24
オレも会社で「.NETって遅いの?」って聞かれるけど
「速くはないが十分な速度。でも処理速度より開発効率が優先されてる」
って答えてる。

でも実際速度で困ったことはないけどな…
いったいみんな何作ってんの?
0654デフォルトの名無しさん2007/06/06(水) 00:28:56
グリッドで10万件を表示するのが遅くて困ってまつ(><)
0655デフォルトの名無しさん2007/06/06(水) 00:29:38
↑実際こんなこと言ってるバカが多いんだろなw
0656デフォルトの名無しさん2007/06/06(水) 00:33:11
何でソートして上のほうの1000件ぐらいで絞らないんだろうね。
馬鹿だらけ。

業務で使っているDBは表示部で絞ってるよ。
0657デフォルトの名無しさん2007/06/06(水) 00:33:33
10万件表示とかバカだなwwwwwww
0658デフォルトの名無しさん2007/06/06(水) 00:41:39
.NETが遅いとかいう奴に限ってExcelをなんちゃってDBに使ってたりするしな。
Excel 2007で65535行超えられるようになったらしいんだけど
絶対予想の斜め上を行く奴が出てくるぜ。
0659デフォルトの名無しさん2007/06/06(水) 00:44:34
ファイルサイズの限界が待っているなw
0660デフォルトの名無しさん2007/06/06(水) 02:29:08
.NET遅くないという奴って顧客なら大歓迎だが、開発者なら一緒に仕事したくないな。
0661デフォルトの名無しさん2007/06/06(水) 02:58:46
C++で10万件データをListViewで表示しても劇速だよ。仮想リストビューだけど。
Oracleからのデータ取得に配列アクセスできるし。
0662デフォルトの名無しさん2007/06/06(水) 03:04:39
で?
0663デフォルトの名無しさん2007/06/06(水) 04:01:32
10万件のデータに使われるメモリは、気にしなかったのか?
0664デフォルトの名無しさん2007/06/06(水) 06:05:36
なんか、新しいバージョンのc#だと、音楽が鳴らせるらしいじゃないですか?

これって、ダイレクトxのラッパーなのですか?
それともウイン32apiを使ってるのですか?
0665デフォルトの名無しさん2007/06/06(水) 07:01:52
古いバージョンのC#でも、音楽が鳴らせます。
0666デフォルトの名無しさん2007/06/06(水) 07:19:51
どうやって?
0667デフォルトの名無しさん2007/06/06(水) 07:25:42
>>666
フナムシでもお前よりは頭を使いそうな気がする。
0668デフォルトの名無しさん2007/06/06(水) 08:04:46
君は好戦的で性格の汚い奴だな。
もしかして、dllインポートとかの事を言ってるのか?
0669デフォルトの名無しさん2007/06/06(水) 08:38:23
上でダブルバッファを使えばましになるみたいなことがあったので、
Bitmapを用意し、DrawImageしたんですが、パフォーマンスがでません。
DrawImage以外でBitmapをPictureBoxに速く転送する方法ってありますか?
0670デフォルトの名無しさん2007/06/06(水) 08:53:31
ダブルバッファ=二度手間
0671デフォルトの名無しさん2007/06/06(水) 09:46:56
DrawImageって内部では何やってんのかね
BitBlt呼んだら変わるかね
0672デフォルトの名無しさん2007/06/06(水) 10:40:03
>>666
StartSound()とかStopSound()とかを使うんですよ。
0673デフォルトの名無しさん2007/06/06(水) 10:54:48
>>672
いや、俺の古いバージョンってのはもっと前のバージョンの話なんだけど、
まあ、良いです。
もともと、詰まらんことを聞いただけなので、
すんませんでした。
0674デフォルトの名無しさん2007/06/06(水) 11:39:26
>>669
BitBltの方が速い
0675デフォルトの名無しさん2007/06/06(水) 12:23:32
>>669
いやドトネトの世界でダブルバッファって言えば、
普通は君が言ってるような自前の実装じゃなくてコントロール自体のダブルバッファリングの機能を
使うことになるんじゃないの?
0676デフォルトの名無しさん2007/06/06(水) 12:35:59
struct data
{
double arary[256];
};
というC言語での構造体を、P/Invokeを用いてC#に渡したいのですが
C#で同じ構造体をつくるにあたって、double array[256]は
どう定義すればよいでしょうか?よろしくお願いします。
0677デフォルトの名無しさん2007/06/06(水) 12:42:11
MSDNライブラリ読もうよ
http://msdn2.microsoft.com/ja-jp/library/eshywdt7(VS.80).aspx
0678デフォルトの名無しさん2007/06/06(水) 13:01:30
ライブラリも読まないなんて・・・
0679デフォルトの名無しさん2007/06/06(水) 13:04:25
いままでの経験でつまみ読みでいけるだろうと思って読むが、
基本的な単語の定義が違いすぎて、混乱して、どうしよもなくて、
鬱になりそうで、ここで相談してるんじゃないの?
0680デフォルトの名無しさん2007/06/06(水) 13:33:52
BitBltで試した事はあるが
APIの呼び出しコストのせいか更に遅くなった
0681デフォルトの名無しさん2007/06/06(水) 13:34:33
すいません。少しは調べたのですが
[ MarshalAs( UnmanagedType.ValByArray, SizeConst=n )]
だと構造体のポインタが宣言できなくて。すでに鬱です。

0682デフォルトの名無しさん2007/06/06(水) 13:38:53
DDBまで手出さないとね
0683デフォルトの名無しさん2007/06/06(水) 13:41:51
遅くなるのはキャッシュを行っていないだけなんじゃないか?
APIレベルの話ではないと思うが。
0684デフォルトの名無しさん2007/06/06(水) 13:45:42
>>681
使っているのが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:42
そのままの意味だろ。
Debugモードでの最適化をオフにしてみれば?
0688デフォルトの名無しさん2007/06/06(水) 18:29:01
>>687 プロジェクトのプロパティ、ビルドタブ内のコード最適化は関連するプロジェクトですべて未チェックです。
0689デフォルトの名無しさん2007/06/06(水) 20:09:23
当方、職場のPCがスタンドアロン環境なんですが、
ヘルプ使うたびに困っています
ドトネトになってからオンラインで使うのが前提のようですが、
msdnライブラリってインストール出来る無償版ないのでしょうか?
0690デフォルトの名無しさん2007/06/06(水) 20:22:39
>>689
>>5
0691デフォルトの名無しさん2007/06/06(水) 20:26:40
http://www.microsoft.com/downloads/details.aspx?FamilyID=94596af5-cc58-45af-a14b-df627a31e783&DisplayLang=ja
06926672007/06/06(水) 20:34:52
>>668
ごめん、本当はただ誰かをフナムシって罵りたかっただけなんだ。俺の発言は忘れてくれ。
0693デフォルトの名無しさん2007/06/06(水) 20:42:21
俺はフナムシ以下だよ。フナムシのように動き(仕事)は早くないし、
フナムシのように掃除がうまいわけでもないし、
彼女いないからフナムシのように子供だってつくれない。

…アメーバ以下かもな。
0694デフォルトの名無しさん2007/06/06(水) 20:51:58
>>693
アメーバに謝れ
0695デフォルトの名無しさん2007/06/06(水) 20:56:07
ごめんなさいごめんなさいごめんなさい。
アメーバは偉大なサービスですよニコニコ
それに、以下じゃなくて正確には未満だな。
こういうズボラさがバグを生むんだよ。
ループ条件で以下と未満を間違えて
OutOfRangeExceptionって感じだな。
俺はOutOf人生Exceptionだがなw
tryも彼女をcatchする元気もない。
いつもfinally一直線だけど、深夜に
会社のCloseをし忘れるおばかさん♪
だってチンポをusingしたことないんだもの。
やっほ〜〜おちんちんしゅぽしゅぽ見てママ
0696デフォルトの名無しさん2007/06/06(水) 21:01:40
仕切りなおし。
0697デフォルトの名無しさん2007/06/06(水) 21:02:41
ハイ次の方〜
0698デフォルトの名無しさん2007/06/06(水) 21:34:22
みなさん、冷たいのな。
コールドスタンバイね。
俺の息子はホットスタンバイ。
スレ違い哀しいお。
息子といえば俺に隠し子ハケーン。
ハグはないのにバグだらけ。
虫未満の俺様には出来すぎた
ムスコでした。使えないけど、
愛おしくて潰せない。

こんなオヤジギャグを聞かされながら
毎晩殺伐と残業する人生にEndInvoke
ごめん。他スレ逝ってきます。

このカキコを覗いてる会社様
精神病認定よろしく。
0699デフォルトの名無しさん2007/06/06(水) 21:36:18
次の患者さんどうぞ〜
0700デフォルトの名無しさん2007/06/06(水) 22:04:48
いや、患者はもういいって
0701デフォルトの名無しさん2007/06/06(水) 22:06:39
【DVD】ラーゼフォン 第08話 「凍る聖夜」(640x480 DivX502).avi
0702デフォルトの名無しさん2007/06/06(水) 22:07:32
GC.Collect();
07036642007/06/06(水) 23:50:07
>>692
。・゚・(つД`)・゚・。
0704デフォルトの名無しさん2007/06/07(木) 01:10:42
でもフナムシってなかなかいいフォルムしてるよな
0705デフォルトの名無しさん2007/06/07(木) 05:56:46
D&Dのドロップの処理でその処理が重い処理の場合、
ドラッグソースのアプリまで固まってしまうんですが、
こういう場合、とりあえずドロップはすぐリターンして
次のターンで実行すると思うんですが、そのやり方の
定石ってあるでしょうか?
0706デフォルトの名無しさん2007/06/07(木) 07:59:32
別スレッドにしてDoDragってよびだせないっけ?適当なかきこだから間違ってたらす万。
0707デフォルトの名無しさん2007/06/07(木) 08:15:18
どうみても海ゴキブリですw
0708デフォルトの名無しさん2007/06/07(木) 13:13:11
Delegateって保存かのうかね?
中のインスタンス情報とかメソッドシグネチャとか引っ張って来れれば力技ででも何とかなるんだが。
ゆくゆくはイベントを保存したい
0709デフォルトの名無しさん2007/06/07(木) 14:49:59
>>705
次のターンで実行するって意味不明だけど
エフェクト返す前に非同期でやるんじゃね
0710デフォルトの名無しさん2007/06/07(木) 15:06:58
スレッド起動するか、メッセージポストしてそこでやるか、じゃないかなあ
0711デフォルトの名無しさん2007/06/07(木) 15:31:43
単純に考えて、delegateにメソッド突っ込んだだけでも
インスタンスへの参照になるわけだから、メソッドがstaticでなければ
インスタンスを保存するしかないね。
それともメンバポインタめいた事をしたいのかね?
Managed C++でもつかってろ。
0712デフォルトの名無しさん2007/06/07(木) 17:37:22
普通にシリアライズ出来ただろ
それが意味あるかはまた微妙ではあるが
0713デフォルトの名無しさん2007/06/07(木) 17:58:00
>>708
コマンドパターンとかファンクタという言葉を調べてみると幸せになれるかもしれない
0714デフォルトの名無しさん2007/06/07(木) 18:03:33
ここはATHLのすれMFCはすれ違い
0715デフォルトの名無しさん2007/06/07(木) 19:30:26
TextBox1と2に西暦を入力して、それを取得してOracleに接続、
SQLでDataGridに取得した範囲を表示させたいのですが・・・・

できますかね?
0716デフォルトの名無しさん2007/06/07(木) 19:33:01
できます。
07177152007/06/07(木) 19:38:04
どうやったら出来ますか?
0718デフォルトの名無しさん2007/06/07(木) 19:39:11
逆に何ができなくて悩んでいるのか聞きたい
0719デフォルトの名無しさん2007/06/07(木) 19:39:21
それはC#や.NET自体とは関係ないからこのスレで聞くようなことじゃない
07207152007/06/07(木) 20:20:24
一応、C#でプログラムしてるんですが・・・どこで聞けばよかったでしょ?
0721デフォルトの名無しさん2007/06/07(木) 20:23:19
>>719
>>718

何が分からんのか分からんのじゃ答えようがねぇ
0722デフォルトの名無しさん2007/06/07(木) 20:24:06
どこまでやってどこが分からないか、書いたコードのどこがおかしいのかの質問を書き込めば
ここでOK

各ステップすっ飛ばして全部分かりませんと言うなら
ここはスレ違い
0723デフォルトの名無しさん2007/06/07(木) 20:24:12
719 じゃなかった……
07247152007/06/07(木) 20:33:01
ええと、DataTime.Parseを使って日付を取得したものをTextBox1と2に設定しました。

それから、OleDbAdapterをDataSetにセット、DBに接続してSQLのSELECT構文を使ってDataGridに表示させようとしてます・・・。

こんな感じでいいのかな・・・・?初心者丸出しでスミマセン。
0725デフォルトの名無しさん2007/06/07(木) 20:35:55
それで、どこが分からないのでちゅか〜?
07267152007/06/07(木) 20:38:58
TextBox1と2の範囲の西暦をSQLに反映させて表示のさせかたがわかりません・・・。
0727デフォルトの名無しさん2007/06/07(木) 20:43:48
C++++
0728デフォルトの名無しさん2007/06/07(木) 20:49:30
ふらっとスレの496っぽいな。なんでこっちに来たのか分からん。
0729デフォルトの名無しさん2007/06/07(木) 20:52:24
>>726
それで、どんなコード書いたのボク?
最初から順番に落ち着いてはなちてみまちょうね〜
0730デフォルトの名無しさん2007/06/07(木) 21:09:14
dataAdapter.SelectCommand.Parameters.AddWithValue("パラメータ名", date1);
0731デフォルトの名無しさん2007/06/07(木) 21:19:35
明治の生まれから見ればみなゆとり
0732デフォルトの名無しさん2007/06/07(木) 21:55:00
どこが分からないのか、ちょっとうまく言えないのかな〜
それじゃしょうがないねボク〜
うんうんむずかしいよね〜
いちどママにごそうだんして、れんらくちょうに書いてもらってね〜
じゃあまたね〜☆
0733デフォルトの名無しさん2007/06/07(木) 22:15:22
質問者に問題があるのはわかるが、他人の非をこうもバカにする奴も…
0734デフォルトの名無しさん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 のような答えになるのは当たり前
07357342007/06/07(木) 22:32:34
>>733
基本的には同意だけど

学生さんとかだったらかわいそうだが
C# + Oracle という構成は、普通業務だろ
そう考えると、その程度もできないしヘルプすら調べられないなら
給料もらう資格すらないと思った方がいいとは思う
0736デフォルトの名無しさん2007/06/07(木) 22:40:54
>1. textBox1/textBox2 にどのように SQL 文から得た結果を入れようとしているのか

お前も質問100回読み返すくらいの努力はしようぜ……
0737デフォルトの名無しさん2007/06/07(木) 22:42:59
その質問はどうせ、新人文系だろうな。
0738デフォルトの名無しさん2007/06/07(木) 23:02:23
書き方からして多分リアル中学生or高校生…

ふらっと c#は初心者用ですからそっちに移ったら良い。
あとなあ、おまえさんは一からプログラム作るレベルじゃない。
他人の作ったプログラム読むか、初心者用の本読んで勉強したほうがいい。

0739デフォルトの名無しさん2007/06/07(木) 23:04:48
>ええと、DataTime.Parseを使って日付を取得したものをTextBox1と2に設定しました。
>それから、OleDbAdapterをDataSetにセット、DBに接続してSQLのSELECT構文を使ってDataGridに表示させようとしてます・・・。

んーなんだ、もそっと日本語分かりやすく書いてけれ。
0740デフォルトの名無しさん2007/06/07(木) 23:06:40
半年ROMってろ ←嘘
0741デフォルトの名無しさん2007/06/07(木) 23:10:08
>>738
無駄無駄
たぶん昨日ふらっとスレにいた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:23
496だとしたら質問しっぱなしで消えるからあまり期待するなよw
0744デフォルトの名無しさん2007/06/07(木) 23:13:35
DataTime.Parse 例外をちゃんと拾っているだろうか。

BETWEEN @f1 AND @f2
0745デフォルトの名無しさん2007/06/07(木) 23:19:17
>>742
この手の奴って色々あるんだなぁ

でもググレカスのインパクトが強すぎて後はどれもイマイチだな
0746デフォルトの名無しさん2007/06/07(木) 23:21:35
>>744
いいひとだな。君は。
この汚らしい流れの中でひとり輝いているよ。
0747デフォルトの名無しさん2007/06/07(木) 23:23:08
こんなとこでROMっててもなあw
回答者のクオリティとかじゃなくて、限定された問題に
ピンポイントで答えるためのスレだから横から読んでてもあんまりためにならないよ
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:32
現在、Delphiを使っていて、ちょっとC#も使ってみようかと思っているものです。

C#のGUIコントロールは、UNICODEに対応しているのでしょうか?

また、国際化対応のためのコンポーネントなどがありますでしょうか?
GetText相当のものでもあればよいのですが・・・。
0753デフォルトの名無しさん2007/06/07(木) 23:51:20
>>713
それはeventとかを使わず独自のファンクターでsubscribeをしろということかね?
0754デフォルトの名無しさん2007/06/07(木) 23:54:17
>>752
yes

コンポーネントは必要なし。
フレームワークでおk
0755デフォルトの名無しさん2007/06/07(木) 23:57:07
また、だんだんフナムシって罵りたくなって北。
0756デフォルトの名無しさん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
>>753
そんなことしたからといってできるとは思えない
0758デフォルトの名無しさん2007/06/08(金) 00:22:33
やっぱ国際化ってサテライトアセンブリでやるのかな。
簡単なのでいいけど、ユーザーによってはテキストで(ini or xml )
言語ファイル作れとか言うから困る
そっちのほうがユーザーが編集できるメリットはあるんだろうけど
0759デフォルトの名無しさん2007/06/08(金) 00:29:50
>>757 リフレクションでメソッドインフォなりメソッド名などなどから復活とかならなんとかなるかと。
まぁせいげんもあるけれど。
0760デフォルトの名無しさん2007/06/08(金) 00:56:46
>>754
サンクス。
安心して、つこーてみるす
0761デフォルトの名無しさん2007/06/08(金) 01:03:41
>>760
後のほうは嘘じゃないかな?
0762デフォルトの名無しさん2007/06/08(金) 06:17:46
>>753
保存のレベルがどこまでかだが
他プロセスなりで復元可能なレベルでシリアライズしたいなら
EventArgs に SerializableAttribute が付いている訳だから
この辺りをうまく使ってコマンドパターン化してみるのは手かも

delegate 自体を保存して他プロセスで復元となると
無名関数をシリアライズするとか
動的に IL を生成してアセンブリとして保存するとかも
できないことはないが……
0763デフォルトの名無しさん2007/06/08(金) 06:18:29
>>761
特別なコンポーネントを組み込む必要なしに
フレームワークレベルでサポートしてるだろ
0764デフォルトの名無しさん2007/06/08(金) 08:44:23
>>762
やりたいことは独自のシリアライズFWでデリゲート呼び出しもシリアライズすることです。
いまちょっとみていたらDelegateからMethodInfoとれるので保存できそう。
ただDelegate保存できるようにすると少しややこしいことになりそう。
その場で知り合図して使う分にはいいけれど、オブジェクトの永続化として考えるとスキーマの変更以外にメソッドの変更や匿名メソッドの取り扱いを変えるだけで再生ができなくなるか。
でもDelegate保存できないと再生のあとにDelegateの復元作業を各クラスがしないといけなくなるのでまんどくさい。
0765デフォルトの名無しさん2007/06/08(金) 08:50:51
>>763
.NET Frameworkレベルでサポートされてる?
0766デフォルトの名無しさん2007/06/08(金) 13:08:28
>>765
文字列リソースが入ったサテライトアセンブリを
現在のカルチャ/UI カルチャを元に自動的に選択して
適切な文字列を選択したり、ニュートラルに落としたりするのは
.NET Framework レベルの仕事以外の何だと思うの?
0767デフォルトの名無しさん2007/06/08(金) 16:39:44
>>766
おお、そこまでやってくれるんだ。教えてくれて、ありがとう。
0768デフォルトの名無しさん2007/06/08(金) 20:57:03
メインのフォームが閉じるボタンを押しても、閉じてくれない
ことがあります。closingやclosedは呼ばれてるんですが、
表示されたままで、それ以降はなにをしても無反応です。

無反応といっても完全に固まってるわけではない状態です。

たまにしか起こらないんですが、どういう原因があるのでしょうか?
0769デフォルトの名無しさん2007/06/08(金) 21:00:17
FormClosingでe.Cancel = true;にしてるとか
0770デフォルトの名無しさん2007/06/08(金) 21:01:36
>>769
それは確認しましたが問題ありませんでした。
0771デフォルトの名無しさん2007/06/08(金) 21:18:12
tabcontrolにtabpageが30個くらいあって、マルチラインなし
で使っています。
今選択中のタブのインデックスを0として、
selectedtabを一番右に設定すると左のほうのタブ
が描画されないです。invalidateやvisibleをいじっても
だめなんですがどうすればいいでしょうか?
0772デフォルトの名無しさん2007/06/08(金) 21:25:08
>>768
スレッドが動きっぱなしになってるのかもよ。
0773デフォルトの名無しさん2007/06/08(金) 21:28:59
ComboBoxのドロップダウンが表示されてるときにxボタンクリックしてるとか
0774デフォルトの名無しさん2007/06/08(金) 21:36:19
>>771
それ俺も困ってるんだわw
とりあえず、タブのAppearanceをNormalにすると直るんだよな
07757682007/06/08(金) 21:36:24
>>772
スレッド関係は使ってないと思います。

>>773
メインのフォームにコンボボックスはないので多分関係ないと
思います。
0776デフォルトの名無しさん2007/06/08(金) 22:04:22
>>768
何かを開放し忘れてるんじゃ・・・

他のフォーム呼び出したりしてない?
07777682007/06/08(金) 22:29:41
>>776
開放し忘れているかはわからないんですが、
closingで自分が持ってるメンバーに対してはnullをセット
して様子をみましたが、やはり発生するようです。

他のフォームはダイアログ(showdialog)として呼び出したりしています。

あとやるとすればデザイナが作ったメンバーのすべてnullをセット
してみることも考えましたが、それはまだやっていません。
0778デフォルトの名無しさん2007/06/08(金) 22:37:40
>>777
まあ確実にいえるのは「普通は」そんなことは起こらないから。
なにか妙なことをやっているのは確かだということだね。

まあ、フォアグラウンドのスレッドが稼動しているときの症状そのもののように聞こえるね。
0779デフォルトの名無しさん2007/06/08(金) 23:25:25
>>777
このスレの510あたりから読んでみて
0780デフォルトの名無しさん2007/06/08(金) 23:32:06
このフナムシが!
0781デフォルトの名無しさん2007/06/08(金) 23:32:24
なんのこっちゃw

そんなほのめかすような書き方は自信のなさの現われだろうけど、
自信がないのならむしろ黙っているべきだと思うぞ。
0782デフォルトの名無しさん2007/06/08(金) 23:59:41
>>781
例えほぼ無意味な一言レスでも、彼らにとっては貴重な発言の場
許してやって下さい
07837802007/06/09(土) 00:06:22
>>781-782
俺のこと言ってんのか?
俺はフナムシって罵らずにはいられない、ビョーキの人だから気にせんでくれ。
0784デフォルトの名無しさん2007/06/09(土) 00:09:31
いや悪いボケ老人の繰言みたいなレスは最初から眼中に入ってない。
ほのめかし、というのは当然779のことだ
07857802007/06/09(土) 00:15:04
>>784
お前、なにげ酷い奴だな。
周りの人から性格悪いって言われない?
0786デフォルトの名無しさん2007/06/09(土) 00:40:02
フナムシお触り禁止
0787デフォルトの名無しさん2007/06/09(土) 01:25:36
またいつもの奴かよ
0788デフォルトの名無しさん2007/06/09(土) 05:57:59
>>768
GUIスレッドのMainの前に[STAThread]は入ってる?
0789デフォルトの名無しさん2007/06/09(土) 19:42:17
Unionないの?
0790デフォルトの名無しさん2007/06/09(土) 19:49:24
あるよ。
0791デフォルトの名無しさん2007/06/09(土) 19:52:44
interop以外の目的では使うなよ
0792デフォルトの名無しさん2007/06/09(土) 22:48:58
TCPListenerクラスのコンストラクタにIPアドレスが必要な意味がいまいちわからん
クライアントなら接続先IPアドレスがいるだろうが、
サーバは接続される側なのになんでIPアドレスを指定するんだか
0793デフォルトの名無しさん2007/06/09(土) 22:56:10
よくわからずにカキコ
NICが2つあるばあい、識別するため
0794デフォルトの名無しさん2007/06/09(土) 23:20:31
Loopback かどうかも指定できるしな。
0795デフォルトの名無しさん2007/06/09(土) 23:24:30
マニュアル読めよ
0796デフォルトの名無しさん2007/06/09(土) 23:50:39
>>789
ない
07977922007/06/10(日) 00:14:59
>793-794
なるほど。そんなシチュエーションは考えてなかった。

>795
どうして手持ちのヘルプには「IPアドレスを指定しないコンストラクタは非推奨になりました」ぐらいしか書いてないんだぜ?
0798デフォルトの名無しさん2007/06/10(日) 00:31:43
なんという前衛的な日本語の使い方だぜ?
0799デフォルトの名無しさん2007/06/10(日) 00:35:43
どうして田舎の方言かも知れないぜ?
0800デフォルトの名無しさん2007/06/10(日) 00:45:05
1000年前に、798のような文章を書けば、おなじ事言われたでしょ?
0801デフォルトの名無しさん2007/06/10(日) 00:47:55
>>800
自分の書いた内容がおかしくないか確かめたほうがいいぜ?
0802デフォルトの名無しさん2007/06/10(日) 01:37:36
もうええわ
0803デフォルトの名無しさん2007/06/10(日) 01:40:20
ほんまによういわんわ
0804デフォルトの名無しさん2007/06/10(日) 02:20:20
http://b.hatena.ne.jp/entry/3901369
0805デフォルトの名無しさん2007/06/10(日) 02:52:48
元ネタ知らずに使ってたわ
0806デフォルトの名無しさん2007/06/10(日) 10:46:58
これはなつかしいw
0807デフォルトの名無しさん2007/06/10(日) 16:28:49
ハッシュで、

ht("aaa") = ("a", "b", "c", 0, 1, 2);
Console.WriteLine( ht["aaa"][3] );

みたいな、キーに対して値が配列でもてるようなのあると便利なんだけど、
そんなうまい話はないですかね?
0808デフォルトの名無しさん2007/06/10(日) 16:38:04
値の同一性判定次第だが普通に可能
0809デフォルトの名無しさん2007/06/10(日) 16:41:30
Dictionary<string, object[]>

普通は配列のところを構造体にでもするんじゃね
0810デフォルトの名無しさん2007/06/10(日) 17:07:55
ありがとうございます!

Dictionary<string, object[]>

object[]部分を構造体にしたほうがいいんですか?
とりあえず、配列のままちょっとがんばってみます
0811デフォルトの名無しさん2007/06/10(日) 22:03:51
それ以前の段階で頑張らないといけないな。
0812デフォルトの名無しさん2007/06/11(月) 01:05:13
どーゆーこと?
0813デフォルトの名無しさん2007/06/11(月) 01:15:08
ほのめかし知ったかはヌルーがオヌヌメ
0814デフォルトの名無しさん2007/06/11(月) 01:52:19
Dictionary<string, List<string>> とか
Dictionary<string, Dictionary<string, List<string>>> とか
やろうと思えばいくらでもできる訳だが

System.Collections.Generic 以下とかを眺めてみるといいんじゃまいか
0815デフォルトの名無しさん2007/06/11(月) 02:44:50
どう見てもVariant配列だかんな
0816デフォルトの名無しさん2007/06/11(月) 10:51:34
C++上がりなC#初心者なんですが、流れを読まずに質問失礼。
C#でウィザードダイアログを実現するには、パネルなどでCPage相当のものを作ってやるという形になるのでしょうか。
ざっと見たところ用意されていないようなので。。
0817デフォルトの名無しさん2007/06/11(月) 13:49:01
>>816
まずそのCPageというのを説明したほうがいいと思うぞ。
0818デフォルトの名無しさん2007/06/11(月) 15:23:34
>>817
すいません。CPageじゃなくてCPropertyPageクラスでした。
プロパティシートのウィザードモードみたいなクラスは用意されてないのかなと思った次第です。
0819デフォルトの名無しさん2007/06/11(月) 15:28:35
node数が100000を越える無向グラフを作っているんですが、
パフォーマンス向上の為、node同士をつなげるedgeの参照などに
C/C++スタイルのポインタを使用し、更に簡潔なコードなのでメモリ管理をプログラマ側で行いたいのですが、
unsafe CNode* pNode; などとするとやっぱりCS0208で弾かれます。
C/C++を使わないで済む、何か巧い方法はないでしょうか?
0820デフォルトの名無しさん2007/06/11(月) 15:34:24
naiyo
0821デフォルトの名無しさん2007/06/11(月) 15:35:14
それC++スタイルのポインタにすることでどれほどスピード稼げるの?
0822デフォルトの名無しさん2007/06/11(月) 15:43:18
う〜ん、マイルド。
0823デフォルトの名無しさん2007/06/11(月) 16:03:36
C++/CLIでがんばるお
0824デフォルトの名無しさん2007/06/11(月) 16:55:13
>>819
参照型の変数ってポインタみたいなもんじゃん。
何が不満?
GC?
0825デフォルトの名無しさん2007/06/11(月) 17:06:23
>>824
Cで使うようなポインタでシコシコやった方がGC任せより早いって事だろ
0826デフォルトの名無しさん2007/06/11(月) 17:11:25
>>818
TabCotrol, TabPage
0827デフォルトの名無しさん2007/06/11(月) 18:33:16
C# でコーディングし、要所だけ C/C++ で記述する方法が知りたいのですが、
どんなキーワードでぐぐればいいんでしょうか/どんな手がかりで調べればいいんでしょうか。
0828デフォルトの名無しさん2007/06/11(月) 18:47:14
>>827
C++ CLI
0829デフォルトの名無しさん2007/06/11(月) 20:40:47
そんなこと質問するような人には必要ないことは間違いない
0830デフォルトの名無しさん2007/06/11(月) 20:53:08
同じソースにC#とC++は混在できるのか?

Cでコーディングして要所だけasmキーワードを使っていたMMX時代がなつかしい
0831デフォルトの名無しさん2007/06/11(月) 20:56:44
混在できない
Visual Studioでは別々のアセンブリにして参照設定することになると思う
0832デフォルトの名無しさん2007/06/11(月) 20:56:47
できません
0833デフォルトの名無しさん2007/06/11(月) 20:58:59
ファイル分ければ混在は可能だけど、同一ファイル内に C# と C++ を混在させるのは出来ないかと。
0834デフォルトの名無しさん2007/06/11(月) 21:00:13
マージしろ
0835デフォルトの名無しさん2007/06/11(月) 21:04:27
中途半端にC++なんて言わずにIL書いちゃえ
混在できないこともないし
0836デフォルトの名無しさん2007/06/11(月) 21:05:21
C/C++を使わないで済む、何か巧い方法はないでしょうか?
↓
C# でコーディングし、要所だけ C/C++ で記述する方法が知りたいのですが、

その間およそ3時間
0837デフォルトの名無しさん2007/06/11(月) 21:06:09
窓の杜で見たんですけど、
エクスプローラのツールバー作るのってどうやるんですか><
C#かVB.NETで作ってるみたいなんです
0838デフォルトの名無しさん2007/06/11(月) 21:10:48
>>837
ttp://mobiquitous.com/programming/ietoolbar.html
0839デフォルトの名無しさん2007/06/12(火) 16:43:01
VisualStudio2005 proの開発環境の質問をしてよろしいでしょうか?

エディタ上で、右のタブに移る、左のタブにうつる、というショートカット設定は可能でしょうか?
ウインドウ,次のドキュメントウィンドウ(Ctrl+F6)では、開いた順?か何かよくわからない順番で、
切り替わってしまいます。

普段、Borland製品を使っていまして、VS.netを使ってみたら、
挙動が違っていたので困ってしまいました。

0840デフォルトの名無しさん2007/06/12(火) 18:13:58
ここは言語のスレであって製品のスレではないのでこちらへー

Visual Studio 2005スレ Part21
http://pc11.2ch.net/test/read.cgi/tech/1180692040/
0841デフォルトの名無しさん2007/06/12(火) 18:28:18
>>840
了解しました。
そちらに移ります。
誘導ありがとうさんです。
0842デフォルトの名無しさん2007/06/12(火) 20:44:49
C#未経験です・・GUIやりたいんですけど作成手順の入門ページってないんでしょうか??
0843デフォルトの名無しさん2007/06/12(火) 20:47:56
素直にWPFを待つか、切り捨てられる可能性があるFormsをするのかによる。
また、ASP.NETならそれほど、変更が加えらないと思うので良い。
0844デフォルトの名無しさん2007/06/12(火) 21:02:20
あんまり深く考えないで
はじめはVisual C# Express Edition落として遊んでみたらいいんじゃない?
0845デフォルトの名無しさん2007/06/12(火) 22:05:15
.netでwin32のPostMessage相当のことはできるのでしょうか?
0846デフォルトの名無しさん2007/06/12(火) 22:08:58
それで何を実現したいかによる
0847デフォルトの名無しさん2007/06/12(火) 22:14:04
[DllImport("user32.dll", SetLastError = true)]
private static extern int PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);

かな?
0848デフォルトの名無しさん2007/06/12(火) 22:17:41
>>847
それ「相当」違うw
0849デフォルトの名無しさん2007/06/12(火) 22:21:00
BeginInvokeってことかいな?
0850デフォルトの名無しさん2007/06/12(火) 22:46:07
>>846
実現したいのはスレッドを用いない非同期実行です。
0851デフォルトの名無しさん2007/06/12(火) 22:48:05
>>849
それでした。ありがとうございます。
0852デフォルトの名無しさん2007/06/12(火) 22:48:41
べつのぷろせすかな
0853デフォルトの名無しさん2007/06/12(火) 22:52:07
>>850
使ってるんじゃね?
0854デフォルトの名無しさん2007/06/12(火) 22:56:05
>>854
MSDNには
>コントロールの基になるハンドルが作成されたスレッド上で、指定したデリゲートを非同期的に実行します。
とあるので、別スレッドで呼ばれることはないってことでいいんですよね。

0855デフォルトの名無しさん2007/06/12(火) 23:03:05
つーか別スレッド『から』使うものだよ?
0856デフォルトの名無しさん2007/06/12(火) 23:03:20
なかなかフナムシって罵るタイミングが掴めない。(´・ω・`)
もうちょっと馬鹿な発言ぷり〜ず!
0857デフォルトの名無しさん2007/06/12(火) 23:07:08
>>855
MSDNには
>コントロールのハンドルを所有しているスレッドからでも呼び出すことができます。
と書いてあるので、同じスレッドでも問題ないですよね。
0858デフォルトの名無しさん2007/06/12(火) 23:12:46
全然問題ないよ。
でもそれ非同期っていわないから。
0859デフォルトの名無しさん2007/06/12(火) 23:13:29
>>856なんかはかなり馬鹿な発言だと思うぜ
0860デフォルトの名無しさん2007/06/12(火) 23:17:58
>>858
非同期は非同期でしょ。
ただ自分にむかって自分で仕事をキックしてるだけの話
0861デフォルトの名無しさん2007/06/12(火) 23:18:21
>>858
非同期とはいわないんですか?でも同期でもないですよね?
なんて呼ぶのが正解なんですか?
0862デフォルトの名無しさん2007/06/12(火) 23:20:41
自スレッドにBeginInvoke発動!!!
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
終わった!
↓
さてBeginInvokeの次の行と。


って感じの理解でおk?
これって同期じゃね?
0863デフォルトの名無しさん2007/06/12(火) 23:20:49
あちこちのサイト見ているが デリゲートのBEGININVOKEはスレッドプール使ってるって
書いてある。途中で方式変わったのかな?

でも同一スレッドで非同期処理なんて変だと思わないか?

0864デフォルトの名無しさん2007/06/12(火) 23:23:06
自スレッドにBeginInvoke発動!!!
↓
さてBeginInvokeの次の行と。
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
自スレッドで作業中……
↓
終わった!
↓
こうですよね。
0865デフォルトの名無しさん2007/06/12(火) 23:23:26
Control.BeginInvoke はデリゲートの BeginInvoke とは関係ないぞ
0866デフォルトの名無しさん2007/06/12(火) 23:23:44
>>862
だから非同期じゃん。

同期というのはBeginInvokeによって引き起こされる処理の完了に「同期して」
次の処理が実行されるような場合のことを言うんだよ。
0867デフォルトの名無しさん2007/06/12(火) 23:26:04
BeginInvokeはスレッドプール使ってる

終了
0868デフォルトの名無しさん2007/06/12(火) 23:27:29
>>866
頭大丈夫?
0869デフォルトの名無しさん2007/06/12(火) 23:27:40
>>866
理解した
0870デフォルトの名無しさん2007/06/12(火) 23:37:48
自スレッドにBeginInvoke発動!!!
↓
さてBeginInvokeの次の行と。
↓
メソッド内の作業中……
↓
とりあえずスレッドのキューが空になったぞ
↓
BeginInvokeの方を作業中……
↓
BeginInvokeの方を作業中……
↓
終わった!

でいいんでしょうかや?
なんかふらっと逝くべきですね
0871デフォルトの名無しさん2007/06/12(火) 23:50:27
Control.BeginInvokeはべつものじゃないか。

それに翻訳の問題ありそうな気がする。

同期呼び出し Invoke
0872デフォルトの名無しさん2007/06/12(火) 23:57:11
>>.863 ここで話してるのはControlのBeginInvoke 

>>861 そこでいっている例についてだけ言うなら同期でよろし。まあまり深く考える必要はない
0873デフォルトの名無しさん2007/06/13(水) 00:14:17
ControlのBeginInvokeだと使いどころが違いそうな気がする。
どちらかというとContorolのいじるために使うんじゃないの?

ttp://uchukamen.com/Programming/Asyncro/
08748562007/06/13(水) 00:16:35
>>868
そのセリフは寧ろ、俺にかけて欲しかった。
0875デフォルトの名無しさん2007/06/13(水) 00:23:39
普通はコントロールを別スレッドからいじる為に使うが、
後で実行するために使うこともできるってだけの話。
08768732007/06/13(水) 00:24:05
ゴメ 上のほう読んでなかった…


>>874
かける言葉が見当たらない…
0877デフォルトの名無しさん2007/06/13(水) 00:40:54
構ってちゃんは放置で
0878デフォルトの名無しさん2007/06/13(水) 00:45:34
C#を開発メインで使っている企業を知りませんか?
出来れば、C#メインで仕事がしたいと考えているのですが、
アバナードならC#メインで仕事できますかね?
0879デフォルトの名無しさん2007/06/13(水) 00:48:05
マ板で聞くべし。
まともな返事は来ないだろうけど。
0880デフォルトの名無しさん2007/06/13(水) 01:11:52
>>878 ぶっちゃけうちの会社では新規はC#でしかやってない。
既存の延長のやつはC++だけど。金融系。
0881デフォルトの名無しさん2007/06/13(水) 01:41:26
すいません素朴な質問です。
参照型変数ががptr(ポインタ)と略される要領で、ほかにも略記号ってどんなのがありますかね
コンストラクタとかインスタンスとか構造体とかあるんじゃないかなーってふと思いまして
0882デフォルトの名無しさん2007/06/13(水) 01:57:26
>参照型変数ががptr(ポインタ)と略される

ってのはC++とかと比べたときのメタファーにすぎない(とか書くと突っ込まれそうだけど)
少なくとも略記号じゃないよ

コンストラクタとかにもそんなのないよ
0883デフォルトの名無しさん2007/06/13(水) 02:07:18
現在Javaを『やさしいJava』という本で学んでいるのですが、JavaとC#って同時に勉強すると
混乱しますでしょうか?
0884デフォルトの名無しさん2007/06/13(水) 02:08:05
命名規則の雰囲気で区別できる
0885デフォルトの名無しさん2007/06/13(水) 02:08:16
そんなの頭のレベルの問題だろうが。
人に訊くことじゃねえだろ・・・。
0886デフォルトの名無しさん2007/06/13(水) 02:13:09
>>884-885
ありがとうございました。
0887デフォルトの名無しさん2007/06/13(水) 02:36:29
>>886
どういたしまして
0888デフォルトの名無しさん2007/06/13(水) 08:44:53
>>882
ありがとうございましすー。
別に誰かに見せるわけでもないし、
特にないならコメントは勝手に自分だけわかるように略記して問題ないですね
0889デフォルトの名無しさん2007/06/13(水) 08:46:49
>>878

JR束はwin鯖+C#がおおいぞ。えきねっとなんかそうだと思う。
新幹線の運行管理にまで使っているらしい。束の情報子会社なんてどお?
そんな新幹線、個人的には(((((((( ;゚Д゚))))))))ガクガクブルブルガタガタブルブルだが
0890デフォルトの名無しさん2007/06/13(水) 10:00:32
クライアントとしてはいいと思うよ
うちもDBにC++とjavaだったけど端末なんてWinばっかだし
C#でできるものはそっちでやるようにしてるとこ
0891デフォルトの名無しさん2007/06/13(水) 10:44:23
log4netで質問があります。
現在ログ出力自体はできているのですが、
ログの出力先・ファイル名の設定を
xmlでは無くiniファイルで設定したい、
という要望があります。

ソースを改造する手もありますが、
もっと簡単に実現できないものでしょうか。
0892デフォルトの名無しさん2007/06/13(水) 11:12:09
Processで質問です

Processで起動したプログラムが異常終了したとき
Microsoftに送信しますか?だとかデバッグする?みたいに
聞いてくるウィンドウがでますよね?

あのウィンドウをでなくして、エラーを起こしたプログラムが即終了するようにする
方法ってありますか?
0893デフォルトの名無しさん2007/06/13(水) 11:38:40
>>892
Application.Run(new Form1());

をtry..catchで囲めばいいんじゃないっけ…(自信はない)。
0894デフォルトの名無しさん2007/06/13(水) 11:40:01
>>892は他のプロセスの場合が異常終了した場合のことを言ってるのだろだろ
仮にそうでなくとも>>893のは問題外
0895デフォルトの名無しさん2007/06/13(水) 11:46:59
あれは設定でオフにできるけど、自分が作ったやつだけ止めたいってことじゃないの?
0896デフォルトの名無しさん2007/06/13(水) 12:14:49
>>893-895
情報ありがとうございます

program1.exe
program2.exe

があって、program1.exeからProcessでprogram2.exeを呼び出すんですが
program2.exeがエラー起こしておわっちゃうと、ウィンドウがでてそこで
program1が延々と待ってしまうので、それを避けたいのです
今のところ思いつくのはprogram2のなかでtryつかっちゃうことですが
それだと自分がつくったものじゃないときに対応できないので
program1側でなんとかできないかなと思って

>>895さん、設定でオフってWindowsの設定でできるんでしょうか?
それでもOKです
どうすればいいんでしょ?おしえてください
0897デフォルトの名無しさん2007/06/13(水) 12:32:39
>>896
http://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]を止めちゃうとか
08998922007/06/13(水) 12:54:51
>>897
ありがとうございました
希望通りになりました

>>898
新たな情報ありがとうございます
プログラムでコントロールできるんですね
でもボクの能力の限界を超えているようです
やりかたわかんないTT
0900デフォルトの名無しさん2007/06/13(水) 13:03:09
>>899

Process myExe = Process.Start("sc stop ersvc");
myExe.WaitForExit();

これでどう?やったことねえけどwwwww

コマンドプロンプトで
sc stop ersvc
とうてばXPなら[Error Reporting Service]をとめれる
09018922007/06/13(水) 14:11:02
>>900
だめでした・・・
0902デフォルトの名無しさん2007/06/13(水) 14:12:08
まあサービスはアドミン権限いるだろうし、いきなり止めるのもあれだからなあ
0903デフォルトの名無しさん2007/06/13(水) 14:13:04
>>896
そのものずばりのAPIがあったはずだから探してみれ
0904デフォルトの名無しさん2007/06/13(水) 14:23:26
プロセス内からはSetErrorModeで設定できたんじゃないかな。
外部からは知らんけど、プロセス起動時に設定できてもいいような気はする。
09059042007/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

というわけで自分のプロセスでこれ設定して子プロセス起こせば
それで解決じゃね?
09068922007/06/13(水) 15:19:13
>>905
情報ありです
下のようなことやってみたけどだめでした
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:44
あれ?継承クラスからだとベースクラスで宣言してるイベントRaiseできないんだっけ?
0908デフォルトの名無しさん2007/06/13(水) 16:42:47
無理
public event EventHandler MyEvent;
protected void OnMyEvent(object sender, EventArgs e){略}
のパターンに従え
0909デフォルトの名無しさん2007/06/13(水) 17:55:30
WinXP VS2005 C# で質問があります。
Cのprintf("%3d",hoge)のような処理は、どのようにすれば実現できます
でしょうか?
string.Format("{0:000}",hoge)だと"0"が含まれてしまいますし、
ブランクは設定できないようですし、ワタシとても困てるね。
宜しくお願いします。
0910デフォルトの名無しさん2007/06/13(水) 18:04:55
右詰め3桁数字なら、{0, 3} じゃないか?
09119092007/06/13(水) 18:10:51
>>910
できました…
こんな簡単に…
ありがとうございます
0912デフォルトの名無しさん2007/06/13(水) 20:39:38
てすと
0913デフォルトの名無しさん2007/06/13(水) 20:41:26
>>911
ちったぁ、ドキュメント読め! そこのフナムシ!
0914デフォルトの名無しさん2007/06/13(水) 20:49:44
なんか下水の底のリケッチアが騒いでるな
0915デフォルトの名無しさん2007/06/13(水) 22:15:48
>>913
うぜーし、つまらん。どかいけ、カス。
09169132007/06/14(木) 01:33:50
>>914-915
俺、頭おかしいから無駄に罵ってるんだけど、
君たちも頭おかしい子?
0917デフォルトの名無しさん2007/06/14(木) 01:39:28
自分で自分を罵ればいいじゃん
0918デフォルトの名無しさん2007/06/14(木) 01:51:42
フナムシお触り禁止
0919デフォルトの名無しさん2007/06/14(木) 08:35:59
>>916
空気嫁よ。
0920デフォルトの名無しさん2007/06/14(木) 10:28:25
>>913はやればできる子
0921デフォルトの名無しさん2007/06/14(木) 11:52:09
やればできるは、できないと同義。
0922デフォルトの名無しさん2007/06/14(木) 11:59:14
そうでもない
やってないことは確かだが
0923デフォルトの名無しさん2007/06/14(木) 15:30:00
int も double も入れられる配列を作ろうとして、

ValueType[] a = new int[] { 0, 1, 2 };

としましたが、暗黙的に変換できませんと、エラーがでました。
こういうことってできないですか?
0924デフォルトの名無しさん2007/06/14(木) 15:41:40
ValueType[] a = new ValueType[] { 0, 1, 2 };
じゃないの?
0925デフォルトの名無しさん2007/06/14(木) 15:45:33
int も double も入れられる配列って何に使うの?
別の配列にするより、いちいち要素ごとに型の心配する方が面倒だと思うんだけど
0926デフォルトの名無しさん2007/06/14(木) 16:19:45
>>925
スクリプト言語だと、あたり前にできたりするが、C#はできない。
そういうこと。
0927デフォルトの名無しさん2007/06/14(木) 16:24:01
整数もdoubleであらわしゃいいじゃん。
0928デフォルトの名無しさん2007/06/14(木) 16:24:56
スクリプト言語だからじゃないだろ
0929デフォルトの名無しさん2007/06/14(木) 16:29:01
C#で書かれたHTTPD(Webサーバ)って何かありませんか?
昔見たことがあるのですが、ブックマークしてなくて忘れてしまいましたorz
0930デフォルトの名無しさん2007/06/14(木) 16:32:39
普通はオブジェクトの配列にしてしまうだろう。
object [] a = new object[] { 1, 2, 3, 4.2, "abc" }
objectをValueTypeにしてもboxingは発生してる。
違いは上の例でstringがエラーになる程度のこと。
オブジェクトの配列はリフレクションでよく見かけるね。
0931デフォルトの名無しさん2007/06/14(木) 17:02:54
struct Int32OrDouble{
int intValue;
double doubleValue;
bool isInt;
}//無駄が多すぎるな。もうちょっといいアイデアない?
0932デフォルトの名無しさん2007/06/14(木) 17:12:10
>>931
object でよくね?

どうしてもというなら、
[StructLayout(LayoutKind.Explicit)] と [FieldOffset(0)] 属性使えば
C の union みたいな事できる。
0933デフォルトの名無しさん2007/06/14(木) 18:39:32
>>929
Cassiniのことかな?
Microsoft製
ttp://www.asp.net/Projects/Cassini/Download/
UltiDev製
ttp://ultidev.com/products/Cassini/index.htm
0934デフォルトの名無しさん2007/06/14(木) 19:41:28
int と double なら double に統一すれば精度的にも問題ないな
0935デフォルトの名無しさん2007/06/14(木) 19:49:19
>>931
それをインターフェイスにして、

* intを引数にとるコンストラクタから作る実態はintの構造体と

* doubleを引数にとるコンストラクタから作る実態はdoubleの構造体

の二つにインプリメントさせればいいんじゃない?
0936デフォルトの名無しさん2007/06/14(木) 20:54:16
それじゃ意味ないだろ、この流れでは。
0937デフォルトの名無しさん2007/06/14(木) 20:58:40
この流れってどんな流れよ
0938デフォルトの名無しさん2007/06/14(木) 21:09:51
効率悪くて無駄が多いのが嫌って流れじゃなかったの?
0939デフォルトの名無しさん2007/06/14(木) 21:38:49
>>923はたぶん、>>807だ。
0940デフォルトの名無しさん2007/06/14(木) 22:21:11
ジェネリックじゃいかんの?
0941デフォルトの名無しさん2007/06/14(木) 22:24:19
>>940
是非とも実現してみてくれ。
0942デフォルトの名無しさん2007/06/14(木) 22:24:39
C#ってなんで
int i;
{
 int i;
}
ってできないの?
0943デフォルトの名無しさん2007/06/14(木) 22:24:48
>>811
0944デフォルトの名無しさん2007/06/14(木) 22:26:58
>>942
意味不明。

名前が被ってるってことか?
一番目と2ばんめのiの区別はどうするつもりだ
0945デフォルトの名無しさん2007/06/14(木) 22:28:56
ここはふらっとじゃない。
0946デフォルトの名無しさん2007/06/14(木) 22:29:15
>>942
どう考えてもバグの温床だろ
0947デフォルトの名無しさん2007/06/14(木) 22:38:34
すみません。C#で前回にSimpleCalcというソリューションをつくりまして
それを開こうとおもって、SimpleCalc.slnファイルをクリックしたらソリューションは
開けましたが、ソースコードの画面で、フォームのデザイン画面の表示の仕方がわかりません。

おしえてください。よろしくお願いします。
0948デフォルトの名無しさん2007/06/14(木) 22:38:48
>>944
意味不明ってなんだよ。
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++でメンバ関数の引数名とメンバそのものが被ってもエラーにならないのと同じだ。
09499472007/06/14(木) 22:40:03
自己解決しました。すみませんでした。
0950デフォルトの名無しさん2007/06/14(木) 22:40:36
>>948
そのコード意味不明。
0951デフォルトの名無しさん2007/06/14(木) 22:42:39
>>947
ソリューションエクスプローラーから対象のものをダブルクリックで開かない?
右クリックでデザイナの表示でもいいが
0952デフォルトの名無しさん2007/06/14(木) 22:42:53
>>948
this

>>942
ちゃんと内容書けよ。
ここはエスパー養成所じゃないんだ。
0953デフォルトの名無しさん2007/06/14(木) 22:43:50
>>948
それIDEでエラーなくコピペできる?
0954デフォルトの名無しさん2007/06/14(木) 22:44:21
>>950
例だから意味なんてない。
俺は子スコープで名前が同じ変数を使いたいだけなんだ。
for(int i=0;i<hoge;i++){
 for(int i=0;i<huga;i++){//実行回数が問題でトップレベルのforなんて関係ないね
  func();
 }
}
0955デフォルトの名無しさん2007/06/14(木) 22:44:44
>>952
エスパーを召還してるのは942じゃなくてアンタでしょw
>>942は別に意味不明じゃないぞ
0956デフォルトの名無しさん2007/06/14(木) 22:47:21
.Net厨はCさえ書けないゆとりという事が証明された。
0957デフォルトの名無しさん2007/06/14(木) 22:47:25
>>954
>>946
終了。

続きは高校卒業してからな。
09589472007/06/14(木) 22:48:03
>>951 
回答ありがとうございました。
0959デフォルトの名無しさん2007/06/14(木) 22:58:35
>>957
なんで俺が高校生って分かったの?
嘘だけど。
0960デフォルトの名無しさん2007/06/14(木) 22:59:28
中学生かと思った
0961デフォルトの名無しさん2007/06/14(木) 23:00:37
おーい、フナムシの出番だぞ〜
0962デフォルトの名無しさん2007/06/14(木) 23:34:25
うるせぇ、フナムシぶつけんぞ!!
0963デフォルトの名無しさん2007/06/14(木) 23:36:23
ふらっとより低レベルなスレw
0964デフォルトの名無しさん2007/06/15(金) 01:42:09
Cを知らないことを白状するけど、
>>954みたいな書き方をCでしたとき
スコープの外のiを中で使いたいときはどうすんの?
つーか使えないこと前提なの?
0965デフォルトの名無しさん2007/06/15(金) 02:02:29
使わないことを前提にシャドウしてるんだろ。
使う必要があるなら別の名前にする。
0966デフォルトの名無しさん2007/06/15(金) 04:20:13
あんなコード書いたら即日首にするよ
0967デフォルトの名無しさん2007/06/15(金) 11:00:58
小一時間問い詰める
0968デフォルトの名無しさん2007/06/15(金) 12:07:22
{
 int i;
}
{
 int i;
}
したいときはある。
0969デフォルトの名無しさん2007/06/15(金) 12:10:26
>>968
それだったら問題なく出来るんじゃね?
0970デフォルトの名無しさん2007/06/15(金) 12:11:25
それはスコープ外れてからの宣言だし何の問題もないでしょ。
0971デフォルトの名無しさん2007/06/15(金) 17:16:54
つか、for(int i; ...) { ... } for(int i; ...) { ... } がそれでしょ。
何も問題ない。
0972デフォルトの名無しさん2007/06/15(金) 17:22:16
そのfor文の int がそのスコープの中に入ったのは後になってからだけどな。
0973デフォルトの名無しさん2007/06/15(金) 17:22:53
スコープじゃねー、ブロック
0974デフォルトの名無しさん2007/06/15(金) 17:43:39
そりゃC++だけだ
0975デフォルトの名無しさん2007/06/15(金) 17:44:35
あー、ここC#スレだっけ
0976デフォルトの名無しさん2007/06/15(金) 19:07:01
C++ の最初の規格ができた時には既にスコープの中に入ってたらしいがな。
入ってなかったのは初期のドラフト時代のみらしい。
0977デフォルトの名無しさん2007/06/15(金) 22:35:23
VC++1.0の時は入ってなかったな
0978デフォルトの名無しさん2007/06/15(金) 23:08:07
アホみたいな話題で盛り上がってないで次スレ〜
0979デフォルトの名無しさん2007/06/15(金) 23:40:54
フナムシってそこはかとなくキモいよね。
0980デフォルトの名無しさん2007/06/16(土) 01:13:58
・goto文でもりあがったことがある
0981デフォルトの名無しさん2007/06/16(土) 14:23:37
VCが仕様をみたしてなかったんでは。
ところで
{
int i;
}
{
{
int i;
}
}
これもできないよね。
0982デフォルトの名無しさん2007/06/16(土) 14:27:09
できるだろ。
0983デフォルトの名無しさん2007/06/16(土) 14:30:02
>>981
>VCが仕様をみたしてなかったんでは。
当時のこと知らないなら黙ってろ。
まだ策定されてなかったんだよ。
0984デフォルトの名無しさん2007/06/16(土) 14:36:40
あれできた

>>983
知らないけど、割と最近までそういう製品だった印象があるよ
0985デフォルトの名無しさん2007/06/16(土) 14:39:05
境目は1998年だね。
0986デフォルトの名無しさん2007/06/16(土) 14:39:34
おい、フナムシども! 次スレにはこっちのスレを流用するぞ!

C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
0987デフォルトの名無しさん2007/06/16(土) 14:40:07
VC6 だと for (int i の i のスコープは外に出るな
だがここは C# スレだ
0988デフォルトの名無しさん2007/06/16(土) 14:40:09
>>984
それはVC++6.0の話だね。
あれはコンパイルスイッチをつけないと、新しい仕様にならなかった。
0989デフォルトの名無しさん2007/06/16(土) 14:55:50
MSは特にそうなのだが、互換を考えずに後から追加になった仕様や標準にはどこも冷淡だからね。
forに関しては使いたければこうすればいいということだったが未だに理屈が分からん。
#define for(x) if(0);else for(x)

あとC#に話を戻すけどC++から削った要素に8進数表記がある。
これに対する苦情はあまり聞かないけどどう?
010 はCだと8 だが C#だと10になる。
0377が使いたくてしょうがない人とか居る?
0990デフォルトの名無しさん2007/06/16(土) 15:02:13
>>989
ゼロが頭につくと8進表記扱いになるって知らなきゃ
即バグに繋がるような問題だしねぇ。
0991デフォルトの名無しさん2007/06/16(土) 15:10:24
化石級のunixエンジニアにはオクタルに染まってるのもいたが最近はみない。
0992デフォルトの名無しさん2007/06/16(土) 15:14:50
そもそも8進数の利点が分からん
16進や2進ならバイト表現に便利なのはわかるんだが
0993デフォルトの名無しさん2007/06/16(土) 15:16:09
8進表記ってもともとの目的は何なの?
ニブルが3ビットでバイトが6ビットみたいな環境とかでもあったんかな
0994デフォルトの名無しさん2007/06/16(土) 15:17:55
昔は24/36bitワードマシンとかあったじゃん。
0995デフォルトの名無しさん2007/06/16(土) 15:18:35
属性だろ
0996デフォルトの名無しさん2007/06/16(土) 15:18:45
2進数と16進数の中間。ビット表現に使う
数字だけで使えるしね
0997デフォルトの名無しさん2007/06/16(土) 15:18:49
二進数表記ってどうやればいいの?
列挙型で使いたいんだが
0998デフォルトの名無しさん2007/06/16(土) 15:19:10
ここでロートルの俺が一言。
昔はCPUの命令体系が8進数ベースだったんじゃよ。
0999デフォルトの名無しさん2007/06/16(土) 15:20:53
>>997
リテラル二進表記はない。
16進で書いて後ろにコメント付けとけ。
1000デフォルトの名無しさん2007/06/16(土) 15:20:57
>>997
boolを32個ならべる
↓
それはそれとして
卵かけ御飯をおいしくいただく
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。