[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:23 / Filesize : 230 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part45



1 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:41:44 ]
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。

>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

前スレ
ふらっとC#,C♯,C#(初心者用) Part44
pc12.2ch.net/test/read.cgi/tech/1251439041/

2 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:44:04 ]
-----関連スレ

C#, C♯, C#相談室 Part54
pc12.2ch.net/test/read.cgi/tech/1250911923/

WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
pc12.2ch.net/test/read.cgi/tech/1245384489/

----参考サイト

www.google.co.jp/
msdn.microsoft.com/ja-jp/library/default.aspx
homepage3.nifty.com/midori_no_bike/CS/
www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
dobon.net/vb/dotnet/
jeanne.wankuma.com/tips/
www.labasp.net/CsharpNote/

3 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 17:47:31 ]


4 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 18:49:03 ]
>>前スレ終わり際
フレームワーク内部でcatchされてる例外は深く考えても脳が疲れるだけよ
どうしても気になるならソース追っかけていけばいいけどCompactFrameworkのソースは公開されてたっけ

5 名前:デフォルトの名無しさん mailto:sage [2009/09/21(月) 18:53:29 ]
>>5ならおっぱい晒します

6 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:11:39 ]
>>4
了解です
そうですよね。何かサーバーからエラーが来てるのかと思いましたが、パケットを調べられる
技量もないのでしばらくこのままで行ってみます

ありがとうございました

ところで、これで取得したメモリストリームからBitmapのインスタンスを生成する部分で
たびたび一般的なGDI+エラーというのが出ます
マルチスレッドでコールバック関数が呼ばれる前にメモリストリームが切断されるとダメという記述があちこちに
みつかり、シリアライズしてからBitmapを生成した方がいいとありますが、
データ長を調べてbyte[]に入れればいいんでしょうか?
それからBitmapを作ればいい?
こういう時の定石なのでしょうか?ご存じの方よろしくお願いします

7 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:21:34 ]
>>6
メモリストリームが切断?
取り敢えずStreamからMemoryStreamに一旦書き込んで、その後はそのMemoryStreamを使う

8 名前:デフォルトの名無しさん [2009/09/22(火) 00:36:07 ]
C#で、変換前(入力中)の文字列を取得することはできますか?
Google検索ボックスのように、
かな文字を入力中に、その文字列でデータセットの検索結果をリアルタイムに表示させたいんです。
よろしくお願いします。

9 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:39:26 ]
>>8
Imm系の API 使えばできるでしょ。

10 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:41:59 ]
>>7
あれ・・・それ今やってることと同じでした

ストリームからByte配列に書き込み
それをメモリストリームに書き込んで
BmpSource = new Bitmap(memorystream);
こうしてるんですが、なぜかストリームのところでなく
この行でGDIのエラーが出るんです

エラーはWebRequest要求の最中にさらに要求を重ねた
場合に起こります
ただし、WebRsponseのストリーム読み出しではなく
GDIで起こります

もしかしたら呼び出し順が狂ってメモリストリームにデーはあるものの
BitMapとしてはデータが壊れてるのかも知れないですね・・・

ちなみにFrameworkは2.0 SP2 です
とりあえずエラーが出たところでダンプしてみます



11 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:46:00 ]
www.stackasterisk.jp/tech/dotNet/csharp08_02.jsp#2_1
上のページを参考に、TcpListener、TcpClientを使って簡単なチャットプログラムを作っています。
TcpListener、TcpClientにローカルIPアドレスとポート番号9999を指定して
1つのパソコン内でメッセージのやり取りはできたのですが、
外部のパソコンとやり取りをするにはIPアドレスとポート番号は具体的にどのように指定すればいいのでしょうか?

WANのIPアドレスでも動作するか試すため、
サーバー側はIPAddress.Anyを使って、ポートは9999
クライアント側は「確認くん」で調べた自分のWANのIPアドレス、ポートは9999を指定して実行すると、
サーバー側は「接続待機中」
クライアント側は「対象のコンピュータによって拒否されたため、接続できませんでした。***.***.***.***:9999」と表示されます。
上と同じように指定して知り合いのパソコンとやり取りをしようとしたのですが、やはりうまくいきませんでした。
説明下手な上に初歩的な質問ですみません。ちなみにファイアウォールは切ってます
回答お願い致します

12 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 00:56:45 ]
>>10
単にスレッドセーフになってないだけじゃ…

13 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:04:45 ]
>>10です
メモリーストリームに複数要求したデータが全部繋がって入ってる感じです
詳しく見てませんが、データの大きさがかなり大きいので間違いないと思います

