09/09/21 17:41:44
このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part44
スレリンク(tech板)
2:デフォルトの名無しさん
09/09/21 17:44:04
-----関連スレ
C#, C♯, C#相談室 Part54
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4
スレリンク(tech板)
----参考サイト
URLリンク(www.google.co.jp)
URLリンク(msdn.microsoft.com)
URLリンク(homepage3.nifty.com)
URLリンク(www.atmarkit.co.jp)
URLリンク(dobon.net)
URLリンク(jeanne.wankuma.com)
URLリンク(www.labasp.net)
3:デフォルトの名無しさん
09/09/21 17:47:31
乙
4:デフォルトの名無しさん
09/09/21 18:49:03
>>前スレ終わり際
フレームワーク内部でcatchされてる例外は深く考えても脳が疲れるだけよ
どうしても気になるならソース追っかけていけばいいけどCompactFrameworkのソースは公開されてたっけ
5:デフォルトの名無しさん
09/09/21 18:53:29
>>5ならおっぱい晒します
6:デフォルトの名無しさん
09/09/22 00:11:39
>>4
了解です
そうですよね。何かサーバーからエラーが来てるのかと思いましたが、パケットを調べられる
技量もないのでしばらくこのままで行ってみます
ありがとうございました
ところで、これで取得したメモリストリームからBitmapのインスタンスを生成する部分で
たびたび一般的なGDI+エラーというのが出ます
マルチスレッドでコールバック関数が呼ばれる前にメモリストリームが切断されるとダメという記述があちこちに
みつかり、シリアライズしてからBitmapを生成した方がいいとありますが、
データ長を調べてbyte[]に入れればいいんでしょうか?
それからBitmapを作ればいい?
こういう時の定石なのでしょうか?ご存じの方よろしくお願いします
7:デフォルトの名無しさん
09/09/22 00:21:34
>>6
メモリストリームが切断?
取り敢えずStreamからMemoryStreamに一旦書き込んで、その後はそのMemoryStreamを使う
8:デフォルトの名無しさん
09/09/22 00:36:07
C#で、変換前(入力中)の文字列を取得することはできますか?
Google検索ボックスのように、
かな文字を入力中に、その文字列でデータセットの検索結果をリアルタイムに表示させたいんです。
よろしくお願いします。
9:デフォルトの名無しさん
09/09/22 00:39:26
>>8
Imm系の API 使えばできるでしょ。
10:デフォルトの名無しさん
09/09/22 00:41:59
>>7
あれ・・・それ今やってることと同じでした
ストリームからByte配列に書き込み
それをメモリストリームに書き込んで
BmpSource = new Bitmap(memorystream);
こうしてるんですが、なぜかストリームのところでなく
この行でGDIのエラーが出るんです
エラーはWebRequest要求の最中にさらに要求を重ねた
場合に起こります
ただし、WebRsponseのストリーム読み出しではなく
GDIで起こります
もしかしたら呼び出し順が狂ってメモリストリームにデーはあるものの
BitMapとしてはデータが壊れてるのかも知れないですね・・・
ちなみにFrameworkは2.0 SP2 です
とりあえずエラーが出たところでダンプしてみます
11:デフォルトの名無しさん
09/09/22 00:46:00
URLリンク(www.stackasterisk.jp)
上のページを参考に、TcpListener、TcpClientを使って簡単なチャットプログラムを作っています。
TcpListener、TcpClientにローカルIPアドレスとポート番号9999を指定して
1つのパソコン内でメッセージのやり取りはできたのですが、
外部のパソコンとやり取りをするにはIPアドレスとポート番号は具体的にどのように指定すればいいのでしょうか?
WANのIPアドレスでも動作するか試すため、
サーバー側はIPAddress.Anyを使って、ポートは9999
クライアント側は「確認くん」で調べた自分のWANのIPアドレス、ポートは9999を指定して実行すると、
サーバー側は「接続待機中」
クライアント側は「対象のコンピュータによって拒否されたため、接続できませんでした。***.***.***.***:9999」と表示されます。
上と同じように指定して知り合いのパソコンとやり取りをしようとしたのですが、やはりうまくいきませんでした。
説明下手な上に初歩的な質問ですみません。ちなみにファイアウォールは切ってます
回答お願い致します
12:デフォルトの名無しさん
09/09/22 00:56:45
>>10
単にスレッドセーフになってないだけじゃ…
13:デフォルトの名無しさん
09/09/22 01:04:45
>>10です
メモリーストリームに複数要求したデータが全部繋がって入ってる感じです
詳しく見てませんが、データの大きさがかなり大きいので間違いないと思います
一回呼び出し 正常表示
71203
5回呼び出し、DGIエラー
75299
同じ画像です
メイン処理クラスからリクエストを送るイベントのたびにスレッドクラスを生成して
そのスレッドクラスの中で非同期にWebRequest処理して
そのクラスの中のコールバックメソッドの中でBitMap処理してます
最後にメイン処理クラスにデリゲートで処理を戻して描画してます
別のインスタンス(のつもり?)のスレッドクラスの中のstaticなメモリストリームに
どんどんデータが入って来てしまうようです・・・
スレッドクラスそのものはstatic宣言してないです
14:デフォルトの名無しさん
09/09/22 01:05:26
>>12
そのようです
15:デフォルトの名無しさん
09/09/22 01:05:52
まず、LAN でできるようになってから WAN で試そうな。
16:デフォルトの名無しさん
09/09/22 01:09:07
staticなMemoryStreamなら当然だろw
レスポンスごとにMemoryStream用意しろ
17:11
09/09/22 01:20:14
>>15
LANではうまく(?)いきます
家にある2台のパソコンでチャットはできました
18:デフォルトの名無しさん
09/09/22 01:20:56
>>16
レスポンスをコピーするためにバイト配列を使うのですが、
バイト配列が一杯になったらメモリストリームにコピーする
コールバックメソッドを呼び出して
コールバックメソッド側で再びレスポンス読み込みメソッドを呼ぶ
ということになってるので、staticなMemoryStreamになってます
それで、リクエスト処理を行うクラスをメイン処理クラスからイベントごとに
インスタンス生成しているんですが・・・これがいけないのですかね?
>この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。
>インスタンス メンバの場合は、スレッド セーフであるとは限りません。
とあるのですが、リクエスト処理を行うクラスはインスタンスにしていいかと
とりあえずリクエストクラス内でHttpWebRequestをpublic staticで宣言してみます
19:デフォルトの名無しさん
09/09/22 01:21:53
駄目だコリア
20:デフォルトの名無しさん
09/09/22 01:23:05
そういう相互コールみたいなマネするとデットロックしやすいから構造上避けた方がいいわ…
21:デフォルトの名無しさん
09/09/22 01:27:13
>>17
確認君で、ってことは、ルーター環境? それなら、NAT で
ポート転送設定しないと。
22:デフォルトの名無しさん
09/09/22 01:28:27
わかってないなら、マルチスレッドなんて使わなきゃいいのに。
23:デフォルトの名無しさん
09/09/22 01:29:46
>>9
URLリンク(shinshu.fm)
のリンクにimmを利用したテキストボックスの定義が記述されているのですが、
どう使えば変換前の文字列を取得できるのかが分かりません。
教えていただけないでしょうか(T_T)。
24:デフォルトの名無しさん
09/09/22 01:30:05
>>19
その通りです public static で宣言したけど駄目でした orz
>>20
そうですね
ヘッダーを調べてデータサイズの大きさのByte配列を用意してみます
タブブラウズは同時にリクエストしてますが、あれはどういう仕組みなんでしょうかねえ・・・
悔しいなぁ
やはり一気に読み込むんでしょうか?
25:デフォルトの名無しさん
09/09/22 01:31:30
>>22
わかろうと努力してるので・・・どうか生暖かく見守ってください ><。。
26:デフォルトの名無しさん
09/09/22 01:31:37
>>23
これ見てわからないなら、あきらめなよ。
27:デフォルトの名無しさん
09/09/22 01:31:48
普通にリクエストするスレッドを複数立ててるだけだろ
28:デフォルトの名無しさん
09/09/22 01:35:36
>>27
メイン処理クラスで
private Thread myThread;
private void ThreadFunction()
{
GoogleRequest myThreadClassObject = new GoogleRequest(this);
myThreadClassObject.GetMap(GSParam);
}
は、やっているんですが・・・すみませんそのこときちんと書いてありませんでした
29:デフォルトの名無しさん
09/09/22 01:37:13
しまった コピペする場所間違えました
public void GetMap()
{
myThread = new Thread(new ThreadStart(ThreadFunction));
myThread.Start();
}
30:デフォルトの名無しさん
09/09/22 04:29:05
GoogleRequestがstaticのMemoryStream持ってんだろ
駄目に決まってんじゃん
というかstaticの意味分かってるのか
31:デフォルトの名無しさん
09/09/22 08:46:22
>>23ですが、
このテキストボックスを用いてどこから変換前の文字列を取るのか分からないんです。
32:デフォルトの名無しさん
09/09/22 09:32:33
>>30
あーもしかして、スレッドをスタートするときのGoogleRequestインスタンスの中のstaticって共有されるのが常識でしたか
クラスをStaticにしたらシングルトンになると思い込んでたもので・・・
static=静的
でしたっけ?プログラムが終了するまで存続が補償されてるメモリってことですよね?
33:デフォルトの名無しさん
09/09/22 09:49:18
起動時に実体を1つだけ生成し、
スコープを抜けても値が保持される
34:デフォルトの名無しさん
09/09/22 10:00:49
静的クラス と シングルトン は全くの別物。
シングルトンをやりたいなら静的クラス メンバを使ってこんな感じで書けばいい。
public class Singleton
{
private static readonly Singleton instance = new Singleton();
private Singleton() {}
public static Singleton GetInstance()
{
return instance;
}
}
35:デフォルトの名無しさん
09/09/22 10:14:43
>>33
するとクラスのインスタンスの中のstatic変数はインスタンス同士で共有されるってことですか
>>34
シングルトンと静的クラスは違いますね
おおざっぱな言い方してすみませんでした
> 静的メンバ
静的なメソッド、フィールド、プロパティ、またはイベントは、クラスのインスタンスが作成されていないときでも
クラスで呼び出すことができます。クラスのインスタンスが作成されている場合は、これらを使用して
静的メンバにアクセスすることはできません。静的フィールドと静的イベントのコピーは 1 つのみ存在し、
静的メソッドと静的プロパティは、静的フィールドと静的イベントにしかアクセスできません。
静的メンバは、多くの場合、オブジェクトの状態に応じて変化しないデータや計算を表すために使用されます。
やっと自分の勘違いがわかりました。
ありがとうございました。
36:デフォルトの名無しさん
09/09/22 10:15:44
>>34
これって別のマシンからコールしてもシングルトンですか?
37:デフォルトの名無しさん
09/09/22 10:20:19
何を言ってるのかね?
38:デフォルトの名無しさん
09/09/22 10:26:41
クラスメンバのメモリストリームのstaticをはずしたらうまくいきました
最初のエラーはクラスメンバのメソッドのの中にstaticでメモリストリームが宣言してありました
これはサンプルのコピーが原因でした
その宣言をstaticのままクラスメンバに移したのが間違いでした
クラスメンバであればクラス内ではグローバル変数のように使えるのでメソッド間でのやりとりに問題は
ないはずなのに安易にstaticを使ってしまいました
見当違いな質問を繰り返してご迷惑おかけしましたが、やっとわかりました
みなさんありがとうございました
39:デフォルトの名無しさん
09/09/22 10:28:10
なんか非同期リクエスト使ってるぽいが、フローが複雑になるしお勧めしないよ。
単に起動したスレッドで普通に同期的に処理することをすすめる。
そうすれば、素直に作ってれば変にstaticで共有してしまったりなんてことは起こらない。
リクエスト自体を非同期でやろうとすると難易度が跳ね上がるし、
実質あまり変わらないから意味もない。
普通は同期リクエストで十分。
40:デフォルトの名無しさん
09/09/22 10:41:58
>>39
確かにリスクは大きいですねえ
マルチスレッドで動くダウンローダーのような効率化に挑戦したかったものでつい・・・
アドバイスありがとうございました
41:デフォルトの名無しさん
09/09/22 11:03:36
なんて言うのかな、要は最大限の効率を求めないなら、
普通にスレッド作ったりスレッドプールで処理するだけで十分てこと。
ああ、ただ、非同期リクエストだとキャンセルが可能だったかな。
42:デフォルトの名無しさん
09/09/22 11:30:09
>>41
はい、ふつうならマルチスレッドで同期リクエスト動かせばいいって話ですね!
43:デフォルトの名無しさん
09/09/22 11:42:45
System.IO.Path.GetFileName(path);
とおなじようにURLををファイル名のみゲットしたいです。
かんたんな方法はありますか?
いま考えつくのは、Split('/')で、forでLength-1を取得とかかな~、と思っているんですが。
44:デフォルトの名無しさん
09/09/22 11:47:08
Path.GetFileNameで十分だと思うが
45:デフォルトの名無しさん
09/09/22 11:50:04
クエリ文字列のことを考えるとUriインスタンス作ってLocalPathに対してPath.GetFileNameだな
46:デフォルトの名無しさん
09/09/22 12:46:18
パス情報はどうするべきか
47:デフォルトの名無しさん
09/09/22 13:38:35
メモ帳やエクセルなどで検索するとFocusが検索フォームに在るにもかかわらず
テキストボックスやエクセルシートの検索ワードが選択されて強調表示されますよね?
アレってどうやるんでしょう?
SelectedだとFocusがないので強調表示されませんでした。
48:デフォルトの名無しさん
09/09/22 13:45:20
C#の文法的なことではなくて、フォームデザイナの使い方などを簡単にまとめたサイトはありますか?
49:デフォルトの名無しさん
09/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
09/09/22 14:43:17
何をしたいか書き忘れてますた。
C:\test.rar をただ単に解凍したいだけっす。
51:デフォルトの名無しさん
09/09/22 14:59:07
第2・3引数ばLPCSTRなのにCharSet.Autoじゃダメだろ
52:デフォルトの名無しさん
09/09/22 15:01:43
コマンドがおかしいんだろ。
53:49
09/09/22 15:06:08
>>51
とっぱらったら出来た。
理由は自分で調べるお。ありがと!
54:49
09/09/22 15:10:50
CharSet.Autoにすると、NT系ではunicodeのバイト列としてdllに渡しちゃうってことでおk?
55:デフォルトの名無しさん
09/09/22 15:27:15
そう
56:49
09/09/22 15:33:47
>>55
ありがとう!
57:デフォルトの名無しさん
09/09/22 16:23:11
CharSetオプション書かないとAnsiなのに
AutoだとUnicodeにされるのは1度戸惑ったことあるな
58:デフォルトの名無しさん
09/09/22 17:34:07
そんなので戸惑う?
MSDNに書いてあるまんまで解釈の余地とかないと思うんだけど・・・
59:デフォルトの名無しさん
09/09/22 17:57:34
そんな事いったらこのスレいらなくなるだろ。
初心に戻ろうぜ。
60:デフォルトの名無しさん
09/09/22 19:23:56
親フォームに、publicイベントを記述しました。
その親フォームから呼ばれる別のフォームで、そのイベントを実行するにはどうすればよいでしょうか。
教えてください---!!!!!
61:デフォルトの名無しさん
09/09/22 19:30:24
その「別のフォーム」とやらにデリゲート渡しとけばいいじゃん
62:デフォルトの名無しさん
09/09/22 19:32:45
一体何をどうやったら>>60なことになるんだ?
63:デフォルトの名無しさん
09/09/22 19:34:37
おやからよばれるフォームに親のインスタンス渡してやれば?
64:デフォルトの名無しさん
09/09/22 19:52:32
ありがとうございます。
具体的には、親に
private void Click(object sender, EventArgs e)
{
MessageBox.Show("またクリックしたの?");
}
を記述しました。
親のボタンを押した先のフォームのボタンコントロールのクリック時に
このイベントを実行させようと思いましたが、
プロパティウィンドウのイベント欄のclickに、
「Click」が表示されません。
どうすればよいのでしょうか。
65:デフォルトの名無しさん
09/09/22 19:56:49
答え読んでから書き込め
66:デフォルトの名無しさん
09/09/22 20:03:03
なんでもかんでも親Formに書こうとすんなよ
67:デフォルトの名無しさん
09/09/22 20:06:27
>>64
>具体的には、親に
(略)
>を記述しました。
それを呼び出す先のフォームに書けばいい。
動くのを確認したらスコープとかアクセス修飾子でググってよ。
68:デフォルトの名無しさん
09/09/22 20:57:31
すみません。
>>61さんや
>>63さんがおっしゃっていることは具体的にどこに何を記述する必要があるのでしょうか。
privateからpublicにし、
子フォームに親のインスタンスを生成しましたが、
プロパティウィンドウの中にやはりそのイベントハンドラが表示されません。
Desiner.csに直接デリゲートを書き込みしようとしましたが、
thisをnullに置き換えることができませんといったエラーになってしまいます。
69:デフォルトの名無しさん
09/09/22 21:01:37
イライラ
70:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/09/22 21:11:45
private void Click(object sender, EventArgs e)
{
MessageBox.Show("またクリックしたの?");
}
だからなんで上をChildに書くって発想ができないの?
マウスが机から落ちてしまうとか言ってる年寄りにパソコン教えてる気分だわ。
72:デフォルトの名無しさん
09/09/22 21:13:29
OTITSUKEYO…
73:デフォルトの名無しさん
09/09/22 21:13:52
>>70
new Child(this.Click).ShowDialog();
は
Form child = new Child();
child.Click += this.Click;
child.ShowDialog();
の方がいいな。
74:デフォルトの名無しさん
09/09/22 21:14:38
すまん、ボタンのイベントだったな。>>73は気にしないでくれ。
75:デフォルトの名無しさん
09/09/22 21:15:20
>>71
そうカリカリすんなよ。
お前みたいな短気はこのスレに向いてないぜ?
76:デフォルトの名無しさん
09/09/22 21:15:53
明日で連休終わりと考えると気が立ってくるのさ。
77:デフォルトの名無しさん
09/09/22 21:16:56
明日休出の俺に謝れ
78:デフォルトの名無しさん
09/09/22 21:21:59
カリカリしてる人はスレタイ読んで落ち着いてくれ
79:デフォルトの名無しさん
09/09/22 21:24:50
初心者相手にオレTUEEEしたい人が、なかなかうまく自分の力を見せつけられずイラだっているのです
80:デフォルトの名無しさん
09/09/22 21:28:42
カリカリ
81:デフォルトの名無しさん
09/09/22 22:53:26
>>71
親にたくさん、日付チェックのイベントや数値変換のイベントを書いているんです。
同じロジックを、また子の上に書きたくないんです。
82:デフォルトの名無しさん
09/09/22 22:54:41
親に書かずに、共通クラスに書けばいいだろ・・・
83:デフォルトの名無しさん
09/09/22 22:56:52
とりあえずイベントとメソッドの区別はつけようぜ
どうせ全ての処理はイベントハンドラの中に書かないといけないと思ってるんでしょ
84:デフォルトの名無しさん
09/09/22 22:57:30
>>81
どっかにソースうpしろ。
ソースがあった方がみんなアドバイスし易い。
85:デフォルトの名無しさん
09/09/22 23:01:41
たぶん地獄絵図なソースだと思うけど
86:デフォルトの名無しさん
09/09/22 23:05:43
言語がよくわかってないままなんとなくVC#触ってる人って
たいていフォームを複数作ろうとしたら行き詰まるよね
87:デフォルトの名無しさん
09/09/22 23:06:10
VC?
88:デフォルトの名無しさん
09/09/22 23:07:42
MainFrame frm = (MainFrame)this.Parent.Parent.Parent.Parent.Parent;
frm.anotherControl.Handler();
89:デフォルトの名無しさん
09/09/22 23:08:25
イラッ
90:デフォルトの名無しさん
09/09/22 23:11:40
ご先祖様にも程があるな
91:デフォルトの名無しさん
09/09/22 23:36:54
IF文を知らなかった俺はgotoだけでなんとかしたことがあるけど、
今となってはあんな化け物コード自分でも読めない。
92:デフォルトの名無しさん
09/09/22 23:42:56
言語仕様すべて頭に入れてからコード書くってわけにもいかないもんね
93:デフォルトの名無しさん
09/09/22 23:44:19
どうやってgotoで条件分岐するんだろう
94:デフォルトの名無しさん
09/09/22 23:50:39
多分Fortranで算術GOTOじゃね?
95:デフォルトの名無しさん
09/09/22 23:50:53
ON ERROR GOTO
96:デフォルトの名無しさん
09/09/22 23:57:10
全部デリゲート配列にすれば条件分岐無くせるな
97:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/09/23 00:40:50
うげぇ…w
99:デフォルトの名無しさん
09/09/23 01:07:44
まじキチ…ユダヤが人工地震を起こすぞ
【緊急情報カクサンよろしく】
ついに来ました。
大きい動きです。250nT超えてきました。ほぼ間違いありません。もう一度言います。
友人、知人、親類縁者、あらゆるつながりを駆使して巨大地震がくることを教えて下さい。
四川地震より大きいのが来る可能性があります。
URLリンク(g)<)★253494015/
【大気イオン】e-PISCO Part11【また延長】
スレリンク(eq板)★252991726/
本当に地震が来たら、犯人は特権階級全員だということ2
100:デフォルトの名無しさん
09/09/23 01:20:13
Cの関数ポインタの配列みたいにデリゲート配列使ってみたけど
オーバーヘッドが大きいようで条件分岐版よりも遅かった事がある
101:デフォルトの名無しさん
09/09/23 10:40:45
>>99
ボキュはマジキチでしゅ、まで読んだ。
102:デフォルトの名無しさん
09/09/23 14:24:10
>>47をおねがいします。
メモ帳などがFocusを持たずに選択状態を描画している仕組みが
どうしてもわかりません><
103:デフォルトの名無しさん
09/09/23 14:35:44
>>102
リファレンスでHに関係するモノを調べるといいと思うよ。
104:デフォルトの名無しさん
09/09/23 14:37:02
エッチ///
105:デフォルトの名無しさん
09/09/23 14:41:31
>>102
HideSelectionをFalseじゃないの?
106:デフォルトの名無しさん
09/09/23 15:52:02
>>103
>>105
うほっ!ありがとう!
107:デフォルトの名無しさん
09/09/23 16:34:29
マルチかよ
108:デフォルトの名無しさん
09/09/23 18:46:01
はじめまして。けん一と申します。
文字列を選択しているときに、濃青色に反転しますが、
この色を変えることは可能でしょうか?
109:デフォルトの名無しさん
09/09/23 18:49:54
デザイナのプロパティウィンドウを見ろよけんいち
110:デフォルトの名無しさん
09/09/23 18:50:38
無理。
111:デフォルトの名無しさん
09/09/23 20:13:21
,.――-、
ヽ / ̄ ̄ ̄`ヽ、
| | (・)。(・)|
| |@_,.--、_,>
ヽヽ___ノ あきらめるでござる
112:デフォルトの名無しさん
09/09/23 20:46:21
ケンイチ殿wwwwwwwwwww
113:デフォルトの名無しさん
09/09/23 20:50:19
ケンイチ氏な
114:デフォルトの名無しさん
09/09/23 22:33:24
C#で、DonutRAPTのタブバーのような機能ってあるのでしょうか?
URLリンク(up3.viploader.net)
115:デフォルトの名無しさん
09/09/23 22:36:41
フラットスタイルのタブ?
116:デフォルトの名無しさん
09/09/23 22:49:08
>>114
少なくともGUI部品としてのlook&feelはToolStripButtonで同じことができるんじゃない?
っていうか、なんか10年前のGUIだなそれ
117:デフォルトの名無しさん
09/09/23 22:50:12
ToolStrip使うことになるかな
それただのReBarに配置されたボタンだし
118:デフォルトの名無しさん
09/09/23 22:51:45
ツールストリップにボタン置いてくだけじゃね?
119:デフォルトの名無しさん
09/09/23 23:09:56
tabControlでのフラットボタンの、選択した時と同じ見た目にする手段か、タブバーそのものの機能があればと思っていたのですが、
やはりtoolStripにボタンを配置させて、タブと同じような制御をさせる方法しかないようですね。
ご回答ありがとうございました。
120:デフォルトの名無しさん
09/09/24 00:45:55
クラスを作る側なんですが、メソッドの引数がXXXだった場合は○○○例外を投げる
みたいな一覧というかガイドラインはどこかにないでしょうか?
.NET Frameworkに定義済みの例外がたくさんあって、どれが適切か毎回悩んでしまいます。
121:デフォルトの名無しさん
09/09/24 01:14:48
>>120
URLリンク(msdn.microsoft.com)
122:デフォルトの名無しさん
09/09/24 01:25:57
>>109
けん一です。
皆さんお返事ありがとうございます。
選択色のプロパティウインドウにありますか??
123:デフォルトの名無しさん
09/09/24 01:26:55
>>121
ありがとうございます。そこを参考にして設計してみます。
124:デフォルトの名無しさん
09/09/24 02:40:16
>>120
Argument派生、InvalidOp、NotSupported、NotImpl以外は殆ど使わない気がする
125:デフォルトの名無しさん
09/09/24 08:50:37
確かに
つかほとんどArgument
126:デフォルトの名無しさん
09/09/24 10:03:49
オブジェクトをディープコピーしたいとき
GetCloneメソッドを定義してごりごり書くのと
シリアライズしてコピーを作るのと方法がありますが
オブジェクトには10個のプロパティと
ジェネリックリストが3つ入ってます
どっちがいいでしょうか?
127:デフォルトの名無しさん
09/09/24 14:11:52
好きなほう使えば?
128:デフォルトの名無しさん
09/09/24 14:13:39
すみません。質問です。
System.Net.WebClient.DownloadData()を実行するときに
ノートンやウイルスバスターなどのセキュリティソフトの
FWの影響を受けることはありますか?
うける場合どういう対処を取るのが定石ですか?
129:デフォルトの名無しさん
09/09/24 14:15:26
FWで止められたらそのソフトの通信を許可してやれば良い
130:デフォルトの名無しさん
09/09/24 14:37:10
影響受けなきゃただの役立たずじゃねーか
131:デフォルトの名無しさん
09/09/24 14:52:11
ウィルスソフト作らないでください
132:デフォルトの名無しさん
09/09/24 14:54:06
>>130
ワロタw
133:デフォルトの名無しさん
09/09/24 18:53:52
質問です。
asp.netで 複数のページ(.aspx)が定義してあります。
これらを直接呼ばずにHome.aspxという窓口を準備しておいて、
ActionというQueryStringで判断し、
Response.RedirectかServer.Transferで
対象のページに飛ばそうと思っています。
Home.aspx内でRequerst.QueryStringのコレクションをそのまま遷移先のページへ渡したいのですが
どうすればいいのかわかりません。
遷移先のURLに直接記述するしかないのでしょうか?
134:デフォルトの名無しさん
09/09/24 19:45:36
お勧めの文献教えてたもれ
135:デフォルトの名無しさん
09/09/24 20:09:53
今見てるんだけど文法からはじめるVisualC#入門って分かりやすい
かなり初心者向けだけどね
136:デフォルトの名無しさん
09/09/24 21:08:20
>>133
セッションにでも突っ込んで渡せば?
137:デフォルトの名無しさん
09/09/24 21:52:22
商品販売管理システムを作っている。
顧客、商品の項目にフリガナを自動入力させられたら利便性が高くなるだろうと頑張った。
いろいろ調べて、自動でフリガナが入るようになった。
しかし(-_-;)。
タブやシフトタブで項目をいったり来たりしていたら、
顧客に自動で入ったフリガナがなぜか商品のフリガナ欄に表示されたではないか。
これはたまに起こる現象であり、同じ操作をしても出ない場合がある。
APIを活用しているらしいが、なぜだか分かる?
教えてちょ
(-_-;)。
138:デフォルトの名無しさん
09/09/24 21:53:45
どんなコード書いてるかもわからずに考えろと?
バカじゃねーの?
139:デフォルトの名無しさん
09/09/24 22:03:23
知らないなら黙っててください。
140:デフォルトの名無しさん
09/09/24 22:07:06
コードが悪いんだろハゲ
141:デフォルトの名無しさん
09/09/24 22:18:33
>>135
これかな?
URLリンク(www.e-hon.ne.jp)
明日本屋回ってみる。
他文献引き続きぷりーず
142:デフォルトの名無しさん
09/09/24 22:39:07
>>137
なぜ起こるのか?簡単すぐる
143:デフォルトの名無しさん
09/09/24 22:51:48
>>139
APIスレから出てくんな
144:デフォルトの名無しさん
09/09/24 22:52:50
>>134
C# の本ではないけど。
自分は C++ MFC から C++/CLI に移った時に使った本。近い感じならいけるかも。
C++/CLI がわかれば C# もほとんどなんとかなる。
※移行の際に参照した本はこれ一冊
実践C++/CLI 極めるための基礎と実用テクニック
145:デフォルトの名無しさん
09/09/24 23:24:20
>>144
それはちょっと敷居が高そうです><
146:デフォルトの名無しさん
09/09/24 23:26:11
C#から他のアプリを起動させているんですが、タスクバーには表示させたくないので
ProcessWindowStyle.HiddenでProcess.Startしてみたところ
タスクバーに表示されなくなったのはいいのですが
Process.CloseMainWindow()が使えなかったり期待外の動作でNGでした。
NaiNai(URLリンク(www.vector.co.jp))のように
他のアプリをタスクバーに表示させないようにするにはどうやるんでしょうか?
147:デフォルトの名無しさん
09/09/24 23:56:05
>>146
普通に起動して、ITaskbar インターフェイスを利用して消す。
148:デフォルトの名無しさん
09/09/25 00:02:59
>>142
なぜなの?教えてください。
149:デフォルトの名無しさん
09/09/25 00:04:22
バグがあるから。
150:デフォルトの名無しさん
09/09/25 00:04:39
>>147
ありがとうございます。
ITaskbarList がそれですかね?
調べてみます。
151:デフォルトの名無しさん
09/09/25 00:13:48
>>150
それそれ。間違えてた。すまん。
152:デフォルトの名無しさん
09/09/25 01:19:14
教えてください。
本当に困っています。
どうすればよいでしょうか?
153:デフォルトの名無しさん
09/09/25 01:20:20
死ね
154:デフォルトの名無しさん
09/09/25 01:25:15
解決しました
ありがとうございます
155:デフォルトの名無しさん
09/09/25 03:05:49
テキストボックスの枠の色はどうやって取得すればいいですか?
アプリケーション定義のコントロールで使いたいんですが、できれば決めうちでしたくないので。
156:デフォルトの名無しさん
09/09/25 10:39:48
入力された文字列が正しいかヴァリデーションしたいのですけれど、
Parseとかでチェックして良いのでしょうか?CF3.5です。
try
{
int tmp = Int32.Parse(string_num);
}
catch
{
}
こう書いて、tmpがどこからも参照されない場合、
リリースビルドで最適化によって上記ロジック自体が消えたりします?
157:デフォルトの名無しさん
09/09/25 10:47:02
それ消すのは過剰な最適化だな
つかcatchして何もしない、tmpも使わない、ならValidationにならない気がするが
しかしTryParseがないとは面倒だのう
158:デフォルトの名無しさん
09/09/25 10:50:24
すみません。catchの中ではエラーメッセージを生成します。
起動時に全ての入力を一括チェックする方法だと、
tmpは特に使わない感じになると思うのですが。
例えば、App.configの中身を精査するみたいな。
まぁ、ConfigurationManagerも無いので作るのですが‥‥
159:デフォルトの名無しさん
09/09/25 11:21:55
Int32.Parse(string_num);
だけで良いんじゃないか
160:デフォルトの名無しさん
09/09/25 11:24:32
asyncCallってなんて読むの? えーしんくこーる?
161:デフォルトの名無しさん
09/09/25 11:37:53
>>159
たしかに試してみたらその通りでした。
パース文を2か所に書きたくなかったので、
int tmp = 設定クラスのプロパティ
にしていたんですけれど、この場合はプロパティだけだと
エラーになるので‥‥
プロパティが呼ばれるたびにParseせずに内部で保持しろ
という気もするのですが、
どうせ数回しか参照されない値の場合、
内部で保持するほどのものでもないかなと‥‥
162:デフォルトの名無しさん
09/09/25 11:39:42
>>160
Ajax をアジャックスと読むならアシンク、エイジャックスと読むならエイジャックスと読めばいいと思うよ。
好みの問題。
163:デフォルトの名無しさん
09/09/25 11:40:44
> エイジャックスと読むならエイジャックスと読めば
エイジャックスと読むならエイシンクと読めば、の間違い。
164:デフォルトの名無しさん
09/09/25 13:09:02
>>160
英語発音ならエイシンクですな。
165:デフォルトの名無しさん
09/09/25 13:14:10
エイシンクロナス?
アシンクロナス?
166:デフォルトの名無しさん
09/09/25 14:22:09
だから、英語圏人ならエイシンクロナス。
日本人ならアシンクと言う人は沢山いる。
167:デフォルトの名無しさん
09/09/25 16:49:56
>英語圏人ならエイシンクロナス。
ダウト
168:デフォルトの名無しさん
09/09/25 16:51:36
まあこれ以上はこっちでやってくれ
nullをヌルと言う人って何なの?
スレリンク(tech板)
169:デフォルトの名無しさん
09/09/25 16:56:12
this.TopMost = true;
の逆で、いつも背面に表示したいのはどうやるの?
170:デフォルトの名無しさん
09/09/25 17:28:10
>>165
どっちでもいい
171:デフォルトの名無しさん
09/09/25 17:29:50
>>169
他のをTopMost
172:デフォルトの名無しさん
09/09/25 17:30:11
どなたか155わからないでしょうか。
173:デフォルトの名無しさん
09/09/25 17:46:02
>>171
IEやエクスプローラもあるから、それはちょっと無理です…。
174:デフォルトの名無しさん
09/09/25 17:48:32
>>173
可能です
175:デフォルトの名無しさん
09/09/25 17:56:39
>>174
え!? 自分で作ったプログラム以外をTopMostにできるんですか?
176:デフォルトの名無しさん
09/09/25 18:06:34
たった今いいことあった!
マックのドライブスルーから帰ってくると、家の車の下にネコ発見!
あれ、うちのネコじゃないなあ・・・でもどっかでみたことあるな・・・
と思い、車の下を覗き込みと逃げずにこっちをみている
まさかと思い、1年くらい前に野良猫に追いかけられ行方不明になった猫の名前を呼んでみた
すると・・・「にゃ~ん」と甘えた声が!
すっごく弱虫で甘えん坊なそいつが1年も生きていたなんて・・・
名前を呼んだら、ビクビクしながらこっちに寄ってきて、身体を撫でたらビクっとしてまた車の下に隠れようとしたけれど
何度も何度も名前を呼んで声かけたらにゃ~んにゃ~んと寄ってきて頭を撫でさせてくれた
ものすごいガリガリに痩せてたけど、抱き上げると前と変わらず、頭をすりつけて甘えてくる
もう絶対死んだと思ったけど、本当によかった!
177:デフォルトの名無しさん
09/09/25 18:42:45
どこの誤爆だ。w
でもよかったと言っておこう。
178:デフォルトの名無しさん
09/09/25 19:12:10
コピペ
179:デフォルトの名無しさん
09/09/25 19:31:53
質問です。
今、webブラウザ(?) を作ろうとしています。
テキストボックスにURLを入れてボタンをおしてページに飛ぶのは出来たのですが、
今みているページのURLをテキストボックスに入れることが出来ません。
IEみたいに、ページのURLを表示する事は出来ませんか?
180:デフォルトの名無しさん
09/09/25 19:35:02
WebBrowser.Document.Url
181:デフォルトの名無しさん
09/09/25 20:07:12
>>169
デスクトップの子供にする
>>171
SystemColors のメンバにいない?
182:デフォルトの名無しさん
09/09/25 23:54:27
>>175
WndProc をオーバーライドして
Zオーダが変わりそうになったら
Zオーダを最背面にしちゃえばよかったはず
183:デフォルトの名無しさん
09/09/26 00:00:25
>>181
> デスクトップの子供にする
これ詳しく頼む
184:デフォルトの名無しさん
09/09/26 00:07:20
認知偽装というやつか
185:デフォルトの名無しさん
09/09/26 00:12:15
ドライブスルーに使った車と、下にネコのいた車とは別なのだろうか
同じ車だとしたら、車庫入れの際にネコが轢かれなくて良かった
186:デフォルトの名無しさん
09/09/26 00:52:38
>>181
(0x7f, 0x9d, 0xb9)とSystemColorsのメンバとすべて比較してみましたが、いずれも違いました。
187:デフォルトの名無しさん
09/09/26 01:19:44
ある場所に自動で入れたフリガナが、
全く別の項目のフリガナに入っちゃうってどういうことよ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
188:デフォルトの名無しさん
09/09/26 01:35:45
うるせーよ馬鹿
189:デフォルトの名無しさん
09/09/26 01:35:52
だあらぁぁぁ、どっかでそのコントロールに入れてるんだよ君が!!!!!!!
190:デフォルトの名無しさん
09/09/26 03:36:29
TextBox継承してTextプロパティ上書きしたコントロールにでも置き替えてブレークポイント貼ってみろ
191:デフォルトの名無しさん
09/09/26 07:20:05
>>183
SetParent(GetDesktopWindow()); だったかな。
192:デフォルトの名無しさん
09/09/26 09:15:02
>>190
なんでそんなことするの?
継承とフリガナに関連性があるの
(*_*)?
193:デフォルトの名無しさん
09/09/26 09:31:27
>>192
死ねよハゲ
194:デフォルトの名無しさん
09/09/26 10:04:01
>>193
うんこ野郎
195:デフォルトの名無しさん
09/09/26 10:14:02
デバッグ放棄するならプログラム向いてない
もう辞めた方がいい
196:デフォルトの名無しさん
09/09/26 10:34:50
ポインタや、参照といったことから、可能性を追求できるぐらいの知能は必要。
>>192
イベントを取得して、どっから送られてきたかとか、確かめることができる。
それをやれって言ってくれてる親切な人だぞ。
197:デフォルトの名無しさん
09/09/26 10:41:13
バカには何を言っても無駄。
198:デフォルトの名無しさん
09/09/26 10:43:20
このゴミ虫殺せよ
199:デフォルトの名無しさん
09/09/26 10:47:20
>>186
そりゃ残念。あとは、実際に描画して取得するくらいかね。
200:デフォルトの名無しさん
09/09/26 10:56:07
>>196
あほかww
201:デフォルトの名無しさん
09/09/26 13:16:44
とんでもない無能っぷりだな
もうほっとけよ
202:デフォルトの名無しさん
09/09/26 14:23:32
>>196が心配なのでTextChanged
203:デフォルトの名無しさん
09/09/26 15:46:06
ACCESSのmdbをC#で読み書きするプログラムを作ったんですよ。
で、ACCESSが入ってない環境で動かせるかどうか確かめたら、
OleDbPermissionのアクセス許可に失敗したようなエラーが出ました。
mdbってACCESSはいってなくなてもC#で操作できるんだよね??
アクセス許可に失敗ってどういうこと?
ACCESSが入ってる環境だと問題なく動くんですが…
誰かアドバイスください。
204:デフォルトの名無しさん
09/09/26 15:53:22
MDAC が必要。
205:デフォルトの名無しさん
09/09/26 16:01:51
>>203
ACCESSつかってcdbを読み書きするプログラムだったら
ACCESS入ってないと無理なのでは?
初心者なので間違ってたらすいません。
206:デフォルトの名無しさん
09/09/26 16:07:12
>>205
そんな事ないんじゃね?
DVD管理ソフトがC#で書かれているのがあったけど
ACCESS入って無くても読み書きできたぞ
もちろんACCESSから読む事もできる
207:デフォルトの名無しさん
09/09/26 16:14:23
>204
MDAC自体は入ってるようなんですが…
208:デフォルトの名無しさん
09/09/26 16:21:29
おまえそれネットワーク共有とかから実行してないだろうな。
209:横から
09/09/26 16:45:36
>>208
俺も詳しくないんで確認だけど、それはイントラネットのネットワーク共有ドライブ
(例えばK:)にある実行アプリを実行しているのではないか、という意味だよね。
mdbファイルはどこにあってもアプリに部分信頼以上の権限があればいい、
という認識でOK? (MDACのバージョンによっては完全信頼)
210:デフォルトの名無しさん
09/09/26 16:55:27
ネットワーク共有っていうか、
環境自体はシンクライアント端末なんだけど、
それは関係あるの?
211:デフォルトの名無しさん
09/09/26 19:14:47
そういうときは、完全信頼を与えるとか、マイコンピュータから実行してみるとか、
その辺を試すのがスジ。
212:デフォルトの名無しさん
09/09/26 20:01:30
完全信頼を与えるって、どこでどうすればできますか
213:デフォルトの名無しさん
09/09/26 20:03:38
caspol だろ?
214:デフォルトの名無しさん
09/09/26 21:07:07
もう悪いこと言わないから .NET Frameworkを3.5SP1にしてしまえ
215:デフォルトの名無しさん
09/09/26 22:20:44
>>198
ハゲ野郎
216:デフォルトの名無しさん
09/09/26 22:34:33
しかし、3.5SP1て
・イントラネットでもマイコンピュータゾーン
・厳密名付きアセンブリでもデフォルト検証なし
いい感じに端折ってきてるよなw
217:デフォルトの名無しさん
09/09/27 21:13:17
C#で配列のスライシングと同様のことをするにはどうやるんですか?
218:デフォルトの名無しさん
09/09/27 21:22:55
>>217
Array.Copy メソッド (Array, Int32, Array, Int32, Int32)
のことかな?
219:デフォルトの名無しさん
09/09/27 21:36:26
>>217
LINQ
220:デフォルトの名無しさん
09/09/27 21:45:20
>>218
できました
ありがとうございました
221:デフォルトの名無しさん
09/09/27 22:14:38
スライシングというなら
new[] { 0, 1, 2, 3, 4 }.Skip(1).Take(3).ToArray()
の方がそれっぽいな
222:デフォルトの名無しさん
09/09/27 22:19:42
気持ち悪いな
223:デフォルトの名無しさん
09/09/27 23:28:03
var source = new[] { 1, 2, 3, 4, 5 };
// Linq
var copyL = source.Skip(1).Take(3).ToArray();
// Array.Copy
int[] copyAC = new int[3];
Array.Copy(source, 1, copyAC, 0, copyAC.Length);
実際に使ってみると、Array.Copyのほうがゴチャついてると思う。
224:デフォルトの名無しさん
09/09/28 00:16:03
VisualC#2008で質問です。
タスクバーのなかに検索枠を作りたいです。
以前はBandObjectでできたらしいのですが、バージョンが古くて動きません。
ToolStripというのがそれらしいんじゃないかと考えました。
Formのなかに配置してみたところ、感じとしてはそれっぽいんだけど、コンパイルしたところ、単にFormにToolStripが配置されているだけで、タスクバーにもっていっても登録できません。
(1)ToolStripでタスクバーのなかに検索枠を作ることはできますか?
(2)できないとしたら、なにをどうすればよいでしょう?
ご教示よろしくお願いします。
225:デフォルトの名無しさん
09/09/28 00:23:38
まっとうなやりかたなら、BandObject 以外の方法はないだろ。
226:デフォルトの名無しさん
09/09/28 00:31:36
アセンブリの生成に失敗しました -- 参照されたアセンブリ 'Interop.SHDocVw' は厳密な名前を持っていません。
をどう解決すればいいですか?
227:デフォルトの名無しさん
09/09/28 01:01:09
タイプライブラリインポータか何かで付けられなかったっけ
228:デフォルトの名無しさん
09/09/28 01:13:24
初歩的なことですみません
//応答データを受信するためのStreamを取得
System.IO.Stream st = webres.GetResponseStream();
//データを読み込む
int readSize = st.Read(bufferData, 0, bufferData.Length);
while (readSize > 0)
{
//データが読み込めた時
//読み込んだデータをMemoryStreamに保存する
requestData.Write(bufferData, 0, bufferData.Length);
readSize = st.Read(bufferData, 0, readSize);
}
Bitmap BmpSource = new Bitmap(requestData);
最後の行で「使用されたパラメータが有効ではありません」とエラーがでます
一昨日こんな感じでうまくいってたコードがHDDクラッシュで涙目です
時間をかけてやりたいのですが、ショックが大きすぎて考えもまとまりません
こんな簡単なことですみません ><。
229:デフォルトの名無しさん
09/09/28 01:16:30
ストリームの現在位置が一番後ろだからじゃね
230:デフォルトの名無しさん
09/09/28 01:16:32
ありがちなネタとしては
ストリームのポインタ巻き戻してないんじゃね
231:230
09/09/28 01:16:57
ぬあ
被った…
2秒差じゃしょうがないよね
232:デフォルトの名無しさん
09/09/28 01:17:53
あ、自己解決しました
人に見てもらう気持ちでながめるだけでちがいますね
ひとりだとこんな簡単なことで ><。
233:デフォルトの名無しさん
09/09/28 01:19:05
せっかくお答え頂いたので訂正箇所を
requestData.Write(bufferData, 0, bufferData.Length);
readSize = st.Read(bufferData, 0, readSize);
第三パラメータがあべこべでした
ありがとう!
234:デフォルトの名無しさん
09/09/28 02:36:40
バグってるぜ。
235:デフォルトの名無しさん
09/09/28 09:00:03
何がバグってるかというと、
1行目もreadSize分だけ書き込むようにしなきゃダメってこと。
236:デフォルトの名無しさん
09/09/28 11:03:35
>>235
ですです ありがとうございました
237:デフォルトの名無しさん
09/09/28 11:09:08
ああごめんそこを直したって話だったか。
238:デフォルトの名無しさん
09/09/28 11:10:34
初めて学ぶプログラミング言語としてC#は適当ですか?
それともVisualBasic.NETのほうがよいでしょうか?
239:デフォルトの名無しさん
09/09/28 11:12:26
どっちでも大して変わらない。
240:デフォルトの名無しさん
09/09/28 11:13:10
VBは変な癖がつくからやめとけ
C#は入門者向けの本が少ないから微妙
.NETでなくていいならJavaにしとけ
241:デフォルトの名無しさん
09/09/28 11:22:25
VB.NET は言語的に無理やり感のある部分があるから .NET にするなら C# の方がよいと思う。
個人的には Python をすすめたいけど 3.0 が出てそんなに経ってないから
2.x 系の情報と混在して初心者には混乱しやすいかも。
242:デフォルトの名無しさん
09/09/28 11:28:31
俺は、ほぼ最初にC#覚えた
あんま問題は無かったな
その前にCとjavaを軽く触ったからかも知れんが
243:デフォルトの名無しさん
09/09/28 13:04:04
>>240
>C#は入門者向けの本が少ない
これは微妙な気がする
後は同意
244:デフォルトの名無しさん
09/09/28 13:08:20
IronPython使ってみたけど
C#の方がいいよ
245:デフォルトの名無しさん
09/09/28 13:16:03
俺もC#→IronPython→C#と出戻り
246:デフォルトの名無しさん
09/09/28 13:25:03
IronPythonはC#から乗り換えるようなもんじゃないだろ
C#の補助だ
247:デフォルトの名無しさん
09/09/28 13:43:06
補助つってもどういうときに使うの?
俺はファイルのバックアップとかの作業の自動化のためにCPythonで小さいスクリプト組んでるけど
248:デフォルトの名無しさん
09/09/28 15:41:18
VBから来たおれは最初;をつけるのがめんどくさかったけど、今はこれのありがたさがわかる
249:デフォルトの名無しさん
09/09/28 15:55:46
逆にマクロとかで;付けて怒られる
250:デフォルトの名無しさん
09/09/28 20:08:55
>>248
VBは末尾の_に発狂する。
251:デフォルトの名無しさん
09/09/28 20:16:24
末尾の_ってなに?
252:デフォルトの名無しさん
09/09/28 20:17:02
VB10で_は省略できるようになるよ
まあVS2010ではC#4.0でCOMサポートの強化やdynamicによって
今までVBの方がやりやすかったことが完全に無くなるわけだけど
253:デフォルトの名無しさん
09/09/28 20:23:23
>>251
VBは(っていうかC系統以外の言語の大半はそうだけど)改行コード = 行の終わりになってる。
だから、(文字列的に)改行しても(文法的な)行を継続したい場合は、‘_’で改行コードを
エスケープする必要がある。
254:デフォルトの名無しさん
09/09/28 20:34:34
>>253
> VBは(っていうかC系統以外の言語の大半はそうだけど)改行コード = 行の終わりになってる。
そんなことねーだろ。
255:デフォルトの名無しさん
09/09/28 20:39:20
まあ少なくとも歴史的にはそうなんだけど、
そのあたりは水掛け論にしかならんから議論しても無駄だね。
256:デフォルトの名無しさん
09/09/28 20:40:58
水掛け論って。
メジャーな言語をいくつか思い浮かべればわかる話。
257:デフォルトの名無しさん
09/09/28 20:44:44
ALGOLの影響下にある言語はフリーフォーマットだろうし、lisp系ももちろん一行一文じゃないし、
関数型だってそうだし、一行一文って、COBOLとかFORTRANとその影響下のBASICくらいじゃね?
258:デフォルトの名無しさん
09/09/28 20:47:22
アセンブラやdosのbatだってそうだよ。
だから水掛け論にしかならんて。
259:デフォルトの名無しさん
09/09/28 20:58:46
・一行一文
アセンブラ、バッチファイルやシェルスクリプト、COBOL,FORTRAN,BASIC
・フリーフォーマット
近代的な言語のほとんど
↑みたいな感じかね
「C系統以外ほとんどは」って、水掛け論になるレベルじゃないわな。
屁理屈でねばって「ほら水掛け論だ」って、自分にも一分くらいは理があるような
口ぶりはできるかもしれんけど。
260:デフォルトの名無しさん
09/09/28 21:02:44
お前らスレタイ
261:デフォルトの名無しさん
09/09/28 21:53:27
List<class>の値をDataGridViewに表示させてるんですけど
classのプロパティの値をコードから変更したら
すぐにDataGridViewにも変更された値を表示させたいんですが、
今のところ dataGridView1.Refresh(); で表示させてるんですが
一般的にはどうやるんですか?
もっとスマートなやり方があると思うんですが
List<Test> testList = new List<Test>();
class Test
{
public string s1 { get; set; }
public string s2 { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
testList.Add(new Test { s1 = "a", s2 = "b" });
testList.Add(new Test { s1 = "c", s2 = "d" });
testList.Add(new Test { s1 = "e", s2 = "f" });
dataGridView1.DataSource = testList;
}
private void button1_Click(object sender, EventArgs e)
{
testList[0].s1 = textBox1.Text;
dataGridView1.Refresh();
}
262:デフォルトの名無しさん
09/09/28 22:03:18
INotifyPropertyChanged
BindingList or ObservableCollection
263:デフォルトの名無しさん
09/09/28 22:19:30
>>262
おぉそんなものがあったのか!
ありがとうございます。調べてみます
264:デフォルトの名無しさん
09/09/28 23:47:18
>>252
例外フィルタがないぜ!!
265:デフォルトの名無しさん
09/09/29 00:04:31
>>262
261じゃないがthx
public partial class Form1 : Form
{
class Test : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
private string s1_;
public string s1
{
get
{
return this.s1_;
}
set
{
if (value != this.s1_)
{
this.s1_ = value;
NotifyPropertyChanged("s1");
}
}
}
public string s2 { get; set; }
}
266:デフォルトの名無しさん
09/09/29 00:05:13
List<Test> testList_ = new List<Test>();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
testList_[0].s1 = "ababa";
}
private void Form1_Load(object sender, EventArgs e)
{
testList_.Add(new Test { s1 = "a", s2 = "b" });
testList_.Add(new Test { s1 = "c", s2 = "d" });
var customersBindingSource = new BindingSource();
customersBindingSource.DataSource = testList_;
dataGridView1.DataSource = customersBindingSource;
}
}
267:デフォルトの名無しさん
09/09/29 00:25:20
windows movile ソフトウェアを作ってみてためしにcabファイルにしてみたんですが、
インストールに失敗します。
作成環境はVS2005です。
cabで失敗するunicodeは修正しました。
実機にcabを入れてタップすると「インストールに失敗しました」とだけ出ます。
こういう場合どうやって原因を確かめたらいんでしょうか?
268:デフォルトの名無しさん
09/09/29 00:43:47
すぺるみす
269:267
09/09/29 13:57:50
解決しました
ほんとにスペルミスでした
ミスしたのはcabプロジェクト名
本家プロジェクトに上書きしてしまいました orz
270:デフォルトの名無しさん
09/09/29 14:06:38
>>268はエスパーなのか、本当に良くあるミスなのか
271:267
09/09/29 14:13:12
本家プログラムと同じcabファイル名にしようと思うと起こりうることかも知れません
でも相当うっかりしてないとやらないと思います orz
272:デフォルトの名無しさん
09/09/29 15:09:51
movileのことかと思ったわ
273:デフォルトの名無しさん
09/09/29 17:30:16
invokeなんとか、とか、なんとかinvoke とか
たんなる invoke とかいろいろあるんですけど
全部delegateってことですか?
274:デフォルトの名無しさん
09/09/29 18:22:08
invoke自体はただの英単語
何を指すかはメソッド次第
275:デフォルトの名無しさん
09/09/29 20:27:13
各コントロール、フォームなどのフォントサイズを一括して変更する方法はないでしょうか?
276:デフォルトの名無しさん
09/09/29 20:42:53
>>275
君は質問の仕方から勉強する必要がありそう
277:デフォルトの名無しさん
09/09/29 20:53:44
>>275
方法1.フォントサイズを変更するコントロールすべてを一括選択した後にプロパティウィンドウでフォントサイズを変更する。
方法2.フォントなどはアンビエントプロパティなので、特に設定されていない場合(デフォルトの値)は親のコントロール(フォーム)の設定が反映されるようになっているので
親コントロール(フォーム)のフォントサイズを変更すれば子コントロールにも反映される
278:デフォルトの名無しさん
09/09/29 20:59:59
>>277
「フォントサイズ」なんて概念はそもそも存在しない。
その回答はない。
279:デフォルトの名無しさん
09/09/29 21:02:16
↑君のレスは無用
280:デフォルトの名無しさん
09/09/29 21:13:18
>>279
馬鹿はすぐこれだ。
ならフォントサイズってどういう意味だよ。
281:デフォルトの名無しさん
09/09/29 21:15:21
>>280
フォントのサイズ
282:デフォルトの名無しさん
09/09/29 21:20:44
>>280
URLリンク(msdn.microsoft.com)
これ以外になにが?
283:デフォルトの名無しさん
09/09/29 21:33:16
他人をバカ呼ばわり → 逃亡
284:デフォルトの名無しさん
09/09/29 21:34:13
(・∀・)クスクス
285:デフォルトの名無しさん
09/09/29 21:41:53
>>282
お馬鹿だな。
それで、その「フォントサイズ」を>>277の方法でコントロールに適用できるのかよ。
286:デフォルトの名無しさん
09/09/29 21:45:29
「それじゃできない」とかいらないよ。
「こうやったらできる」って言えばいいだけ。
俺としては、方法2 で十分だと思う。
287:デフォルトの名無しさん
09/09/29 21:48:48
>>286
それは「フォント」を設定しているのであって
「フォントサイズ」(そんな概念は存在しないが)を設定しているのではないだろう。
端的に言えば、コントロールごとに書体が違う場合はどうするのか。
288:デフォルトの名無しさん
09/09/29 21:51:49
>>287
とりあえずお前はスレタイ読んで風呂でも入って落ち着けよ、な?
あと、初心者スレに向いてないよ
289:デフォルトの名無しさん
09/09/29 21:54:26
>>288
俺の方から煽った覚えは無いけどね。
初心者だろうがなんだろうが、正しくないことは正しくないといってるだけだ。
このように、馬鹿ってのは決まって偉そうに人に講釈をする規範を
自分には適用しないダブスタ野郎だ。
290:デフォルトの名無しさん
09/09/29 21:54:32
>>273
一般的にはメンバやデリゲートを呼び出すことをinvokeという
純粋に言語としてのC#に話を限ると,メソッドやデリゲートを表す式の後(引数)を付けた式のことをinvocation expressionと呼ぶ
291:デフォルトの名無しさん
09/09/29 21:55:33
フォントサイズの概念から議論しようか
292:デフォルトの名無しさん
09/09/29 22:10:37
>>289
さっさと失せろゴミ
293:デフォルトの名無しさん
09/09/29 22:11:31
>>289
認知症か
なるほど
294:デフォルトの名無しさん
09/09/29 22:15:02
eventの存在意義がわからない
delegateで十分な気が
295:デフォルトの名無しさん
09/09/29 22:18:35
イベントはデリゲートのためのプロパティみたいなもの。
Javaなどではよくイベントの代わりにObserverパターンというのが使われるんだけど,
それに出てくるaddListenerやremoveListenerを一つにまとめたのがイベント。
その点ではgetValue/setValueを一つにまとめたプロパティと似てる。
Observerについてはググれ
296:デフォルトの名無しさん
09/09/29 22:19:00
eventって、複数登録できるんだよな?
297:デフォルトの名無しさん
09/09/29 22:20:17
イベントは複数登録できる
デリゲートは1個だけ
298:デフォルトの名無しさん
09/09/29 22:22:53
マルチキャストといって,デリゲートも呼び出し対象を複数登録できる
本来,イベントがあればaddとremoveの実装次第でどうとでもなるからマルチキャストはいらないんだが
設計当時はイベント以外のデリゲートの使用が想定されてなかったと思われる
299:デフォルトの名無しさん
09/09/29 22:45:35
>>298
さすがに最後の行はない。そういうデタラメを言っては行かん。
例えばRegex.Replaceを見よ。
300:デフォルトの名無しさん
09/09/29 22:53:20
最後の行は言いすぎだけど今みたいにデリゲートをガンガン使うような状況は絶対に想定されてなかった
最適化しづらいだろうし戻り値の扱いとか無理があるし邪魔なだけ
301:デフォルトの名無しさん
09/09/29 22:56:28
delagteもなんで
DelegateクラスとMulticastDelegateがあるんだよう
はじめからDelegateクラスをマルチキャスト可能にしとけよ
302:デフォルトの名無しさん
09/09/29 23:09:52
private List<EventHandler> _ClickA;
public event ClickA { add { _ClickA.Add(value); } remove { _ClickA.Remove(value); } }
private EventHandler _ClickB;
public event ClickB { add { _ClickB = Delegate.Combine(_ClickB, value); } remove { 略
ClickAのようにするのがイベントの概念としては本来の形。
でも通常,addやremoveを省略して普通にイベントを宣言するとコンパイラはClickBのようなコードを生成する。
つまり「どうせデリゲートなんてほとんどイベントにしか使わないでしょ?」ってことでコンテナをくっつけてる。
303:267
09/09/29 23:23:16
えーとデータから作成した画像がピクチャボックスに貼ってあって
それが(10,10)動いたときもとの画像をずらして
上10ピクセルと左10ピクセルだけ描画したいんですが
for文を2重にして
for(x=0;x<=10;x++)
{
for(y=0;y<=10;y++)
{
}
}
ってやると当然10×10ピクセルしか描画しません
上記のように描画したいとき
また移動量(x,y)が逆に動いてマイナスのときにも対応できる
簡単なアルゴリズムはありませんでしょうか?
ちなみにCGのように描画が必要なのでマスクは使えません
ヒントかリンクだけでもけっこうです
よろしくお願いします
304:275
09/09/29 23:24:07
片付いたので見にきたら少し賑やかになってるw
概念はわかるけどemSizeのemはなに?
305:デフォルトの名無しさん
09/09/29 23:25:25
どうでもいいが0~10の、11回処理してないかい?それ
306:267
09/09/29 23:26:49
あうw
307:デフォルトの名無しさん
09/09/29 23:29:32
何がしたいのかサッパリ
308:デフォルトの名無しさん
09/09/29 23:40:12
x < 10 または y < 10 の領域を描画したいんだろ
309:267
09/09/29 23:45:12
>>308
あ!そうか!そういうことです!
なんかヒントになりました!
ありがとうございました!
310:デフォルトの名無しさん
09/09/29 23:46:00
あらかじめ敵のXY座標を設定しておいて
それらをプログラム全体から利用したいんだけど
どこでどのように定義するのが適切なんでしょうか?
名前空間の内側、classの外側で定義すれば全体から利用できると思ったんだけど
下のを書き込むとフィールドやメソッドは定義できないとエラーがでます
Point TekiPos = new Point(10, 5);
311:デフォルトの名無しさん
09/09/29 23:47:57
Teki.Posとは絶対に書きたくないの?
312:デフォルトの名無しさん
09/09/29 23:48:02
>>310
public staticにしてクラス内にもて。
困ったときはpublic staticだ。
313:デフォルトの名無しさん
09/09/29 23:56:09
まあゲームなんか難しく考えずpublic static(いわゆるグローバル変数)でもいいよ
ゲームは気を使って設計してもどうせ大なり小なり大域コンテキストクラスが出てくる
314:デフォルトの名無しさん
09/09/29 23:56:09
>>311
あ、なるほど、Tekiクラスをプログラム全体で利用できるようにして
そのメンバPosに対してどこかでデータいれるってことかな
>>312
インスタンスを複数必要ないというか、あるとややこしくなるので
staticのほうがわかりやすそうですね
即レスありがとうございます
315:デフォルトの名無しさん
09/09/29 23:59:48
>>314
ゲームって作ったこと無いんだけど
Enemyクラスかなんか作っといて、必要になったらnew Enemy()で
初期化してやった方がスマートなんじゃないの?
316:デフォルトの名無しさん
09/09/30 00:04:29
敵が一体だからグローバル変数にするならまだいいけど,
敵が複数いて,ほかのクラスから特定の敵の座標を取得するためにいったんグローバル変数に入れたりするのは最悪のパターン
317:デフォルトの名無しさん
09/09/30 00:23:04
どんなゲームだろうねえ
318:デフォルトの名無しさん
09/09/30 00:25:45
敵がいて初心者が作るものったらSTG以外に無いだろ
319:デフォルトの名無しさん
09/09/30 00:40:24
>>313
ありがとうございます。
最初からメモリや動作速度とか考えても仕方が無いですね
できるだけ自分にわかりやすく書こうと思います
>>315
敵と味方では振る舞いが違うからそういう風にしたほうがいいかもですね
>>316
そういう感じで設計仕様と思ってたんですが、なぜだめなんでしょうか?
将棋でいうところの盤をstaticで定義してどこからで参照できるようにして
部隊の動き(どの座標に前進後退するかなど)もstaticで定義しようと思っていたんですが
>>317>>318
シューティングは線形代数や三角関数などの数学的知識がいるので無学のわたしには無理です
ターン制の戦略ゲーム的なものを作ろうと思ってます
320:デフォルトの名無しさん
09/09/30 01:02:15
class Matrix{} //フィールド全体とマス目を定義
class Enemy{} //敵のキャラクターを定義
この二つを作っておいてMatrixにEnemyのインスタンスを突っ込むとか
位置はEnemy、移動先はMatrixで定義しておいたほうが安全だと思う
グローバル変数をたくさん作ったり使い回し足りするのはトラブルの元
321:デフォルトの名無しさん
09/09/30 01:09:03
逆だな
位置はMatrix、移動先はEnemy
322:デフォルトの名無しさん
09/09/30 01:10:55
グローバル変数が使いたい時はstaticって何で入門書に書くんだろ
最初が肝心なんだぞ
書くなよ
323:デフォルトの名無しさん
09/09/30 01:14:50
なるほど、グローバル変数を大量に作ってしまうのはそもそも設計に問題ありって感じですか
クラスの中にも自作クラスを入れられて、さらにそのクラスにも自作クラスを・・・
これがオブジェクト指向?
この感覚に慣れないとだめですね
>>321
マス目にenemyを放り込む感じですよね
そのほうがわかりやすそうですね
ありがとうございます
324:デフォルトの名無しさん
09/09/30 01:25:04
動きゃいいんだよ
未完成で放置するのが一番良くない
325:デフォルトの名無しさん
09/09/30 01:32:11
そんなことはないよ
静的変数使い回しなんてしてたら論理的なミスしたときに
わけわかめになりやすい
最初からオブジェクト指向のお作法を意識するのは上達の近道だよと
遠回りした俺が言ってみる久々のてすつ
326:デフォルトの名無しさん
09/09/30 01:35:24
多言語から移った人間を意識してるんだろうけど要らない説明ではある気がする
327:デフォルトの名無しさん
09/09/30 02:44:03
DataTable内に「name」という列を設けてその中に色々な名前を定義しています。
SEQ NAME
連番 名前
1 たろう
2 タロウ
3 TAROU
DataTable.Select("NAME LIKE '%たろう%'");
として検索した時に本来は
1 たろう
のDataRowのみ抽出したいのですが
2 タロウ
まで抽出されてしまいます。厳密に検索をするにはどうすればよいでしょうか?
※また、大文字・小文字も区別して検索するにはどうすれば良いでしょうか?
328:デフォルトの名無しさん
09/09/30 06:09:00
>>327
CaseSensitiveプロパティをtrueにしてからSelectしる
329:デフォルトの名無しさん
09/09/30 07:50:56
>>302
どういう理屈だよ
330:デフォルトの名無しさん
09/09/30 08:54:11
>>328
サンクス
331:デフォルトの名無しさん
09/09/30 10:50:45
CSとKS,WSは別じゃないの?
プロパティ一覧見た限りだと、ロケールをインバリアントにすれば良さそう
332:デフォルトの名無しさん
09/09/30 12:43:45
vs2008でWindowsフォームアプリケーションを作成しました。
インストーラーを発行して、配布しようとしましたが、.netフレームワーク3.5のダウンロードに30分近く要します。
コンポーネントはクライアントプロファイルのみにしています。
皆さんはどのような手段でインストール方法を取られていますか?
333:デフォルトの名無しさん
09/09/30 15:57:29
URLリンク(www.microsoft.com)
の.NET Framework 3.5 Service Pack 1 (フルパッケージ) をDLしてインストーラに組み込んじゃいかんの?(いかんか)
#再頒布可能パッケージ があればいいんだけどね・・・・
#Microsoft .NET Framework 3.0 再頒布可能パッケージ まではあるのか・・・
334:デフォルトの名無しさん
09/09/30 16:05:09
クライアント専用Frameworkサブセットってとこチェックしても30分もかかるもんなの?
やったことないけど
335:デフォルトの名無しさん
09/09/30 16:25:46
Client Profile v3.5がインストールされる条件が変で、
バージョンを問わずフルセットの.NET Frameworkがインストールされていないこと。
条件が合わない場合は差分をダウンロードしてフルセットでのインストールとなる。
プレインストールのXPやVista以降の場合、基本的に.NETが導入済みなので、
よほど特殊な環境でなければClient Profileは導入されない。
336:デフォルトの名無しさん
09/09/30 20:44:06
>>335
XPにも標準で.netがついているの?
何かのネットで見たら、付いていないと書いていたんだ。
記事はまちがいだったのかな。
337:デフォルトの名無しさん
09/09/30 20:48:56
「プリインストールの」だろ
相当前に使ってたノートPCにもデフォで1.1が入ってたぜ
338:デフォルトの名無しさん
09/09/30 20:50:09
XP はないよ。
2003 が 1.1、Vista が 3.0 だね。
339:デフォルトの名無しさん
09/09/30 20:51:48
でも、今時.net入ってない環境ってどうよ
340:デフォルトの名無しさん
09/09/30 21:04:00
.netが出だした当初って誰も入れたがらなかったけど
.NETを使ったフリーソフトも出だして当たり前になってきたね
341:デフォルトの名無しさん
09/09/30 21:04:56
2.0は入ってるものと考えていいと思うけど3.5はまだきつい
342:デフォルトの名無しさん
09/09/30 21:07:40
まぁでも、2.0 が入ってれば、勝手に 3.5 が Windows Update で入るんだけどな。
343:デフォルトの名無しさん
09/09/30 21:07:59
1.0が入ってないとダメっつーインストーラーは勘弁して欲しいw
344:デフォルトの名無しさん
09/09/30 21:32:02
1.x が必要なアプリは使いたくない
345:デフォルトの名無しさん
09/09/30 21:44:28
2.0とか3.5の入ってる環境なら1.x必須なのも動くんじゃないの?
346:デフォルトの名無しさん
09/09/30 21:47:32
たいていは 2.0 で動くと思うけど、サポート対象にはしたくない。
347:デフォルトの名無しさん
09/09/30 21:48:34
最近コンポーネントエラーって起きたことないな
348:デフォルトの名無しさん
09/09/30 22:18:05
長くなるけど質問お願い
暗号化を作っていて、ボタンのイベントに処理を書くのではなくて
クラスに処理入れて、それをボタン押したときに呼び出すようにするには
どうしたらいいのでしょうか
お力おかしください
public partial class Form1 : Form
{
//バイト配列で変数を宣言
public byte[] DesKey;
public byte[] DesIV;e,
public byte[] cryptData;
public Form1()
{
InitializeComponent();
RC2CryptoServiceProvider TDES = new RC2CryptoServiceProvider();
//TripleDESCryptoServiceProvider TDES = new TripleDESCryptoServiceProvider();
DesKey = TDES.Key;
DesIV = TDES.IV;
}
//暗号化ボタンを押したときの処理
private void button1_Click(object sender, System.EventArgs e)
{
// source 配列から cryptData 配列へ変換
// 文字列を byte 配列に変換します
byte[] source = Encoding.Unicode.GetBytes(genbun.Text);
349:デフォルトの名無しさん
09/09/30 22:18:58
上に続きですよろしくおねがいします
// Triple DES のサービス プロバイダを生成します
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
// 入出力用のストリームを生成します
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(DesKey, DesIV),
CryptoStreamMode.Write);
// ストリームに暗号化するデータを書き込みます
cs.Write(source, 0, source.Length);
cs.Close();
// 暗号化されたデータを byte 配列で取得します
cryptData = ms.ToArray();
ms.Close();
// byte 配列を文字列に変換して表示します
angougo.Text = Encoding.Unicode.GetString(cryptData);
}
350:デフォルトの名無しさん
09/09/30 22:19:53
>>334
クライアント専用サブセットってどこで設定するの?
351:デフォルトの名無しさん
09/09/30 22:22:59
暗号化とかまったく関係ないな。
352:デフォルトの名無しさん
09/09/30 22:23:59
>>350
プロジェクトのプロパティ
353:デフォルトの名無しさん
09/09/30 22:26:42
>>348
どう、ってインスタンスメソッドにするならボタンクリックでクラスを初期化して
メソッド呼び出せばいいのでは?
staticメンバ一個作っておいてそこにインスタンスぶち込んでstaticぽく呼んでもいいけど
354:デフォルトの名無しさん
09/09/30 22:26:49
>>349
public partial … → public class Encryption
public Form1() → public Encryption()
private void button1_Click(… → public byte[] Encrypt(string sourceText)
byte[] source = … → byte[] source = Encoding.Unicode.GetBytes(sourceText);
angougo.Text = Encoding.Unicode.GetString(cryptData); → return Encoding.Unicode.GetString(cryptData);
355:デフォルトの名無しさん
09/09/30 22:27:35
>>354
訂正
private void button1_Click(… → public string Encrypt(string sourceText)
356:デフォルトの名無しさん
09/09/30 22:34:18
>>348
Class Angouka
{
publick void Start(){....};
}
Class From
{
Button_Click()
{
Angouka ang=new Angouka();
ang.Start();
}
}
357:デフォルトの名無しさん
09/09/30 22:58:49
初心者で考え方がいまいちで申し訳ないです。
クラスを作り
その中に今まで入れていたボタン処理を入れて
そのクラスをボタンイベントに生成して
呼び出せばおkと言う感じ?
358:デフォルトの名無しさん
09/09/30 23:03:13
うん。
359:デフォルトの名無しさん
09/09/30 23:22:12
ボタンが押された時の処理を別のクラスに書くんじゃない
その目的の処理を行うクラスを作って,そのクラスをイベントハンドラから利用するんだ
機械的に移すだけだとあんまり意味がない
360:デフォルトの名無しさん
09/09/30 23:33:12
クラスわけは責務をわけるのと同等
361:デフォルトの名無しさん
09/09/30 23:33:57
こういう違いって理解できない人にはなかなか理解してもらえなかったりするな…
362:デフォルトの名無しさん
09/09/30 23:35:53
どうでもいいけどいやよくないけど
暗号化結果のバイト列をUnicodeEncodingで文字列にするのは無茶だぜ。
まあ諸悪の根源はv1.1の頃のMSのサンプルだったりするんだが。
363:デフォルトの名無しさん
09/09/30 23:38:17
一応そのほかにも使う可能性というか応用で使うので
ひとつのクラスに処理をいておきたいと思っています。
ACIIでやろうと思ってたんですがどうもうまくできなかったので今
それです。これは直したいなと思っております
364:デフォルトの名無しさん
09/09/30 23:41:34
>>352
よく見たらありました。
ボケてきたのかな…。ありがとう。
365:デフォルトの名無しさん
09/09/30 23:48:48
会社とか組織をイメージしてみるといいかも。
実際に仕事やる部署と、注文受ける部署、商品配達する部署・・・・・。
食堂で言うなら厨房と接客・電話番、出前とか。
それぞれは、自分の仕事だけして、あとはどっかに受け渡すだけで
良いようになってる。
下手な部署分けすると役所みたいにたらい回しになって困るが。
バイト列の文字列化ならBase64じゃない?昔から用意されてるし。
366:デフォルトの名無しさん
09/09/30 23:52:02
とか思ってみたらBase64変換クラスがぱっと見で見つからん。あれ?
Javaだったのかな?
367:デフォルトの名無しさん
09/09/30 23:55:31
System.Convert.ToBase64String(byte[])
368:デフォルトの名無しさん
09/09/30 23:57:33
Convert.ToBase64
369:デフォルトの名無しさん
09/10/01 00:11:50
キーボードのキーを押してプログラミングするわけだが
キー自体がプログラミングを理解しているわけじゃないよね
あくまで、文字を入力させる命令を出すためのスイッチに過ぎない
役割分担をさせていくわけだけど、その分クラスはどんどん増える
だがそれでいい
370:デフォルトの名無しさん
09/10/01 00:15:42
オブジェクト指向の話になると現実世界の事象を例えにだすのをよく見るけど、
その例えってそんなにわかりやすいもんなのかな。
むしろそこからどうやってコードに落とすのかと悩むことしきりなんじゃないか。
371:デフォルトの名無しさん
09/10/01 00:21:32
もちろんそうだけど、オブジェクト指向の入り口で躓いているんだから仕方が無い
372:デフォルトの名無しさん
09/10/01 00:44:44
まず、構造化プログラミング・設計を学ぶところから・・・。
373:デフォルトの名無しさん
09/10/01 01:17:57
>>370
わかってる人が例えるからそうなるんだよな。
わからない人向けの説明には向かないと思う。
374:デフォルトの名無しさん
09/10/01 01:31:02
かと言ってわかってない人は向いてる向いてない以前に例えられないから。
375:デフォルトの名無しさん
09/10/01 01:39:15
そこをいくとオブジェクト指向のこころは最高だと思う。
376:デフォルトの名無しさん
09/10/01 02:37:13
憂鬱な
377:デフォルトの名無しさん
09/10/01 03:09:44
貝になりたい
378:デフォルトの名無しさん
09/10/01 03:13:33
引きこもりは家をでないのでスペックがさっぱりわからない
やり取りできる手段は、スカイプやネトゲしかない
でも、こっちの情報をいくら伝えてもスペックを晒そうとはしない
オブジェクト指向ってそんな奴
379:デフォルトの名無しさん
09/10/01 07:21:42
良くも悪くも勘違いされる不幸な子ってイメージだけどな。
きちんと理解してあげれば戦力になるが、間違った認識や過度の期待を持たれるとプレッシャーに負ける人みたいな?
380:デフォルトの名無しさん
09/10/01 08:32:43
お前らスレタイ
381:デフォルトの名無しさん
09/10/01 12:58:49
使ってればわかる
結局はノウハウを一般化しただけのもの
382:デフォルトの名無しさん
09/10/01 14:54:21
自作ソフトのソースを公開しようと思うんですが
プロジェクトファイルなどにPCユーザー名など
固有の情報みたいなのが入っていて見られてしまうんでしょうか?
ソースを公開する上での注意点などありましたら教えてください
383:デフォルトの名無しさん
09/10/01 15:03:39
ユーザ名を短くて無意味な英文字にしておく
.csだけ公開する
384:デフォルトの名無しさん
09/10/01 16:36:09
>>383
いや、さすがに.slnと.csprojくらいは付けようよ。
逆に.csproj.userとか.suoは除外。
385:デフォルトの名無しさん
09/10/01 16:38:41
VC#?
386:デフォルトの名無しさん
09/10/01 17:06:33
binフォルダは削除
slnとcsprojは付いてないと読む気が失せる
387:デフォルトの名無しさん
09/10/01 17:10:33
プロジェクト一つならslnはいらないんじゃ…
388:デフォルトの名無しさん
09/10/01 17:22:34
slnないと保存できないからめどい
389:デフォルトの名無しさん
09/10/01 17:38:30
>>388
プロジェクトのみでも一度保存すればソリューション作成されるよ
390:デフォルトの名無しさん
09/10/01 18:59:34
C#初めてはや1.5ヶ月
いまだにクラス呼び出しとかが曖昧
配列わからん。
プログラム自体初心者ですがこれはかなり遅いほうですよね?
最近は分岐がわかりだしてきたところです
391:デフォルトの名無しさん
09/10/01 19:06:18
俺も、1.7ヶ月ぐらいだけど
オブジェクト思考はよくわからんけど
配列とか、クラス呼び出しぐらいなら一応・・・
まぁ、以前Cとjavaをおさわり程度にやった事有るけど
392:デフォルトの名無しさん
09/10/01 19:16:07
C#はじめて7年
クラス呼び出しなんて初めて聞いた
393:デフォルトの名無しさん
09/10/01 19:22:12
小学生初めてはや5年
職員室呼び出し喰らったのは今年が初めてだ
394:デフォルトの名無しさん
09/10/01 19:57:11
お前らスレタイ
395:デフォルトの名無しさん
09/10/01 20:07:10
あぁ、悪い
クラス定義してメソッド呼び出しとか
これでいい?これも違うのかなw
396:デフォルトの名無しさん
09/10/01 20:11:11
DESCryptoServiceProviderの複合化はパスワードが違う場合、絶対にエラーを吐きますか?
それとも適当に復号したデータを返す時がありますか?
397:デフォルトの名無しさん
09/10/01 20:36:51
>>390
1日にやる量にもよるし、いろいろだろ。
他人にかまわず自分のペースで楽しみなよ。
398:デフォルトの名無しさん
09/10/01 20:58:44
なんだかんだで仕事でつかうと習得が早い
399:デフォルトの名無しさん
09/10/01 20:59:28
俺なんか2年目でやっとデリゲートを唱えることが出来た
400:デフォルトの名無しさん
09/10/01 21:28:48
仕事で必要で学んでいるんですが
やはり全然覚えが悪いのでまじで仕事自体を辞めるべきなのか本当に迷ってる
ものすごく申し訳ない気持ちと焦りでぐだぐだ・・・
401:デフォルトの名無しさん
09/10/01 21:34:36
>>396
原理的には適当に復号化。でないとTripleDESが不可能のはずだから。
テストコードとかで確認もしなかったけど、適当に復号化するだろうと決め込んで、
めんどくさくなって平文にヘッダとトレイラを入れといて復号時にパスワードチェック
とした。
パスワードじゃなくてIVとKeyだろ、なんて無粋なツッコミはナシね。
402:デフォルトの名無しさん
09/10/01 21:41:18
>>400
できなければ辞めるか仕事をかえてくれと言ったほうがいい
ムリなひとはどうやってもムリ
403:デフォルトの名無しさん
09/10/01 22:03:47
>>400
記憶力はあるに越したことはないけど、プログラマとしてそんなに重要な
ファクターじゃないと思うよ。
重要なのは理解力と要領だよ。
どのみち、今時のライブラリが全部頭に入っている奴なんていないわけで、
誰でも多かれ少なかれMSDNやwebの情報を見ながらコーディングしてるんだから。
404:デフォルトの名無しさん
09/10/01 22:13:33
俺なんていまだに@ITの「C# 3.0らしいコードの書き方」とか見て頭混乱してる
405:デフォルトの名無しさん
09/10/01 22:16:50
よくさ、そういう解説サイトで学校クラス学生なんて例を出すけどわけわからんよな
誰が学生名簿なんて作るんだよとww
そこそこの規模のソフトを例にプログラミングしながら学ぶようなのがあればいいんだけど
406:デフォルトの名無しさん
09/10/01 22:25:38
参考書は本当に難しいと思う
C#だけでもリファレンス、デザインパターン、入門と3冊持ってるけど
それでも補完できない部分が独学だと必ず出てくる
クラスとかオブジェクトの理解が進まないうちに実践に入るような参考書掴むと
後から本当に苦労する
407:デフォルトの名無しさん
09/10/01 22:26:44
犬クラス
ポチ、パトラッシユ、しろオブジェクト
408:デフォルトの名無しさん
09/10/01 22:27:09
>>404
あれは書いてあるコードが理解できれば十分
記事の内容を真に受けてはいけない
409:デフォルトの名無しさん
09/10/01 22:34:42
K俣か
410:デフォルトの名無しさん
09/10/01 22:38:44
>>400
やめるなら俺を代わりに雇うよう取り計らってくれ
411:デフォルトの名無しさん
09/10/01 22:40:02
むしろ川俣節は、このアジテーションは過大なのかそれぐ
らい言い切ってしまってもいいのかのこう微妙な感じが
個々に判断できるようになると上級者。
…味があって好きなんだけどなぁ川俣節
412:デフォルトの名無しさん
09/10/01 22:49:50
URLリンク(www.r-nakai.com)
ここ見ながらVC#2008Expressで使えるように設定したんだけど、
ぜんぜんステップインしてくれない。もちろんソースコードはDL済みなんだけど。
Expressで使えてる人いる?
413:デフォルトの名無しさん
09/10/01 22:53:47
>404 >408
おれもあの記事かなりわかりにくかった…(´・ω・`)
414:デフォルトの名無しさん
09/10/01 22:58:58
>>411
あれは文体が古い(30年前のパソコン雑誌っぽいw)だけで、アジってほどでもないよ。
まあ今時のプログラマの書く技術解説の文章っぽくないのは確か。
たぶん物書きに憧れがあるっていうか、自己表現しないと気がすまない性格なんだろうw
この人の『Win32API散歩道』って本を持ってるけど、あれ見るといかにもそんな感じ。
415:デフォルトの名無しさん
09/10/01 22:59:19
ちらっと見てみたけど、能書きが多いな。
416:デフォルトの名無しさん
09/10/01 23:00:59
>>414
散歩道のきたあきらって、川俣の別名?
417:デフォルトの名無しさん
09/10/01 23:04:56
>>414
らしいよ。
きたみあきこは別人
418:デフォルトの名無しさん
09/10/01 23:16:25
>>356
できなかったですそれ
419:デフォルトの名無しさん
09/10/01 23:23:41
>>418
>>356を参考にして、どんなコード書いたの?
420:デフォルトの名無しさん
09/10/01 23:34:30
質問です
初心者です
namespace WindowsFormsApplication1
{★
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}
とあってclassを★のところに記述するとなぜかフォーム表示が
出来なくなるのですが同対処すべきなのでしょうか
421:デフォルトの名無しさん
09/10/01 23:40:27
そんなところに書かない
1クラス1ファイルを基本にする
422:デフォルトの名無しさん
09/10/01 23:42:38
>>421
1ファイルとはどういうことでしょうか
大変申し訳ないです。
今はクラスとメソッドを外出しにしておいてボタン処理を押したときに
その処理を参照しようとしています
423:デフォルトの名無しさん
09/10/01 23:42:57
>>420
ひ、ひねくれもの!
424:デフォルトの名無しさん
09/10/01 23:43:06
そんなこと聞いてねーよw
おせっかいさんめ
425:デフォルトの名無しさん
09/10/01 23:46:47
>>422
なんだ暗号化君かw
URLリンク(msdn.microsoft.com)
ここ読みなさいよ
426:デフォルトの名無しさん
09/10/01 23:49:04
>>425
はい、私です。
今日作ってよし出来たと思ったら
内部でクラス作らないで外部で作ってと言われて
あたふたしています。
427:デフォルトの名無しさん
09/10/01 23:49:34
>>420
> このページが表示されている理由
> クラス MainForm はデザインできますが、ファイルの最初のクラスではありません。
>Visual Studio では、デザイナはファイルの最初のクラスを使用する必要があります。
>クラスがファイルの最初のクラスになるようにクラス コードを移動して、デザイナを再度読み込んでください。
やってみたけど、理由も対処方法も表示されるじゃん。
428:デフォルトの名無しさん
09/10/01 23:53:55
外部に作ると言うのは
FORMの外部に作ってそこから呼び出すってわけじゃないんですね・・・
From1の下に作ったら表示されました。
勉強たらなすぎてしにたい
429:デフォルトの名無しさん
09/10/01 23:57:55
>>428
86BASICから引越しされてきたのですか?
430:デフォルトの名無しさん
09/10/02 00:08:17
>>428
いや、そのクラスを使うときに必ずForm1がセットになってしまったら使い辛くは
ないかい?例えば別のアプリで使い回しするとき。
だから、別々の .cs ファイルで管理することを皆は薦めている。
まあ、とりあえず動くなら今は別に気にすんな。
どうせ色々使い回しでコピーしたあげく、嫌になって分かってくるもんだから。
431:デフォルトの名無しさん
09/10/02 00:08:55
エラー見てもちんぷんかんぷんなことが多い
まじで今年やってだめなら辞表考えるわほんとに。
432:デフォルトの名無しさん
09/10/02 00:27:57
>>430
ああああああ
なるほど、使いまわし出来るようにとか言ってたましたそういえば・・・
と言うことはcsを処理の分を作るのが外部と言うことなんですね。
理解度足りないですね
まじでありがとうございます。
433:デフォルトの名無しさん
09/10/02 00:54:30
>>396>>401
どうでもいいが、「復号化」ではないのでリアルで使うと恥じをかくことになると忠告しておこう
>>432
ファイルとクラスは1:1が基本ではあるが、分かり易くなるならM:Nでも問題ない
434:デフォルトの名無しさん
09/10/02 01:06:36
最初に手をつけるのがコレって厳しいのん?
435:デフォルトの名無しさん
09/10/02 01:13:54
かもね
436:デフォルトの名無しさん
09/10/02 01:21:21
やっぱりか……
サンクス
437:デフォルトの名無しさん
09/10/02 01:22:35
いやそういう問題じゃないと思うが。
438:デフォルトの名無しさん
09/10/02 01:24:16
>>431
向いてない奴がやると体壊すか鬱になるよ
そういう奴沢山見てきたし
おれは小学校の頃からプログラミングやってて
何時間やっても苦痛じゃないからな
まあ、仕事だとしんどいこともあるけど
息抜きのために自作ソフトを作るぐらいだからw
そういう人間じゃないとだめなんかもな
439:デフォルトの名無しさん
09/10/02 01:27:38
>>432
右のウィンドウにプロジェクト名が書いてあるでしょ?
それを右クリックして、追加>クラス
を選択すると幸せになるよ
ややこしくなってきたら、同じようにしてフォルダを作るんだ
440:デフォルトの名無しさん
09/10/02 01:36:08
>>433
>どうでもいいが、「復号化」ではないので
突っ込むべきはそこではない。
>原理的には適当に復号化。でないとTripleDESが不可能のはずだから。
これがおかしい。
暗号アルゴリズム単体の処理での動作と
パディング等も含めたスキーム全体の処理での動作を
混同している。
441:デフォルトの名無しさん
09/10/02 01:40:40
もういいから外注しろ
442:デフォルトの名無しさん
09/10/02 07:08:56
1ファイル1クラスは冗談だろ?
Javaかよw
冗談だよね?
443:デフォルトの名無しさん
09/10/02 07:32:14
だいたいの機能でファイル分けるけど
さすがに1クラス1ファイルは無いな(1つの機能が1つのクラスで済むならありうるけど)
444:デフォルトの名無しさん
09/10/02 07:32:45
1つのファイルにWindowsFormが2つ以上同居できないとか、
ファイル内の最初のクラスにするといった制限は
IDE(Visual Studio)の制限で、別に言語の制限じゃない。
445:デフォルトの名無しさん
09/10/02 07:41:42
enumやdelegateも型だから、
分けなきゃいかんのならこれも分けるの?てのもあるね。
javaの場合はpublicなenumはファイル分けなきゃいかんかった。
めちゃ不便。
446:デフォルトの名無しさん
09/10/02 11:41:54
関連性が極めて強い型、殆ど従属してると言って言いような型とか、
列挙やらデリゲートやらは流石にファイル分けたりはしないな。
ただ、大体基本的には1クラス1ファイルになると思うけどね。
447:デフォルトの名無しさん
09/10/02 14:28:27
パブリックなクラスが内部だけで使うプライベートなクラスとかなら
1ファイルに書いたりはする
規模にはよるけど
448:デフォルトの名無しさん
09/10/02 14:57:49
ジェネリッククラスも作る時は一緒のファイルに書いてるかな
449:デフォルトの名無しさん
09/10/02 15:28:30
まあ、その辺は好みだよな
450:デフォルトの名無しさん
09/10/02 17:26:45
子ウィンドウハンドルの取得が出来ません。
EnumWindowsはなんとか出来たので、それを元にやっているのですが
EnumChildWindowsの使い方が理解できてません。
private delegate int EnumerateChildWindowsCallback(IntPtr hwndParent, int lParam);
[DllImport("user32.dll")]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumerateChildWindowsCallback lpEnumFunc, int lParam);
public int EnumerateChildWindows(IntPtr hwndParent, IntPtr lpEnumFunc, IntPtr lParam)
{
return 1;
}
public void main(IntPtr hWnd)
{
EnumChildWindows(hWnd, new EnumerateChildWindowsCallback(EnumerateChildWindows), 0);
}
これで「デリゲート 'LTLimit.WindowHandle.EnumerateChildWindowsCallback' に一致する
'EnumerateChildWindows' のオーバーロードはありません。」と出ます