一回呼び出し 正常表示
71203

5回呼び出し、DGIエラー
75299

同じ画像です

メイン処理クラスからリクエストを送るイベントのたびにスレッドクラスを生成して
そのスレッドクラスの中で非同期にWebRequest処理して
そのクラスの中のコールバックメソッドの中でBitMap処理してます
最後にメイン処理クラスにデリゲートで処理を戻して描画してます
別のインスタンス(のつもり?)のスレッドクラスの中のstaticなメモリストリームに
どんどんデータが入って来てしまうようです・・・
スレッドクラスそのものはstatic宣言してないです

14 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:05:26 ]
>>12
そのようです

15 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:05:52 ]
まず、LAN でできるようになってから WAN で試そうな。

16 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:09:07 ]
staticなMemoryStreamなら当然だろw
レスポンスごとにMemoryStream用意しろ

17 名前:11 mailto:sage [2009/09/22(火) 01:20:14 ]
>>15
LANではうまく(?)いきます
家にある2台のパソコンでチャットはできました

18 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:20:56 ]
>>16
レスポンスをコピーするためにバイト配列を使うのですが、
バイト配列が一杯になったらメモリストリームにコピーする
コールバックメソッドを呼び出して
コールバックメソッド側で再びレスポンス読み込みメソッドを呼ぶ
ということになってるので、staticなMemoryStreamになってます

それで、リクエスト処理を行うクラスをメイン処理クラスからイベントごとに
インスタンス生成しているんですが・・・これがいけないのですかね?

>この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。
>インスタンス メンバの場合は、スレッド セーフであるとは限りません。

とあるのですが、リクエスト処理を行うクラスはインスタンスにしていいかと

とりあえずリクエストクラス内でHttpWebRequestをpublic staticで宣言してみます

19 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:21:53 ]
駄目だコリア

20 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:23:05 ]
そういう相互コールみたいなマネするとデットロックしやすいから構造上避けた方がいいわ…



21 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:27:13 ]
>>17
確認君で、ってことは、ルーター環境? それなら、NAT で
ポート転送設定しないと。

22 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:28:27 ]
わかってないなら、マルチスレッドなんて使わなきゃいいのに。

23 名前:デフォルトの名無しさん [2009/09/22(火) 01:29:46 ]
>>9
shinshu.fm/MHz/95.83/a02138/0000025041.html

のリンクにimmを利用したテキストボックスの定義が記述されているのですが、
どう使えば変換前の文字列を取得できるのかが分かりません。
教えていただけないでしょうか(T_T)。


24 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:30:05 ]
>>19
その通りです public static で宣言したけど駄目でした orz

>>20
そうですね
ヘッダーを調べてデータサイズの大きさのByte配列を用意してみます



タブブラウズは同時にリクエストしてますが、あれはどういう仕組みなんでしょうかねえ・・・
悔しいなぁ
やはり一気に読み込むんでしょうか?

25 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:31:30 ]
>>22
わかろうと努力してるので・・・どうか生暖かく見守ってください ><。。

26 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:31:37 ]
>>23
これ見てわからないなら、あきらめなよ。

27 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:31:48 ]
普通にリクエストするスレッドを複数立ててるだけだろ

28 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:35:36 ]
>>27
メイン処理クラスで

private Thread myThread;

private void ThreadFunction()
{
GoogleRequest myThreadClassObject = new GoogleRequest(this);
myThreadClassObject.GetMap(GSParam);
}

は、やっているんですが・・・すみませんそのこときちんと書いてありませんでした

29 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 01:37:13 ]
しまった コピペする場所間違えました

public void GetMap()
{
myThread = new Thread(new ThreadStart(ThreadFunction));
myThread.Start();
}


30 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 04:29:05 ]
GoogleRequestがstaticのMemoryStream持ってんだろ
駄目に決まってんじゃん

というかstaticの意味分かってるのか



31 名前:デフォルトの名無しさん [2009/09/22(火) 08:46:22 ]
>>23ですが、
このテキストボックスを用いてどこから変換前の文字列を取るのか分からないんです。

32 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 09:32:33 ]
>>30
あーもしかして、スレッドをスタートするときのGoogleRequestインスタンスの中のstaticって共有されるのが常識でしたか
クラスをStaticにしたらシングルトンになると思い込んでたもので・・・

static=静的
でしたっけ?プログラムが終了するまで存続が補償されてるメモリってことですよね?

33 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 09:49:18 ]
起動時に実体を1つだけ生成し、
スコープを抜けても値が保持される

34 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:00:49 ]
静的クラス と シングルトン は全くの別物。
シングルトンをやりたいなら静的クラス メンバを使ってこんな感じで書けばいい。

public class Singleton
{
private static readonly Singleton instance = new Singleton();

private Singleton() {}
public static Singleton GetInstance()
{
return instance;
}
}

35 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:14:43 ]
>>33
するとクラスのインスタンスの中のstatic変数はインスタンス同士で共有されるってことですか


>>34
シングルトンと静的クラスは違いますね
おおざっぱな言い方してすみませんでした



> 静的メンバ
静的なメソッド、フィールド、プロパティ、またはイベントは、クラスのインスタンスが作成されていないときでも
クラスで呼び出すことができます。クラスのインスタンスが作成されている場合は、これらを使用して
静的メンバにアクセスすることはできません。静的フィールドと静的イベントのコピーは 1 つのみ存在し、
静的メソッドと静的プロパティは、静的フィールドと静的イベントにしかアクセスできません。
静的メンバは、多くの場合、オブジェクトの状態に応じて変化しないデータや計算を表すために使用されます。

やっと自分の勘違いがわかりました。
ありがとうございました。

36 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:15:44 ]
>>34
これって別のマシンからコールしてもシングルトンですか?

37 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:20:19 ]
何を言ってるのかね?


38 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:26:41 ]
クラスメンバのメモリストリームのstaticをはずしたらうまくいきました
最初のエラーはクラスメンバのメソッドのの中にstaticでメモリストリームが宣言してありました
これはサンプルのコピーが原因でした
その宣言をstaticのままクラスメンバに移したのが間違いでした
クラスメンバであればクラス内ではグローバル変数のように使えるのでメソッド間でのやりとりに問題は
ないはずなのに安易にstaticを使ってしまいました

見当違いな質問を繰り返してご迷惑おかけしましたが、やっとわかりました
みなさんありがとうございました

39 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:28:10 ]
なんか非同期リクエスト使ってるぽいが、フローが複雑になるしお勧めしないよ。
単に起動したスレッドで普通に同期的に処理することをすすめる。
そうすれば、素直に作ってれば変にstaticで共有してしまったりなんてことは起こらない。

リクエスト自体を非同期でやろうとすると難易度が跳ね上がるし、
実質あまり変わらないから意味もない。
普通は同期リクエストで十分。

40 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 10:41:58 ]
>>39
確かにリスクは大きいですねえ
マルチスレッドで動くダウンローダーのような効率化に挑戦したかったものでつい・・・

アドバイスありがとうございました



41 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:03:36 ]
なんて言うのかな、要は最大限の効率を求めないなら、
普通にスレッド作ったりスレッドプールで処理するだけで十分てこと。

ああ、ただ、非同期リクエストだとキャンセルが可能だったかな。


42 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:30:09 ]
>>41
はい、ふつうならマルチスレッドで同期リクエスト動かせばいいって話ですね!


43 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:42:45 ]
System.IO.Path.GetFileName(path);
とおなじようにURLををファイル名のみゲットしたいです。
かんたんな方法はありますか?
いま考えつくのは、Split('/')で、forでLength-1を取得とかかな〜、と思っているんですが。


44 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:47:08 ]
Path.GetFileNameで十分だと思うが

45 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 11:50:04 ]
クエリ文字列のことを考えるとUriインスタンス作ってLocalPathに対してPath.GetFileNameだな

46 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 12:46:18 ]
パス情報はどうするべきか

47 名前:デフォルトの名無しさん [2009/09/22(火) 13:38:35 ]
メモ帳やエクセルなどで検索するとFocusが検索フォームに在るにもかかわらず
テキストボックスやエクセルシートの検索ワードが選択されて強調表示されますよね?
アレってどうやるんでしょう?
SelectedだとFocusがないので強調表示されませんでした。

48 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 13:45:20 ]
C#の文法的なことではなくて、フォームデザイナの使い方などを簡単にまとめたサイトはありますか?

49 名前:デフォルトの名無しさん [2009/09/22(火) 14:41:26 ]
C# というよりは UNRAR32.dllの質問なのかもしれないが、助けて

[DllImport ("unrar32.dll", CharSet=CharSet.Auto)]
public extern static ushort UnrarGetVersion();

[DllImport ("unrar32.dll", CharSet=CharSet.Auto)]
public extern static int Unrar(IntPtr hWnd, string szCmdLine, string szOutput, uint dwSize);


public static void Main()
{
 System.Console.WriteLine( Decompressor.UnrarGetVersion() ); /* UNRAR32.dllのバージョン 12が返る */
 System.Console.WriteLine( UnrarQueryFunctionList(1)); /* Unrar APIが使えるか。True */
 System.Console.WriteLine(Decompressor.Unrar(IntPtr.Zero, "-x " + @"C:\test.rar", "", 0)); /* ERROR_COMMAND_NAME (0x801C) が返ってくる */
}

コマンドがおかしいって怒られちゃうの。なんで?

50 名前:49 [2009/09/22(火) 14:43:17 ]
何をしたいか書き忘れてますた。
C:\test.rar をただ単に解凍したいだけっす。



51 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 14:59:07 ]
第2・3引数ばLPCSTRなのにCharSet.Autoじゃダメだろ

52 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:01:43 ]
コマンドがおかしいんだろ。

53 名前:49 [2009/09/22(火) 15:06:08 ]
>>51
とっぱらったら出来た。
理由は自分で調べるお。ありがと!

54 名前:49 [2009/09/22(火) 15:10:50 ]
CharSet.Autoにすると、NT系ではunicodeのバイト列としてdllに渡しちゃうってことでおk?

55 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 15:27:15 ]
そう

56 名前:49 [2009/09/22(火) 15:33:47 ]
>>55
ありがとう!

57 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 16:23:11 ]
CharSetオプション書かないとAnsiなのに
AutoだとUnicodeにされるのは1度戸惑ったことあるな

58 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:34:07 ]
そんなので戸惑う?
MSDNに書いてあるまんまで解釈の余地とかないと思うんだけど・・・

59 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 17:57:34 ]
そんな事いったらこのスレいらなくなるだろ。
初心に戻ろうぜ。

60 名前:デフォルトの名無しさん [2009/09/22(火) 19:23:56 ]
親フォームに、publicイベントを記述しました。
その親フォームから呼ばれる別のフォームで、そのイベントを実行するにはどうすればよいでしょうか。
教えてください−−−!!!!!



61 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:30:24 ]
その「別のフォーム」とやらにデリゲート渡しとけばいいじゃん

62 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:32:45 ]
一体何をどうやったら>>60なことになるんだ?

63 名前:デフォルトの名無しさん [2009/09/22(火) 19:34:37 ]
おやからよばれるフォームに親のインスタンス渡してやれば?


64 名前:デフォルトの名無しさん [2009/09/22(火) 19:52:32 ]
ありがとうございます。
具体的には、親に
private void Click(object sender, EventArgs e)
{
MessageBox.Show("またクリックしたの?");
}
を記述しました。

親のボタンを押した先のフォームのボタンコントロールのクリック時に
このイベントを実行させようと思いましたが、
プロパティウィンドウのイベント欄のclickに、
「Click」が表示されません。

どうすればよいのでしょうか。

65 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 19:56:49 ]
答え読んでから書き込め

66 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 20:03:03 ]
なんでもかんでも親Formに書こうとすんなよ

67 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 20:06:27 ]
>>64
>具体的には、親に
(略)
>を記述しました。

それを呼び出す先のフォームに書けばいい。
動くのを確認したらスコープとかアクセス修飾子でググってよ。

68 名前:デフォルトの名無しさん [2009/09/22(火) 20:57:31 ]
すみません。
>>61さんや
>>63さんがおっしゃっていることは具体的にどこに何を記述する必要があるのでしょうか。
privateからpublicにし、
子フォームに親のインスタンスを生成しましたが、
プロパティウィンドウの中にやはりそのイベントハンドラが表示されません。
Desiner.csに直接デリゲートを書き込みしようとしましたが、
thisをnullに置き換えることができませんといったエラーになってしまいます。

69 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:01:37 ]
イライラ

70 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:09:11 ]
どうしても書くとしたらこうかな

public partial class Parent : Form
{
public Parent() {
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e) {
new Child(this.Click).ShowDialog();
}

private void Click(object sender, EventArgs e) {
MessageBox.Show("またクリックしたの?");
}
}

public partial class Child : Form
{
private EventHandler eventHandler;

public Child(EventHandler eventHandler) {
InitializeComponent();

this.eventHandler = eventHandler;
}

private void button1_Click(object sender, EventArgs e) {
this.eventHandler(this, EventArgs.Empty);
}
}



71 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:11:45 ]
private void Click(object sender, EventArgs e)
{
MessageBox.Show("またクリックしたの?");
}

だからなんで上をChildに書くって発想ができないの?
マウスが机から落ちてしまうとか言ってる年寄りにパソコン教えてる気分だわ。

72 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:13:29 ]
OTITSUKEYO…

73 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:13:52 ]
>>70
new Child(this.Click).ShowDialog();



Form child = new Child();
child.Click += this.Click;
child.ShowDialog();

の方がいいな。

74 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:14:38 ]
すまん、ボタンのイベントだったな。>>73は気にしないでくれ。

75 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:15:20 ]
>>71
そうカリカリすんなよ。
お前みたいな短気はこのスレに向いてないぜ?

76 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:15:53 ]
明日で連休終わりと考えると気が立ってくるのさ。

77 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:16:56 ]
明日休出の俺に謝れ

78 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:21:59 ]
カリカリしてる人はスレタイ読んで落ち着いてくれ

79 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:24:50 ]
初心者相手にオレTUEEEしたい人が、なかなかうまく自分の力を見せつけられずイラだっているのです

80 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 21:28:42 ]
カリカリ



81 名前:デフォルトの名無しさん [2009/09/22(火) 22:53:26 ]
>>71
親にたくさん、日付チェックのイベントや数値変換のイベントを書いているんです。
同じロジックを、また子の上に書きたくないんです。

82 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:54:41 ]
親に書かずに、共通クラスに書けばいいだろ・・・

83 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:56:52 ]
とりあえずイベントとメソッドの区別はつけようぜ
どうせ全ての処理はイベントハンドラの中に書かないといけないと思ってるんでしょ

84 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 22:57:30 ]
>>81
どっかにソースうpしろ。
ソースがあった方がみんなアドバイスし易い。

85 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:01:41 ]
たぶん地獄絵図なソースだと思うけど

86 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:05:43 ]
言語がよくわかってないままなんとなくVC#触ってる人って
たいていフォームを複数作ろうとしたら行き詰まるよね

87 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:06:10 ]
VC?

88 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:07:42 ]
MainFrame frm = (MainFrame)this.Parent.Parent.Parent.Parent.Parent;
frm.anotherControl.Handler();

89 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:08:25 ]
イラッ

90 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:11:40 ]
ご先祖様にも程があるな



91 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:36:54 ]
IF文を知らなかった俺はgotoだけでなんとかしたことがあるけど、
今となってはあんな化け物コード自分でも読めない。

92 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:42:56 ]
言語仕様すべて頭に入れてからコード書くってわけにもいかないもんね

93 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:44:19 ]
どうやってgotoで条件分岐するんだろう

94 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:50:39 ]
多分Fortranで算術GOTOじゃね?

95 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:50:53 ]
ON ERROR GOTO

96 名前:デフォルトの名無しさん mailto:sage [2009/09/22(火) 23:57:10 ]
全部デリゲート配列にすれば条件分岐無くせるな

97 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 00:20:21 ]
>>96

State state = new State();
EventDelegate[] events = new EventDelegate[5901234];
・・・
void LoopMain() {
Loop:
events[state.Next]();
goto Loop;
}
・・・
void Event3203289() {
int hoge = state.hoge;
// state.Hoge が <2000、==2000、>2000 で分岐
state.Next = 3203291 + System.Math.Sign(state.Hoge-2000);
}
void Event3203290() {
・・・

ですね。邪悪で素敵w

98 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 00:40:50 ]
うげぇ…w

99 名前:デフォルトの名無しさん [2009/09/23(水) 01:07:44 ]
まじキチ…ユダヤが人工地震を起こすぞ

【緊急情報カクサンよろしく】

ついに来ました。

大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。

友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。

四川地震より大きいのが来る可能性があります。
g★olde★ntam★atama.b★lo★g84.fc2.c★om/

★★★★★危険度MAX★★★★★
★★★★★★★★★★★★★★★★

★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★
★千葉、静岡、東京、関東で大地震が起きる可能性が非常に高くなっています★★★

★★★★★★★★★★★★★★★★
★★★★★危険度MAX★★★★★

警告!連休中の21、22、23日が危ない!かも2
live24.2ch.net/test/read.cgi/eq/1★253494015/
【大気イオン】e-PISCO Part11【また延長】
live24.2ch.net/test/read.cgi/eq/1★252991726/

本当に地震が来たら、犯人は特権階級全員だということ2


100 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 01:20:13 ]
Cの関数ポインタの配列みたいにデリゲート配列使ってみたけど
オーバーヘッドが大きいようで条件分岐版よりも遅かった事がある









[ 続きを読む ] / [ 携帯版 ]

次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<230KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef