ふらっとC#,C♯,C#(初心者用) Part27
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/04/15(火) 17:41:19「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。
ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。
内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
前スレ
ふらっとC#,C♯,C#(初心者用) Part26
http://pc11.2ch.net/test/read.cgi/tech/1206238049/
0002デフォルトの名無しさん
2008/04/15(火) 17:41:44http://pc11.2ch.net/test/read.cgi/tech/1200911737/
C♯, C#相談室 Part34
http://pc11.2ch.net/test/read.cgi/tech/1162467959/
【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】
http://pc11.2ch.net/test/read.cgi/tech/1162950198/
Windows Live プログラミング
http://pc11.2ch.net/test/read.cgi/tech/1188112572/
初心者のためのプログラミング言語ガイド Part8
http://pc11.2ch.net/test/read.cgi/tech/1208186034/
0003デフォルトの名無しさん
2008/04/15(火) 17:42:05http://google.com/
http://homepage3.nifty.com/midori_no_bike/CS/
http://www.atmarkit.co.jp/fdotnet/dotnettips/index/index.html
http://dobon.net/vb/dotnet/
http://jeanne.wankuma.com/tips/
http://www.labasp.net/CsharpNote/
0004デフォルトの名無しさん
2008/04/15(火) 17:44:23次スレは>>950
0005デフォルトの名無しさん
2008/04/15(火) 23:22:01・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる
糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。
・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
バグレポートなどしてはいけません。改善要求などもってのほかです。
あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
なんて話が出たら力強く机を叩き、会議室を出ましょう。
あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。
糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
0006デフォルトの名無しさん
2008/04/15(火) 23:28:110007デフォルトの名無しさん
2008/04/18(金) 14:15:47Microsoft Math Add-inってどこにあるん?
0008デフォルトの名無しさん
2008/04/18(金) 14:19:27http://www.microsoft.com/downloads/details.aspx?FamilyID=030fae9c-704f-48ca-971d-56241aefc764&displaylang=en
日本語はなかったりする。
英語でぐぐったらすぐ出てくる。
0009デフォルトの名無しさん
2008/04/18(金) 17:32:06Word 2007 Add-in: Microsoft Mathって書いてあるけど
Excelはないの?
0010デフォルトの名無しさん
2008/04/18(金) 23:41:58あー、Word 限定なんだなぁ・・・
なんと中途半端な。
Word で書いた数式、クリップボード経由でエクセルに張り付けると、
単なるビットマップになる・・・
0011デフォルトの名無しさん
2008/04/19(土) 03:05:44だれかうpしてクレー
0012デフォルトの名無しさん
2008/04/19(土) 04:17:390013デフォルトの名無しさん
2008/04/19(土) 20:33:240014デフォルトの名無しさん
2008/04/19(土) 22:33:330015デフォルトの名無しさん
2008/04/19(土) 23:17:06デザイナ上で 3.14 とか書いてもstring型になっちゃうんだが
double型を設定したい場合はプログラム上で書くしかないん?
VC#2008 Express
0016デフォルトの名無しさん
2008/04/19(土) 23:45:26Designer.csを開いてダブルクォーテーション消せばいいんでないの?
プロパティウインドウから触ったらstringに戻るから、
他の人もさわるならやめたほうがいいと思うけど。
001715
2008/04/20(日) 00:03:54thx
0018デフォルトの名無しさん
2008/04/20(日) 14:09:57教えてください
0019デフォルトの名無しさん
2008/04/20(日) 14:14:000020デフォルトの名無しさん
2008/04/20(日) 14:23:180021デフォルトの名無しさん
2008/04/20(日) 15:26:04無駄なスレ多すぎなのか開発環境がそんだけ多いのか・・・
0022デフォルトの名無しさん
2008/04/20(日) 17:35:310023デフォルトの名無しさん
2008/04/20(日) 17:41:39http://sund1.sakura.ne.jp/uploader/source/up22287.htm
http://sund1.sakura.ne.jp/uploader/source/up22288.zip
0024デフォルトの名無しさん
2008/04/20(日) 19:32:09ari
0025デフォルトの名無しさん
2008/04/21(月) 04:56:26MTとかなの?
CのRandは使い物にならなかったけど。
あと高精度のタイマーって何?
マルチメディアやゲームにも使えるタイマーありますか?
0026デフォルトの名無しさん
2008/04/21(月) 05:04:09ttp://takel.jp/mt/
0027デフォルトの名無しさん
2008/04/21(月) 09:14:55ピクセル毎に描画する色を最終決定しているのはどこなのでしょうか?
CPUがいちいち計算して出しているのか、それともGPUに任せているのか
どちらなのでしょうか?
0028デフォルトの名無しさん
2008/04/21(月) 10:55:23ttp://journal.mycom.co.jp/articles/2003/10/25/28/bench/004.html
ここの文章でグラボでGDI+の描画性能が決まることがはっきりわかりました。
GPUに任せているということですね。
0029デフォルトの名無しさん
2008/04/21(月) 11:18:130030デフォルトの名無しさん
2008/04/21(月) 11:31:10グラボ(笑)
0031デフォルトの名無しさん
2008/04/21(月) 11:35:13答えられんがアルファはGDIとGDI+ならCPUが頑張ってることが多い。
0032デフォルトの名無しさん
2008/04/21(月) 11:48:01sw = new StreamWriter(filename, false, Encoding.GetEncoding("EUC-JP"));
int len = (int)webBrowser1.DocumentStream.Length;
byte[] doc = new byte[len];
webBrowser1.DocumentStream.Read(doc, 0, len);
Encoding enc = Encoding.GetEncoding(webBrowser1.Document.Encoding);
sw.Write(enc.GetString(doc));
sw.Close();
とDocumentCompletedイベントに記述したのですが、webbrowserでは表示できているにも拘わらず、
ファイル側にはフレームに未対応のブラウザは〜としか書き込まれません。
何が問題なのでしょうか?
0033デフォルトの名無しさん
2008/04/21(月) 12:49:29強いて挙げるなら、>>32のHTMLに対する理解が不足してることくらい
フレームの中に表示されているhtmlも保存されるようにしたい、ということなら
自分で保存する処理を書けばいい
0034デフォルトの名無しさん
2008/04/21(月) 14:13:41とりあえずはペイントの部分の、ユーザが自由にラインを引ける部分あたりを作りたいのですが、何からはじめていいのやら
参考になるモノ、サイトなどありませんか?
0035デフォルトの名無しさん
2008/04/21(月) 14:17:290036デフォルトの名無しさん
2008/04/21(月) 16:31:43確かに問題ないようですね。
foreach (HtmlWindow hw in webBrowser1.Document.Window.Frames)
{
HtmlDocument hd = hw.Document;
text_memo.Text = hd.GetElementsByTagName("html")[0].OuterHtml;
}
とすると取得できましたが、どこかのインターフェースを介しているためオリジナルのソースと違った物が得られます。
これはどうやって回避すればいいのでしょうか?
0037デフォルトの名無しさん
2008/04/21(月) 19:31:47そんなことココで聞いている時点で止めといた方が良いと思うが、あえて
やるなら35の言うとおり、Paint.Netのソースを追ってみるのがいいんじゃないか?
ラインだけ引けたってレイヤ付きペイントツールの道はまだまだだからな。
0038デフォルトの名無しさん
2008/04/21(月) 21:11:51時間測るだけならStopwatch
0039デフォルトの名無しさん
2008/04/21(月) 23:58:44これYoutubeに複数のファイルをバッチアップロードするソフトなんだけど
アップロード後のpublic/pravate(公開/非公開)が設定できないのです(設定項目が無い)。
これ同種のソフトが色々ある中ではかなり使いやすくて、
唯一こいつは日本語のファイルパスが通るので、もし上記の設定が出来たら
自分も含めてかなり需要あると思うです。
誰か直してくれませんか? ソース見たけどC#全然分からないッス。
http://sourceforge.net/project/showfiles.php?group_id=189431&package_id=221912
0040デフォルトの名無しさん
2008/04/22(火) 00:24:20誰かお願いします
0041デフォルトの名無しさん
2008/04/22(火) 00:31:160042デフォルトの名無しさん
2008/04/22(火) 00:32:20C#, C♯, C#相談室 Part46
http://pc11.2ch.net/test/read.cgi/tech/1208791919/
0043デフォルトの名無しさん
2008/04/22(火) 00:38:25乙です、ところでテンプレは?
一緒になって書いてぐちゃぐちゃになったら困るので、もし書かないなら返答お願いします。
0044デフォルトの名無しさん
2008/04/22(火) 00:44:01無責任だな、とりあえずテンプレ自分書きます、他の人書かないでください。
0045デフォルトの名無しさん
2008/04/22(火) 00:46:55テンプレぐらい自分ではれよw
0046デフォルトの名無しさん
2008/04/22(火) 00:47:34youtubeにファイルをアップする際のバッファのどの部分にどのように記述すれば
public/privateの設定ができるのかを教えてくれたら考えてもいい。
0047デフォルトの名無しさん
2008/04/22(火) 00:49:04立てて放置はねぇーだろ
0048デフォルトの名無しさん
2008/04/22(火) 00:52:380049デフォルトの名無しさん
2008/04/22(火) 00:57:000050デフォルトの名無しさん
2008/04/22(火) 01:05:31お世話になります
これから調べてくるッス
日付が変わるまでにはなんとか
0051デフォルトの名無しさん
2008/04/22(火) 03:28:01void hoge(char *str){
printf("%s",str);
}
のとき
[DllImport("hoge.dll")]
static extern void hoge(string str);
とすると
hoge("hoge");
で呼び出せて
[DllImport("hoge.dll")]
static extern void hoge(char[] str);
とすると
hoge("hoge".ToCharArray());
で呼び出せるみたいなんだけど、これってコンパイラがstringをchar[]に勝手に変えてくれてるの?
仕組みとか注意点とかあれば教えていただきたい。
0052デフォルトの名無しさん
2008/04/22(火) 06:33:59StringがChar[]に変換されるのではなく、StringもChar[]もchar*に変換されてDLLに渡される。
.NETの型ごとに、プラットフォーム呼び出しの時、どんな型に変換されるか決まっている。くわしくは「規定のマーシャリング」でググれ。
0053デフォルトの名無しさん
2008/04/22(火) 07:13:09おそらくここだけだと思う。宜しくご検討お願いします。
<form method="post" enctype="multipart/form-data" action="http://lax-v133.lax.youtube.com/my_videos_post" name="theForm" id="theForm" onSubmit="return formValidator();">
// private(非公開)
<input type="hidden" id="field_privacy" name="field_privacy" value="private">
// public(公開)
<input type="hidden" id="field_privacy" name="field_privacy" value="public">
</form>
0054デフォルトの名無しさん
2008/04/22(火) 08:36:000055デフォルトの名無しさん
2008/04/22(火) 08:48:280056デフォルトの名無しさん
2008/04/22(火) 09:43:32どなたかdatファイルをいただけないでしょうか。
0057デフォルトの名無しさん
2008/04/22(火) 10:20:32| 5 | 6 |
| 3 | 4 |
| 1 | 2 |
って風に3段に並べたいだけなんだけど、ビルドすると勝手に
| 3 | 4 |
| 5 | 6 |
| 1 | 2 |
のように並べ変えられる。これって自分だけ?
何か対処法を知ってたら教えてください。
0058デフォルトの名無しさん
2008/04/22(火) 11:19:32DBにInt型で保存されてる値を取り出す時にUInt型として扱いたいのですが
0059デフォルトの名無しさん
2008/04/22(火) 11:41:39uintやUInt32はあるけど?
0060デフォルトの名無しさん
2008/04/22(火) 13:27:34http://www-2ch.net:8080/up/download/1208838402670654.eu5h9t
pass: furatto
0061デフォルトの名無しさん
2008/04/22(火) 13:38:06と思って下のようにコードを書いたのですが、
もっと簡単に属性を変える方法はありますか?
public class MyListView : ListView
{
public MyListView() {
View = View.Details;
}
//[Browsable(false)]
[DefaultValue(View.Details)]
public new View View { get { return base.View; } set { base.View = value; } }
}
0062デフォルトの名無しさん
2008/04/22(火) 18:54:11breakを使うとwhile文の中のif文では、while文を抜けてしまいます。
どうすればいいかおしえてください。
0063デフォルトの名無しさん
2008/04/22(火) 18:55:03ありがとうございます。助かりました。
回答をくださった方もありがとう。
0064デフォルトの名無しさん
2008/04/22(火) 18:55:57強制的に抜けなくてもいいよう、もう一段ifをネストする
0066デフォルトの名無しさん
2008/04/22(火) 21:56:50まぁ、毎日アミ持って野山を駆け回って遊んでただけなんだけど、ある日すごいのを捕まえました。
体長13.5cmのトノサマバッタ(足含まず)
まぁ、もちろん標本にして学校に提出したんだけど、次の日には学校中の噂が広がって展示場の理科室は昼休みなんかメチャ混みになっちゃったんだよね。
でも、2日ほどで撤去されちゃった上、学校が全校生徒にこんな内容のプリントを配った。
理科室にあった標本のバッタは、トノサマバッタではなく、外国のバッタである事がわかりました。
日本の生物では無いので、気にしないように。
その後、両親と共に校長室に呼ばれ、先生ではない数人の大人と話をし、両親はハンコを押したり、生活指導方針がどーとか難しいコトを言われてました。
子供心に「怒られてるんだ」ってのはわかりました。
それから十数年が経ち、なにげなく当時の事を思い出して両親に尋ねると・・・
名前 大きさ つかまえた場所
トノサマバッタ 13.5cm 浜○原子力発電所緑地公園
↑
コレが、まずかったらしい。
0067デフォルトの名無しさん
2008/04/22(火) 21:58:100068デフォルトの名無しさん
2008/04/22(火) 22:14:15public class hoge{
・・・
}
と定義してあって、
hoge Vhoge = new hoge();
でインスタンスを生成し、Vhogeにはバイナリのデータが入ってるとします。
System.Io.File.WriteAllBytes を使ってバイナリを出力したいのですが、
そのような場合、第二引数としては、何を渡したらよいのでしょうか?
0069デフォルトの名無しさん
2008/04/22(火) 22:23:340070デフォルトの名無しさん
2008/04/22(火) 22:36:210071デフォルトの名無しさん
2008/04/22(火) 22:38:590072デフォルトの名無しさん
2008/04/22(火) 22:39:48一、UCがセゾン傘下である事実を受け入れること
一、UCは流通系となった事実を受け入れること
一、クレディセゾンを誹謗中傷しないこと
一、セゾンUCを大切にすること
0074デフォルトの名無しさん
2008/04/22(火) 23:20:14からbyte[]のメンバを持ってるんじゃないの?
何か別のかたちで持ってる?
0075デフォルトの名無しさん
2008/04/22(火) 23:21:23bytes
型 : System.Byte[]
ファイルに書き込むバイト。
007668
2008/04/22(火) 23:43:11実際には、こんな定義になってます。
(とあるサンプルなので、中身は置いておいてもいいとは思いますが)
[StructLayout(LayoutKind.Explicit)]
public class hoge
{
[FieldOffset(0)]
public short type_a;
[FieldOffset(2)]
public short type_d;
[FieldOffset(4)]
public short datano_s;
[FieldOffset(6)]
public short datano_e;
[FieldOffset(8),
MarshalAs(UnmanagedType.ByValArray, SizeConst = 10000)]
public byte[] cdata;
}
これを、そのままのイメージでバイナリ出力したかったのですが・・・。
で、Vhogeのアドレスを渡したら、出力できるかと思ったのですが、
型の変換ができなかったので、いい方法はないかと思案中です。
0077デフォルトの名無しさん
2008/04/23(水) 00:32:190078デフォルトの名無しさん
2008/04/23(水) 06:47:30なんでそこまできっちり定義してるのに、>>68に略したのかわからん。
68の書き方じゃ求めていた答えが返ってくるわけがない。
P/Invokeで出来るんだから、何か方法があると思うのが普通。
初めて調べたけど正解は、Marshal.StructureToPtrかな?
0079デフォルトの名無しさん
2008/04/23(水) 07:13:492回コピーするのが気に入らん。
int size = Marshal.SizeOf(Vhoge);
byte[] data = new byte[size];
IntPtr pnt = Marshal.AllocHGlobal(size);
try{
Marshal.StructureToPtr(Vhoge, pnt, false);
Marshal.Copy(pnt, data, 0, size);
} finally {
Marshal.FreeHGlobal(pnt);
}
0080デフォルトの名無しさん
2008/04/23(水) 07:19:260081デフォルトの名無しさん
2008/04/23(水) 08:53:150082デフォルトの名無しさん
2008/04/23(水) 09:17:47お前は何を言っているな
0083デフォルトの名無しさん
2008/04/23(水) 09:55:010084デフォルトの名無しさん
2008/04/23(水) 14:01:28とりあえず下記の様に通常コードを作成しましたが
headlineの項目をこの様に決め打ちするのでなくforループなどで動的に追加したいと思っています
どのようなに書けばいいでしょうか。ご助言願いたいです。
// コンテキストメニューの動的作成
public void ContextMenuCreate(int number)
{
// イベントハンドルを宣言
EventHandler eh = new EventHandler(MenuFactorOnClick);
MenuItem[] ItemMenu = {
new MenuItem("headline_" + 1, eh),
new MenuItem("headline_" + 2, eh),
new MenuItem("headline_" + 3, eh),
};
ContextMenu = new ContextMenu(ami);
}
0085デフォルトの名無しさん
2008/04/23(水) 14:04:08引数のintはforループに用いようと思っていたのを消し忘れました。
ContextMenuの宣言で[ami]となっていますが[ItemMenu]の間違いです。
0086デフォルトの名無しさん
2008/04/23(水) 14:19:44MenuItem.MenuItems.Add()
0087デフォルトの名無しさん
2008/04/23(水) 15:09:37下記の用に書くことで目的の動作を果たせました。
// コンテキストメニューの動的作成
public void ContextMenuCreate(int number)
{
// イベントハンドルを宣言
EventHandler eh = new EventHandler(MenuFactorOnClick);
// コンテキストメニューを作成
ContextMenu = new ContextMenu();
// メニュー数を設定
ItemMenu = new MenuItem[number];
// メニューの追加
for (int i = 0; i < number; i++)
{
ItemMenu[i] = new MenuItem("headline_" + i, eh);
ContextMenu.MenuItems.Add(ItemMenu[i]);
}
}
0088デフォルトの名無しさん
2008/04/23(水) 15:15:33クライアント側からTcpClient.Connect();で接続しようとすると
「接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。
または接続済みのホストが応答しなかったため、確立された接続は失敗しました。」
ってエラーが発生します。
エラーになるまで20秒くらいかかってしまうのですが、
もっと早く接続できないと判断することはできないのでしょうか?
008962
2008/04/23(水) 16:22:39どうすればいいですか?
0090デフォルトの名無しさん
2008/04/23(水) 16:25:03何故それで駄目かくらい書け。
0091デフォルトの名無しさん
2008/04/23(水) 16:32:33とりあえずMSDNみてみ
0092デフォルトの名無しさん
2008/04/23(水) 16:37:41いや、62はコード出す・出さない以前の問題じゃね?
if 文を break で抜けれるとか思ってる時点で何かおかしい。
0093デフォルトの名無しさん
2008/04/23(水) 16:55:00レスありがとう。
だがMSDNのどこを調べればいいのかわからない。
できたら場所を、教えてください。
0094デフォルトの名無しさん
2008/04/23(水) 16:56:160095デフォルトの名無しさん
2008/04/23(水) 16:57:460096デフォルトの名無しさん
2008/04/23(水) 17:01:31Control.ModifierKeysを使ってモディファイアキーを判定したい。
詰まっている箇所:
複数のモディファイアを判定する方法がわからない(Shift + Alt + Vなど)
どなたかアドバイスいただけないでしょうか
0097デフォルトの名無しさん
2008/04/23(水) 17:06:01Keys構造体はただのビット値。
(Control.ModifierKeys & Keys.Shift) != Keys.None) & ((Control.ModifierKeys & Keys.Control) != Keys.None)
こんな感じでいけるはず
0098デフォルトの名無しさん
2008/04/23(水) 17:11:120099デフォルトの名無しさん
2008/04/23(水) 17:13:16なんでC#は似たような比較方式を採用しなかったんだろう
0100デフォルトの名無しさん
2008/04/23(水) 21:10:060101デフォルトの名無しさん
2008/04/23(水) 21:10:310.0.0.0 とやれば全指定なんですが
範囲指定したい場合、例えば
192.168.1.0とかやると
192.168.1.0〜192.168.1.255
とかできるんでしょうか?
0102デフォルトの名無しさん
2008/04/23(水) 21:24:02>>98
ありがとうございました。
うまく動作させることができました
0103デフォルトの名無しさん
2008/04/23(水) 21:25:10192.168.1.0であれば192.168.1.0のみになる。
0.0.0.0は特例でそういう使い方は普通ワイルドカードを利用する。
0104デフォルトの名無しさん
2008/04/23(水) 21:51:06ありがとうございました。
0105デフォルトの名無しさん
2008/04/23(水) 22:15:26do { } while(false)
とか?
>>99
((enumValue & flag) == flag)
を返す演算子があってもよさそうだよな
010668
2008/04/23(水) 22:17:31MyStruct o = new MyStruct();
...
IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(o));
try {
Marshal.StructureToPtr(o, ptr, false);
byte[] bytes = new byte[Marshal.SizeOf(o)];
Marshal.Copy(ptr, bytes, 0, Marshal.SizeOf(o));
...
} finally {
Marshal.FreeHGlobal(ptr);
}
に当たったので、>>79 さんのサンプルでいいみたいです。
助かりました。
0107デフォルトの名無しさん
2008/04/23(水) 22:38:29フラグはわざと便利にしてない感じがするなあ
分からないなら使わなくていい,使うにしても控えめに,っていうような意図を感じる
0108デフォルトの名無しさん
2008/04/24(木) 00:51:00間違いなくその通りだろうな、Win32APIのラッパーが避けられない以上、やむなく残した
としか思えないところがあるな。
0109デフォルトの名無しさん
2008/04/24(木) 00:53:43パッと見javaと似てるけど、なんじゃこれは?
というのもあります。
public xclass() : base(xclass.MethodA()) {
Console.WriterLine("XClass constructor");
}
xclass()メソッドの後ろにある、コロンとメソッド、
これは一体なんですか。
メソッドの直後にメソッドて・・・・??。
想像もつかんです。
しかもこの本には意味が書いてない。。
どういう動作になるんでしょう?
0110デフォルトの名無しさん
2008/04/24(木) 00:55:42マルチスレッドだね、使用しないビットに対してもリードもライトもロックが必要になるが、どこまでロックが必要か訳わからんようになる。
0111デフォルトの名無しさん
2008/04/24(木) 00:56:140112デフォルトの名無しさん
2008/04/24(木) 01:02:39ありがとうございます。
他の本で読んだ記憶がうっすらよみがえってきました。。
0113デフォルトの名無しさん
2008/04/24(木) 01:06:04って何、コンパイルできないような気がしたので、自分の知識が不足しているのか、間違っているのか気になる。
0114デフォルトの名無しさん
2008/04/24(木) 01:12:42デリゲートが引数になっているメソッドには、そのデリゲートに合うメソッドを引数として渡せる。
実際には、デリゲートのインスタンスが生成されているんだけど。
0115デフォルトの名無しさん
2008/04/24(木) 01:18:03MethodA の正体は static 関数?
ちょっと原文みてみたいですね、'WriterLine' だしw
0116デフォルトの名無しさん
2008/04/24(木) 07:02:100117デフォルトの名無しさん
2008/04/24(木) 07:05:22http://sakuratan.ddo.jp/uploader/source/date79504.png
上の画像のようなGUIを扱いたいのですがどうすればよいのでしょうか?
0118デフォルトの名無しさん
2008/04/24(木) 07:50:040119デフォルトの名無しさん
2008/04/24(木) 08:22:53ユーザコントロールを作る
OnPaintBackgroundをオーバーライドして背景を描画しないようにする
OnPaintをオーバーライドして各頂点およびエッジを描画する
その他にも細々と設定しないといけないプロパティとかあるかも。
パフォーマンス?さぁ…
0120デフォルトの名無しさん
2008/04/24(木) 09:03:00enumに同期させてenum.firstならば"最初"
enum.secondならば"二回目"とか任意の文字列を得るのに
スマートな実装方法を教えて下さい
0121デフォルトの名無しさん
2008/04/24(木) 09:09:420122デフォルトの名無しさん
2008/04/24(木) 09:16:130123デフォルトの名無しさん
2008/04/24(木) 09:32:34明示的にバラバラしてるんならできないけど
0124デフォルトの名無しさん
2008/04/24(木) 10:00:02Dictionaryじゃダメな理由を聞こうか
0125デフォルトの名無しさん
2008/04/24(木) 10:27:06どなたか知ってたらヒントください。
0126デフォルトの名無しさん
2008/04/24(木) 12:57:38ttp://bbs.wankuma.com/search.cgi?no=0&word=%94%F1%93%AF%8A%FATCP&andor=and&logs=17.txt&PAGE=50
0127デフォルトの名無しさん
2008/04/24(木) 12:57:58Recieveにはタイムアウト設定できたと思うが、Connectには無理だったと思う
0128デフォルトの名無しさん
2008/04/24(木) 13:46:50はい、できません。
最近のWindowsなら、レジストリいじればシステムグローバルな
値は変更できると思うけど。
TCP周りのいろんな設定値はユーザーランドではいじれない実装の
OSがほとんどです。
0130デフォルトの名無しさん
2008/04/24(木) 19:58:220131デフォルトの名無しさん
2008/04/24(木) 20:01:020132デフォルトの名無しさん
2008/04/24(木) 20:16:01メニューの数が可変であるためにVSに頼らず動的に作成しているのですが
生成番号に対応したショートカットを動的に与えるにはどのようにすればいいでしょうか
下記の様なイメージです。
Item1(&Alt + 1)
Item2(&Alt + 2)
Item3(&Alt + 3)
0133デフォルトの名無しさん
2008/04/24(木) 20:17:18無理矢理日本語で言うなら「いーくぉーる」かな。
ちなみに日本語で言う「イコール」のことな
0134デフォルトの名無しさん
2008/04/24(木) 20:42:20UI(WinForm)をロックさせないためにBackgroundWorkerを使用しています。
BackgroundWorkerからはFTPコマンドを扱うクラス(FTPClass)のメソッド(UploadMethod)を呼び出しています。
この時、UploadMethodの進捗をUI(WinForm)に表示させたいのですが、
この場合UploadMethodの中でWinFormのコントロールを操作する処理をさせるしか
ないのでしょうか?
(実際にはWinFormはSTAなのでBackgroundWorkerのメソッドを介してUI変更を行います)
というのも、その場合UploadMethod内のUI変更の処理は上位クラス(WinForm)の
実装を意識しないといけなくなるわけで、クラス間の結合が密になってしまうのは
好ましくないかなと感じまして。
0135デフォルトの名無しさん
2008/04/24(木) 20:43:02いーくぁるず
>>132
ちょっと↑の方のレス見ろ
0136デフォルトの名無しさん
2008/04/24(木) 20:48:12ショートカットを設定することは出来るが、Altは使えないんじゃないかな。
Altを押した時点でコンテキストメニューは消えると思う。
ショートカットの設定は、ToolStripMenuItemなら
.ShortcutKeys = (Keys)(Keys.D0 + i);
でできる。
0137デフォルトの名無しさん
2008/04/24(木) 20:49:45レスありがとうございます。
>>84-87のところでしょうか?
私が行いたいのは(&Alt + 1)の数字の部分を要素にあわせてインクリメントする(イメージ)なので
コンテキストメニュー自体を動的生成している>>84-87とは問題が違ってしまいます。
説明不足申し訳ありません。
0138デフォルトの名無しさん
2008/04/24(木) 20:50:39UploadMethodが進捗を返すのなら(返すか知らんけど)BackgroundWorker内で
PeportProcessイベントを発生させればフォームに進捗を伝えられる
0139デフォルトの名無しさん
2008/04/24(木) 20:55:59なんか発想が変な気がするよw
別にコンテキストメニューである必要もないし、メニュの数を動的に変える
必要も必ずしもないんじゃないの?
ディセーブルにすれば十分に思うし、その方がユーザーにとっても明示的で
わかりやすいよ。
もしコンテキストメニュー「も」必要なら、ポップアップするタイミングで
メインメニューのメニューを丸ごと奪い取ればいいんだし。
0140デフォルトの名無しさん
2008/04/24(木) 21:00:15括弧でアンダーラインが入ってるパターンのなら
ToolStripMenuItem.Text = "背景色に設定(&1)";
みたいに前に&つけるだけだよ
0141デフォルトの名無しさん
2008/04/24(木) 21:02:55判然としないねw
いずれにせよちょっとピンボケした発想だと思う
0142デフォルトの名無しさん
2008/04/24(木) 21:08:29レスありがとうございます。
ToolStripMenuItemでなくMenuItemで行ったのですが
.ShortcutKeys = (Keys)(Keys.D0 + i);でキャストエラー
.ShortcutKeys = (Shortcut)(Keys.D0 + i);でコンパイルは通りますが
実行時に「引数値'value'(50)は列挙型'Shortcut'に大して無効です。」とエラーになります。
>>139
ホットキーでコンテキストメニューを呼び出し全ての操作をメニュー上で行うという
かなり変則的なプログラムを作っております。
通常の操作であればディセーブルで十分なのはご指摘の通りだと思います。
レスありがとうございます。
>>140
レスありがとうございます。
えと、それはItem1(1)の1の下にアンダーバーが表示されるだけで
それだけでショートカットとして認識される訳ではありませんよね?
>>141
申し訳ありません。
ショートカットキーとアクセレーターキーの違いを知りませんでした。
アクセレーターキーを実装したいと考えています。
0143デフォルトの名無しさん
2008/04/24(木) 21:11:09ねえ、だからそれメインメニューじゃいかんの?
なんでそんなウィンドウズの標準のお作法から外れたことをしたがるのか理解できんよ。
0144デフォルトの名無しさん
2008/04/24(木) 21:31:03UploadMethod内では
1.アップロードファイルの確認
2.アップロードコマンドの発行
3.アップロードコマンドの終了
と3つのプロセスに分かれているのですが、それぞれのプロセスが終了するごとに
UIに通知したいと考えています。各プロセスをさらにメソッド単位に分解し、
それぞれの完了ごとにReportProgressを呼ぶことも考えましたが、何かスマートな方法
は無いかものかと。
例えばWinForm側にリスナのようなものを追加し、それぞれのプロセスが終了するごとに
イベントを発生させ、リスナからReportProgressを呼び出す。と言ったような事は
可能なものでしょうか?
0145デフォルトの名無しさん
2008/04/24(木) 21:34:26デザイナで実際に設定してみればわかると思うけど、ショートカットにはCtrlかAltが必ず必要だったと思う。
それにデザイナで設定できることは、実際に設定してみてDesignet.csがどう生成されたか見るのが早い。
ToolStripMenuItem.ShortcutKeys = (Keys)(Keys.Alt | (Keys.D0+i));
試してないけどみたいな感じで出来るんじゃないかな。
0146デフォルトの名無しさん
2008/04/25(金) 05:48:07必ずそういうこと言う人がいるけど質問者の条件を変えようとするレスは書かなくていいです。
0147デフォルトの名無しさん
2008/04/25(金) 07:32:18可能
Javaの人?
0148デフォルトの名無しさん
2008/04/25(金) 08:21:57君のような思考を「フェティシズム」って言うんだよ
0149デフォルトの名無しさん
2008/04/25(金) 09:45:18なんで?
0150845
2008/04/25(金) 09:46:50たいては後で直さなきゃいけなくなるんだけど
0151デフォルトの名無しさん
2008/04/25(金) 10:18:54仕様にケチつけると話題がそっちに流れるだろ。
もうちょっと考えような。
0152デフォルトの名無しさん
2008/04/25(金) 10:38:380153デフォルトの名無しさん
2008/04/25(金) 11:00:520154デフォルトの名無しさん
2008/04/25(金) 11:17:480155デフォルトの名無しさん
2008/04/25(金) 11:20:400156デフォルトの名無しさん
2008/04/25(金) 11:21:450157デフォルトの名無しさん
2008/04/25(金) 12:11:42それならいいよね。建設的だし。
でも批判するだけなら分かってない人でも出来ちゃうから厄介。
0158デフォルトの名無しさん
2008/04/25(金) 12:20:54JavaとC#の二束の草鞋です。
C#の場合はリスナそのものに該当する仕組みは無く、
delegateを使用してリスナ相当を実装する必要があるのかなと考えているのですが
0159デフォルトの名無しさん
2008/04/25(金) 13:10:500160デフォルトの名無しさん
2008/04/25(金) 13:21:20�@FtpClassにOwnerプロパティを実装
public Form Owner{ get; set;}
�AUploadMethodを呼ぶ前にOwnerにthis(つまりWinForm)をセット
ftpClass.Owner = this;
�BUploadMethod内のイベントを通知したいタイミングでOwner.Invoke()を呼ぶ
if(Owner!=null && UploadFileCheckEventHandler != null)
Owner.Invoke(UploadFileCheckEventHandler(FtpEventArgs))
これでどうだろうか
0161158
2008/04/25(金) 13:28:19訂正
public event FtpUpLoadEventHandler UpFileChecked;
public event FtpUpLoadEventHandler UpLoadStarted;
public event FtpUpLoadEventHandler UpLoadFinished;
こんなようなイベントを実装して、
if(Owner!=null && UpFileChecked != null)
Owner.Invoke(UpFileChecked(FtpEventArgs))
とかで呼び出す
0162デフォルトの名無しさん
2008/04/25(金) 14:37:12C#のイベント処理に疎いので、少し教えていただきたいのですが、
この場合Ownerで示されるFormクラスのインスタンスに、UpFileCheckedイベントが通達
されるという認識でよろしいでしょうか?
その場合、Owner.Invokeでイベントを発行している形なので、FTPClassがイベントを
通達できるのはFormクラスのインスタンスに限られてしまい、FTPClassはFormクラスと
依存関係になってしまうのではと考えているのですが。
0163デフォルトの名無しさん
2008/04/25(金) 14:49:02obj.Parent 以外に対しても透明化というのは、無理なんでしょうか?
もしくはレイヤードパネルみたいなものはないですか?
やりたいのは
// A,B 両方表示(A,B は完全に重なっているコントロール)
A.Parent = parent;
B.Parent = parent;
// A だけ表示
A.Visible = true;
B.Visible = false;
// B だけ表示
A.Visible = false;
B.Visible = true;
みたいなことなんですが・・・
0164134
2008/04/25(金) 14:58:41×(実際にはWinFormはSTAなのでBackgroundWorkerのメソッドを介してUI変更を行います)
○(実際にはWinFormはSTAなのでWinFormのInvokeメソッドを介してUI変更を行います)
0165デフォルトの名無しさん
2008/04/25(金) 15:12:27FTP クラスが ProgressChanged みたいなイベント公開すればいい。
アップロード中に適当に状況が変わるなりすればイベントを起動する。
Form は その ProgressChanged イベントのイベントハンドラで Invoke して GUI に反映させる。
Owner はいらんな。SynchronzingObject ならあってもいいけど。
0166デフォルトの名無しさん
2008/04/25(金) 21:45:27見た目を気にするなら諦めてWPFに乗り換えましょう
0167デフォルトの名無しさん
2008/04/25(金) 22:03:36これを見た感想おしてください(しょぼすぎますがその辺はご了承ください)
0168デフォルトの名無しさん
2008/04/25(金) 22:06:55二足のわらじって、君思いっきりJava脳じゃん?
まぁ>>161でもちらっと出てるけどeventを作ればいいよ
http://dobon.net/vb/dotnet/vb2cs/event.html
0169デフォルトの名無しさん
2008/04/25(金) 22:10:55たいへんよくできませんでした
0170167
2008/04/25(金) 22:12:08あとどんなものつけたら面白くなりますか?
0171デフォルトの名無しさん
2008/04/25(金) 22:28:51同じような処理はメソッドにまとめましょう
どうでもいいけどhRandomっていう名前がキモい
参照型変数にhを付けることにしてるのか知らないけどそんなのあんまり意味無いし
付けるならslotにも付けないとおかしい
0172デフォルトの名無しさん
2008/04/25(金) 22:29:17感想言っていいのか?本当にいいのか?
0173デフォルトの名無しさん
2008/04/25(金) 22:31:060174167
2008/04/25(金) 22:36:020175デフォルトの名無しさん
2008/04/25(金) 22:37:360176デフォルトの名無しさん
2008/04/25(金) 22:40:27教えていただいたことを参考にFTPClassにイベントを追加し
呼出元でイベントをハンドリングすることで希望通りの動作ができました。
ありがとうございました
0177デフォルトの名無しさん
2008/04/25(金) 23:08:55using System;
class slot{
static void Main(){
Console.Write("コインのもち数を入力してください");
int coin = int.Parse(Console.ReadLine());
int bell = 10,suika = 6,replay = 3;
int[] slot = new int[9];
Random rand = new System.Random();
while (coin >= 3){
coin -= 3;
int koyaku = rand.Next(1, 101);
//スロットの値設定
for(int i = 0;i < slot.Length;i++){slot[i] = rand.Next(1,4);}
//約100回に一回当たるよく分からないなにか
if(koyaku == 1){
coin += 5;
Console.Write("○ ○ ○\n○ 5 ○\n○ ○ ○\ncoin={0}\n\n",coin);
}
//通常処理
for(int i = 0;i < slot.Length;i+=3){
if(slot[i] == slot[i+1] && slot[i] == slot[i+2]){
coin += (slot[0] == 1) ? bell : (slot[0] == 2) ? suika :replay;
}
}
//表示
for(int i = 0;i < slot.Length;i+=3){Console.Write("{0} {1} {2}\n",slot[i]+i, slot[i+1]+i, slot[i+2]+i);}
Console.WriteLine("ncoin=" + coin);
Console.ReadLine();
}
}
}
0178167
2008/04/25(金) 23:25:09プログラム初心者なんでそんなfor文使うなんて考えてませんでした。
ありがとうございます。
0179デフォルトの名無しさん
2008/04/26(土) 01:37:560180デフォルトの名無しさん
2008/04/26(土) 01:39:040181デフォルトの名無しさん
2008/04/26(土) 01:43:330182デフォルトの名無しさん
2008/04/26(土) 02:18:300183デフォルトの名無しさん
2008/04/26(土) 02:35:300184デフォルトの名無しさん
2008/04/26(土) 07:15:58の画像のようなDataGridViewを作りたいと思っているのですが「Age」の列のオプションをどのように設定すればよいのか分かりません。
どうかよろしくお願いいたします。
0185デフォルトの名無しさん
2008/04/26(土) 08:58:56背景グレー
スタティック(変更不可)
クリッカブル(選択可)
よく知らないけど。
0186デフォルトの名無しさん
2008/04/26(土) 10:47:13押されているキーを取得するにはどうすればいいのでしょうか?
0187デフォルトの名無しさん
2008/04/26(土) 11:00:56それってキーボードを直読みだから .netじゃ無理な気がするけど。
0188デフォルトの名無しさん
2008/04/26(土) 11:04:23ありがとうございます。
じゃあおとなしくフラグ使ってやります。
0189デフォルトの名無しさん
2008/04/26(土) 11:05:25GetKeyboardStateをdllimportしてくるとか
0190デフォルトの名無しさん
2008/04/26(土) 15:06:16static void Main(string[] args)
{
Application.EnableVisualStyles();
MainForm hogefrm = new MainForm();
hogefrm.Show();
}
と書いたところ、Formが一瞬表示されてすぐに終了してしまうのですが何故でしょうか?
0191デフォルトの名無しさん
2008/04/26(土) 15:08:22>MainForm hogefrm = new MainForm();
>hogefrm.Show();
をApplication.Run(new MainForm());にすればいいと思うよ
0192デフォルトの名無しさん
2008/04/26(土) 15:12:03回答どうもありがとうございます。
Main内で
hogefrm.なんとかかんとか
と行いたいのでApplication.Runは使用したくなかったのですが......
Main内に書かずMainForm.Loadに書くべきなのでしょうか?
0193デフォルトの名無しさん
2008/04/26(土) 15:15:02MainForm form = new MainForm();
form.Hoge();
Application.Run(form);
ってすればいいから
0194デフォルトの名無しさん
2008/04/26(土) 15:15:29Application.Run(hogefrm);とすればいい
0195デフォルトの名無しさん
2008/04/26(土) 15:42:27どうもありがとうございます。
おかげさまで解決しました。
0196デフォルトの名無しさん
2008/04/26(土) 17:02:560197デフォルトの名無しさん
2008/04/26(土) 17:57:190198デフォルトの名無しさん
2008/04/26(土) 18:22:34関数作って値かえせばええやん、みたいなとこでも
使われてません?
型とか修飾子あるから別になくてもいいじゃん。何か問題ある訳?
0199デフォルトの名無しさん
2008/04/26(土) 18:30:250200デフォルトの名無しさん
2008/04/26(土) 18:47:11そこはアクセサじゃなくてプロパティと言うべきところ。
0201デフォルトの名無しさん
2008/04/26(土) 19:05:03命名規則とリフレクションでプロパティのようなことをやらざるをえなかったけどな
0202デフォルトの名無しさん
2008/04/26(土) 19:09:500203デフォルトの名無しさん
2008/04/26(土) 19:18:59…イベントも忘れないであげて
0204デフォルトの名無しさん
2008/04/26(土) 19:29:40ラムダ式に慣れたら匿名メソッドを見ると吐き気を催すようになる
0205デフォルトの名無しさん
2008/04/26(土) 19:48:35Graphics grfx_moji = MainForm.mainform.CreateGraphics();
// フォント、ペン、ブラシの定義
Font font = new Font("MS P ゴシック", 30F);
Pen pen = new Pen(Color.Magenta);
SolidBrush brush = new SolidBrush(Color.Orange);
grfx_moji.Clear(Color.Gainsboro);
grfx_moji.DrawString(
s, // 描画文字列
font, // Font
brush, // SolidBrush
10, // X位置(左上の)
30 // Y位置(左上の)
);
font.Dispose();
brush.Dispose();
pen.Dispose();
grfx_moji.Dispose();
と言うコードを、30fpsでループさせてフォームに描画しているのですが、
文字がちらつきます。
60fpsにしてもちらつくのですが、何が原因なのでしょうか?
0206デフォルトの名無しさん
2008/04/26(土) 19:50:55GDI+で30fpsとかそもそも間違いw
DirectXかWPFでも使えば
0207デフォルトの名無しさん
2008/04/26(土) 19:58:40お返事ありがとうございます。
5fpsにしてもちらつくのですが……。
WPFは嫌いなので使うとしたらManagedDirectXですかね〜。
0208デフォルトの名無しさん
2008/04/26(土) 19:59:50無理。減らすにはダブルバッファリングして高精度なタイマー使う
のがヨス。
スピードもGDI+でも丁寧に使えば大丈夫だろうけども、30とか
60fps要求で文字列を直接書こうっつーのはDirectXつかっても
キビシス。WPFもちょっとトリックしているはずだし。
0209デフォルトの名無しさん
2008/04/26(土) 20:05:18その辺は基本的にDirectXでも一緒だけど
0210デフォルトの名無しさん
2008/04/26(土) 20:12:10http://pc11.2ch.net/test/read.cgi/tech/1208791919/
との違いが分からない
0211デフォルトの名無しさん
2008/04/26(土) 20:12:470212デフォルトの名無しさん
2008/04/26(土) 20:16:110213デフォルトの名無しさん
2008/04/26(土) 20:18:27配列は諦めてfinallyでdisposeするかラッパー作る
0214デフォルトの名無しさん
2008/04/26(土) 20:24:47using (list[0] = new MyClass())
{
}
0215デフォルトの名無しさん
2008/04/26(土) 20:26:01ありがとうございます。
背景色を変更するには少し調べたところDataGridColumnsStyleを継承し、Paintをオーバライドしなければいけないようで面倒くさそうです。
「Age」の列の背景色がtextboxなどでReadOnlyをTrueにしたときと同じということから何かオプションがあるのだと思いますがよくわかりません。
何度もお手数をお掛けしますがよろしくお願いいたします。
0216デフォルトの名無しさん
2008/04/26(土) 20:26:10usingはあきらめてtry〜finallyを使う。
this._image = null;
try
{
this._image = Image.FromFile(...);
// usingの中に書きたい処理
}
finally
{
if (this._image != null)
this._image.Dispose();
}
0217デフォルトの名無しさん
2008/04/26(土) 20:29:120218デフォルトの名無しさん
2008/04/27(日) 08:18:34をよろしくお願いします...
0219デフォルトの名無しさん
2008/04/27(日) 08:26:23ありがとうございます。
ダブルバッファリングを採用したらちらつきが無くなりました。
タイピングゲームを作っているのですが、
Direct3DかDirectDrawを使うべきでしょうか……。
タイピングゲームくらいなら使わなくてもいけるんじゃないかなーと思っているのですが。
0220デフォルトの名無しさん
2008/04/27(日) 08:28:35>>209
ありがとうございます。
ビットマップに描画の意味がよく分からないので、
ちょっとググってきます。
0221デフォルトの名無しさん
2008/04/27(日) 11:41:49タイピングゲームなら30あれば十分じゃない?
でも、ちゃんとしたゲームにしたいなら文字も画像で書かなきゃいけなくなるだろうし
この際だからDirectX覚える方がいいかもね
>>209じゃないけどビットマップに描画ってのはダブルバッファリングのことじゃないかな
いつもみたいに直接ウィンドウに描画するんじゃなくて
メモリ上のビットマップで描きたいものを整形して
ウィンドウには最後の最後一枚絵だけ描画させる
こうすることでちらつきがなくなって見える訳ね
0222デフォルトの名無しさん
2008/04/27(日) 12:46:14ありがとうございます。
ManagedDirectXは一応使えるのですが、XNAなるものが出てしまったのでご無沙汰してます。
ぶっちゃけるとタイピングゲームくらいで面倒だなあ……
と言う理由でDirectInput以外使っていませんでした。
ですが、やはり使った方が後々良さそうですね。
もう一つ質問をさせていただきます。
Direct3Dを使えばダブルバッファリングは不要という認識なのですが、
それで問題ないでしょうか?
0223デフォルトの名無しさん
2008/04/27(日) 13:36:30いや、どの程度本気かってことだよ
暇つぶしにちょっとやってみっかー位ならGDI+でやるのも乙だと思う。
初心者本とかだとGDI+で嬉しそうに円描いたりしてるが
ぶっちゃけ普段C#で組んでる上では殆ど使わないし、新しい経験になるだろう
ただ、公開しようとか考えてるなら初めからDirectX使った方が楽だと思うよ。
質問はちょっと意味がわからん。
ちらつきは人間の目の問題だからDirectXだろうがOpenGLだろうが必要だよ
GDIでやるより意識を軽く実装できるってだけの話し。
0224デフォルトの名無しさん
2008/04/27(日) 13:36:540225デフォルトの名無しさん
2008/04/27(日) 13:38:40機能が多くなった分だけ仕方ない事でしょうか?
0226デフォルトの名無しさん
2008/04/27(日) 13:46:31今もC++でお世話になってるわw
俺がC#でゲーム作らない理由の一つがそれだな
0227デフォルトの名無しさん
2008/04/27(日) 14:03:46ありがとうございます。
確かに円描いたソフトなんて公開したことないですね……。
公開しようと思っているので、DirectX使います。
質問についてですが、ちょっとアホな子になってました。
すみません。
>>224
ありがとうございます。
C#用のDxLibってあるんですか?
C++やったこと無いんですよ。
ググってみます。
0228デフォルトの名無しさん
2008/04/27(日) 14:59:15デフラグしてみたら、俺もそれやったけど変化は感じられなかったし。
0229デフォルトの名無しさん
2008/04/27(日) 15:07:17GDIを使うときにちらつきを抑えるには、GDIではなく、描画先のコントロール(GDIではなくこちらに設定がある)をダブルバッファにして、背景再描画をオフ(仮想関数をオーバーライドする)にしないと駄目だよ。
ティアリングが問題になるようなら、フレームレートは上げるのでは落とすこと、その方が目立ちにくい。
ティアリング問題に関してはPCではお手上げだからあきらめる、XNAを使ってXBox360で開発する。
これについてはPCである以上、DirectXを使っても解決しない。
0230デフォルトの名無しさん
2008/04/27(日) 15:26:05ばらまくプログラムはpublicにするかどうかちゃんと考える必要があるのか
0231デフォルトの名無しさん
2008/04/27(日) 15:28:39実は.NETに限らずだが、その事実を知る者は少ないのかw
0232デフォルトの名無しさん
2008/04/27(日) 15:34:56ありがとうございます。
それでやってちらつきは抑えれました。
ですが、DirectXを使ったプログラムを作ってしまいましたので、GDIは使いそうにありません。
申し訳ないです。
ティアリングについてですが、問題なさそうです。
0233デフォルトの名無しさん
2008/04/27(日) 16:25:02使ったことある人いる?
0234デフォルトの名無しさん
2008/04/27(日) 17:52:30子クラスを親クラスにキャストする事が出来るのはなんでですか?
親クラスを子クラスにキャストする事が出来ないのはなんでですか?
感覚的に、後者の方は大は小を兼ねる(親より子の方が大きい)のでキャスト出来そうですが…
0235デフォルトの名無しさん
2008/04/27(日) 17:54:130236デフォルトの名無しさん
2008/04/27(日) 17:59:56後者は暗黙には出来ないが。危険だからな。
. A 親
↑
┌┴┐
. B C 子
という継承関係があった場合、
A a; に入ってるインスタンスの本当の型は A, B, C の3つの可能性がある。
a を B にキャストした際、本当は A や C であるものが B にキャストされるなんてことも起こりうる。
その状態で B にしかないメソッドを呼んだりしたら・・・恐ろしいよね。
前者ではそういう問題が起こらない事については自分で考えれ。
0237デフォルトの名無しさん
2008/04/27(日) 18:01:13ControlとTextBoxのメソッドの数をくらべてみ?
大と小が逆になってると思うよ。
0238デフォルトの名無しさん
2008/04/27(日) 18:07:46オブジェクト志向(この単語出すのいやなのだが)の継承ってのは特殊化、
つまり、動物(親)→犬(子)みたいな関係。下に行くほど特殊なものになる。
犬クラスは必ず動物クラス(アップキャスト)だけど、動物クラスは必ずしも犬
クラス(ダウンキャスト)ではない。この例が抽象的過ぎると感じるなら、コント
ロール→テキストボックスとかでも思い浮かべてくれればいい。
継承は確かに拡張する感覚があるんだが、概念的には「狭める」方向に
進んでいくの。
0239234
2008/04/27(日) 18:45:00・子から親へのキャストは、差分を知らない親だからキャスト出来なくない?
・親から子へのキャストは、キャストによって差分が拡張されるのだから当然出来るんじゃない?
って直感的に思いました。
けど全く逆なんですね。
子クラスにあって親クラスにないメソッドが呼び出されたら…って考えたらその通りですね。
てことは親クラスにキャストされたら差分のメソッドは消えてなくなるって感じでいいんでしょうか?
この「消えてなくなる」って感じがfloatからintへのキャストのように精度がなくなるかのようでもやもやしてました。
0240デフォルトの名無しさん
2008/04/27(日) 18:46:520241デフォルトの名無しさん
2008/04/27(日) 19:06:140242デフォルトの名無しさん
2008/04/27(日) 19:11:09238の説明で正しいとは思うんだけどちょっとわかりにくい気もするのでおせっかいにも補足。
次のように考えたらどうだろう。
・「データ型」とは、そのオブジェクトが持つすべての機能の「お品書き」のこと。
・「オブジェクトaを型Bにキャストする」とは「aをBとみなして扱う」こと。
ラジオの設計図(親)に回路を追加(つまり継承)してCDプレイヤー付きラジオの回路(子)を
設計したとする。
このとき「CDプレイヤー付きラジオ」は、必要なら単に「ラジオ」として扱うこともできる。
なぜならラジオのすべての機能を継承しているから。
つまり「CDプレイヤー付きラジオ」は「ラジオ型」にキャストすることができる。
「ラジオ型」というお品書きに書いてある全部の機能を持っているから。
でも逆(「ラジオ」を「CDプレイヤー付きラジオ」としてあつかうこと)は無理。
仮に無理に「ラジオ」を「CDプレイヤー付きラジオ型」にキャストしたとする。
キャストした以上、それは「CDプレイヤー付きラジオ」として扱えなければならない。
つまり「CDプレイヤー付きラジオ型」のお品書きに書いてあるすべての機能が
こなせなければならない。
だが、ただのラジオに「CDを最初のトラックから再生開始せよ」とか、
「ランダム再生開始せよ」とか命令してもそれは無理難題だろう。
0243234
2008/04/27(日) 20:01:15このコードがばっちり通ったので、「消えて」はなくならないみたいですね。
class Program
{
static void Main(string[] args)
{
SubClass obj = new SubClass();
SubClass obj2 = (SubClass)((MyClass)obj);
}
}
public class MyClass
{
}
public class SubClass : MyClass
{
}
なんとなく理解できましたけどこんな風に親から子へのキャストは元々子だったobjのようなインスタンス限定なのですかね?
それってコンパイラが覚えてくれてるものですか?
それともこういうキャストはやらない方がいいですか?(どれが親から子へキャストできるのかわからなくなりそうで…)
0244デフォルトの名無しさん
2008/04/27(日) 20:05:10おれってグラフ作成とか応用できるの?
0245デフォルトの名無しさん
2008/04/27(日) 20:06:42全然理解してないじゃんw
0246デフォルトの名無しさん
2008/04/27(日) 20:16:20public int A;
public int B;
}
こういうクラスがあったら、Parentは
int A用の領域4バイト
int B用の領域4バイト
こんな風になってる(だいぶ単純化した話だけど)
これを継承してChildを作る
class Child : Parent{
public int C;
}
こうすると、Parentにint Cが足される
Parentの領域8バイト
int C用の領域4バイト
Parent parent = new Child();
ChildをParentにキャストするという処理は、
ChildのうちParentの領域8バイトだけを見る、ということで、
Childのデータ自体は何も変わらない。
Childの中のParentの領域だけを見れば、それはParentと全く同じなので、
Parentと同じように使える
0247デフォルトの名無しさん
2008/04/27(日) 20:16:29集合で考えれば、superset/subsetに対応するし
0248234
2008/04/27(日) 20:28:29よくわかりました!
具体的なものの方がイメージしやすいと思いました。(イメージできるって大切ですよね!)
>>245
ちょうど>>246と理解して書いたつもりですけどどこか間違ってますか?
(SubClass)((MyClass)obj);
はダウンキャストなので本来(?)ダメなはずなんですが
この例のように一度親クラスにキャストしたあとなら可能みたいなので疑問に思ったわけです。
0249デフォルトの名無しさん
2008/04/27(日) 20:33:33それは全く見当違いで,ダウンキャストに成功するかどうかは実行時の問題
0250デフォルトの名無しさん
2008/04/27(日) 21:01:56234みたいな混乱と誤解が起こるんだろうね。
結局234は>>241の指摘を理解せず、キャストとはintをfloatに変換するような
何らかのバイナリ操作を伴うものだと思い込んでるんじゃないか。
0251デフォルトの名無しさん
2008/04/27(日) 21:03:070252デフォルトの名無しさん
2008/04/27(日) 21:05:590253デフォルトの名無しさん
2008/04/27(日) 21:13:570254デフォルトの名無しさん
2008/04/27(日) 21:16:01まぁまったくそんな話じゃないが。
0255デフォルトの名無しさん
2008/04/27(日) 21:23:260256デフォルトの名無しさん
2008/04/27(日) 21:30:46入れ物と中身がごっちゃになってる。
0257デフォルトの名無しさん
2008/04/27(日) 21:31:35ビット数の同じ整数型(ポインタを含む)同士の変換なら
内部表現形式が変わらないだけで変換はされている。
0258デフォルトの名無しさん
2008/04/27(日) 21:33:040259デフォルトの名無しさん
2008/04/27(日) 21:40:27動物⇔哺乳類⇔ゾウ
みたいに
0260デフォルトの名無しさん
2008/04/27(日) 21:44:440261256
2008/04/27(日) 21:45:00C++のvoid *に相当するものが、Object。中になんでも入るけど、
中身が変換されてしまうわけではない。
static void Main(string[] args)
{
Object obj1 = "string";
Object obj2 = 0;
Console.WriteLine(obj1.GetType());
//->System.String
Console.WriteLine(obj2.GetType());
//->System.Int32
}
0262デフォルトの名無しさん
2008/04/27(日) 21:47:14半分正しいが、それは「契約」という考え方を捨象してるだろうw
0263デフォルトの名無しさん
2008/04/27(日) 22:06:41お前だな、>>260の言ってたやつは
0264デフォルトの名無しさん
2008/04/27(日) 23:05:05例えば、TextBox型のインスタンスをControl型にキャストしたとする。
これは単に「Control型の変数に代入した」だけであって、なんら変換などは起こっていない。
TextBoxをControlにキャストしたからといって、いきなり中身が消えちゃったりしたら変だろ?
実体がTextBoxなんだから、TextBox型にダウンキャスト出来るのは当たり前だ。
0265デフォルトの名無しさん
2008/04/27(日) 23:34:21そして、このぬこを鈴木君として扱います。
0266デフォルトの名無しさん
2008/04/27(日) 23:53:47サブクラスは全然部分集合じゃないだろ
むしろスーパークラスがサブセット
0267デフォルトの名無しさん
2008/04/28(月) 00:39:53インターフェースの既定のアクセシビリティはpublicって書いてあった。
が、少なくともvs2008/C#3.0だとinternal。
msdnのvs2005/C#2.0でもpublicって書いてあるから、C#2.0→C#3.0で仕様変更でもあったのかね
0268デフォルトの名無しさん
2008/04/28(月) 00:47:080269デフォルトの名無しさん
2008/04/28(月) 00:59:48じゃあ単純に標準C#入門の216pが誤植か。
0270デフォルトの名無しさん
2008/04/28(月) 01:10:53ふと気になったので。
サブクラス∈スーパークラスでしょ。
・多態性でスーパークラスのコレクションをforループする時。
・自己参照型構造体っぽくインターフェイスを作っておく時。
・一時的にアップキャストする時。
どの場合もサブクラスはより大きな概念のスーパークラスにキャストしてるべ。
0271デフォルトの名無しさん
2008/04/28(月) 01:19:170272247
2008/04/28(月) 01:27:27インスタンスの集合と考えると自然
{ o | o is Superclass } ⊃ { o | o is Subclass }
イメージとしては、生物の分類で界、門、網、…と細分化するのと同じ
>>270
記号の意味を間違えてないか
0273デフォルトの名無しさん
2008/04/28(月) 01:37:33自分でもレスした後に気づいた。突っ込まないでくれ。
0274デフォルトの名無しさん
2008/04/28(月) 03:38:050275デフォルトの名無しさん
2008/04/28(月) 07:34:10ら、らめ〜
0276デフォルトの名無しさん
2008/04/28(月) 08:23:43こういう連中がプログラマの評価を不当に下げている気がする。
いや、実際問題こういう感性が人間の平均とズレている奴が多いから
不当な評価じゃないのかもしれんが・・・
0277デフォルトの名無しさん
2008/04/28(月) 08:43:450278デフォルトの名無しさん
2008/04/28(月) 10:50:490279デフォルトの名無しさん
2008/04/28(月) 15:57:160280167
2008/04/28(月) 16:44:10167でスロットつくってた人ですが、for文を使ってなおしてみたのですが、
不具合がおきてしまいました。(4回目には必ずエラーで停止する)
一応自分でもなんとかしようとおもうのですが、できればどこを直せばいいか
おしえてください。
0281デフォルトの名無しさん
2008/04/28(月) 17:02:24ステップ実行とかしてみた?
あとまだ中までは見てないんだが
while (true)
{
if (coin < 3)
{
break;
}
こうするくらいなら、
while (coin >= 3) でいいべ
0282デフォルトの名無しさん
2008/04/28(月) 17:04:36したがってfor文も 0 で初期化でいいべ
0283167
2008/04/28(月) 17:31:28ありがとうございます。
おかげでちょっとだけプログラムがすっきりしました。
>>282
言われたとおり0にするとちゃんと動くようになりました。
ありがとうございます。
0284デフォルトの名無しさん
2008/04/28(月) 17:40:52タイマーでtimer1_Tick()のとび先で描画すると
windowを手動で画面外へ出してもどすということをしなければ
画面更新できませんでした。
VbでのPicture1.Refreshにあたるような命令はありますか?
0285デフォルトの名無しさん
2008/04/28(月) 18:02:130286284
2008/04/28(月) 18:29:07で定義してあるもんで
探すと
this.Invalidate;
の使用例ばかりでてきて どうInvalidateしていいにかまだ・・・
もうちょっと調べてみます。
0287デフォルトの名無しさん
2008/04/28(月) 18:40:59Invalidate();
だけでいいんですね できました。
ありがとうございます。
0288デフォルトの名無しさん
2008/04/28(月) 18:42:23フォーム全面を再描画要求する必要があるの? とか
0289デフォルトの名無しさん
2008/04/28(月) 19:05:57そうですね _bmpだけ更新したいのですが。
ところで
timer1.Interval = 100;
この値をいくつに変えても間隔が全くかわらないのですが。
他になにか記述が必要でしょうか?
0290デフォルトの名無しさん
2008/04/28(月) 19:33:15> そうですね _bmpだけ更新したいのですが。
違う。
ディスプレイに描画する責務があるのは画像じゃないだろう?
その画像を表示するコントロールが指定された画像をディスプレイに描画する。
つまりその画像を表示するコントロールのInvalidateを使えってこと。
なのでそのBitmapをたとえばForm.BackgroundImageに指定してるのならForm.Invalidateで正しい。
> ところで
> timer1.Interval = 100;
> この値をいくつに変えても間隔が全くかわらないのですが。
そんなことはないが。
どこかでうっかりIntervalを再設定してるとか?
0291デフォルトの名無しさん
2008/04/28(月) 19:49:280292デフォルトの名無しさん
2008/04/28(月) 19:54:04Form1_Load から別の場所に移すとうまくいきました。
0293デフォルトの名無しさん
2008/04/28(月) 23:13:070294デフォルトの名無しさん
2008/04/28(月) 23:17:180295デフォルトの名無しさん
2008/04/28(月) 23:22:39ありがとうございます。
後でやってみます。
0296デフォルトの名無しさん
2008/04/28(月) 23:25:33あるぜ
0297デフォルトの名無しさん
2008/04/28(月) 23:34:36TextureLoader.FromFileの最後に引数は何を意味しているのでしょうか?
255やら0やら適当に入れても動くので問題ないのですが、
きちんとした意味を知りたいのですが……。
0298デフォルトの名無しさん
2008/04/28(月) 23:44:00> 型 : System::Int32
> 透明な黒で置き換えられる値。カラー キーを無効にする場合は 0 (ゼロ) を指定します。
> ソース イメージの形式とは関係なく、colorKey は常に 32 ビットの ARGB カラーです。
> アルファは有意であり、通常、カラー キーを不透明にする場合は FF に設定する必要があります。
> たとえば、不透明な黒の場合、値は 0xFF000000 となります。
0299デフォルトの名無しさん
2008/04/28(月) 23:49:14ありがとうございます。
もっとググる能力鍛えないとなあorz
MSDNも活用しきれない……。
0300デフォルトの名無しさん
2008/04/29(火) 00:10:45ちなみに>>298のはMicrosoft.WindowsMobile.DirectX.Direct3D名前空間の方の解説
0301デフォルトの名無しさん
2008/04/29(火) 10:20:16fileversioninfoで取得したバージョン文字列を比較する方法ってどうやるんですかのう・・・
stringのcomparetoだとうまくいきそーもないです・・・
comparetoだと例えば、 1.0.15.0と1.1.5.0を比較すると、1.0.15.0が大きいって結果になっちまいます。
0302デフォルトの名無しさん
2008/04/29(火) 10:24:49Versionクラスは比較演算子もオーバーロードしてる
0303デフォルトの名無しさん
2008/04/29(火) 10:29:34マヂですかー。
ありがとー つД`)
0304デフォルトの名無しさん
2008/04/29(火) 13:12:04・使いやすいと思われるもの
・WindowsXP以上でインストールなしで利用可
のものを教えていただけないでしょうか?
ぜひあなたがお使いのものも教えて頂きたいです。
0305デフォルトの名無しさん
2008/04/29(火) 13:14:02\ではエラーになってしまいます。
どうすればいいですか?
0306デフォルトの名無しさん
2008/04/29(火) 13:15:340307デフォルトの名無しさん
2008/04/29(火) 13:18:16ありがとうございます。
英語中学レベルくらいしかできないんですよね……orz
日本ももっと情報充実しないかなあ
0308デフォルトの名無しさん
2008/04/29(火) 13:23:36sqlite.NETとか。
sqliteをADO.NETのクラスでラップしたもので、特徴はsqliteに準ずる。sqliteのバイナリも内蔵しているから、DLLひとつ参照設定するだけですむし。
sourceforge.net/projects/sqlite-dotnet2
0309デフォルトの名無しさん
2008/04/29(火) 13:29:03どう書くんでしょう?
関数やキャストを使わなければだめですか?
0310デフォルトの名無しさん
2008/04/29(火) 13:32:58http://msdn2.microsoft.com/ja-jp/library/3b1ff23f(VS.80).aspx
0311デフォルトの名無しさん
2008/04/29(火) 13:37:04「整数の除算」とは、具体的に何を差すのか。
/ ではいけない理由を書かないと誰にもわからない
0312デフォルトの名無しさん
2008/04/29(火) 13:39:180313デフォルトの名無しさん
2008/04/29(火) 13:39:46テクスチャが多くなるとメモリ使用量が多くなって困るのですが、
1画像に1テクスチャはおかしいのでしょうか?
0314デフォルトの名無しさん
2008/04/29(火) 13:41:08型指定するんですね わかりました。
>>311
検索でVBのが混ざって出てきてしまいました。 VBでは'5 \ 2'ですね。
小数点を出さずに 5 \ 2 = 2 と余りを切り捨てる除算のことです。
0315デフォルトの名無しさん
2008/04/29(火) 13:52:54両方整数型なら / はそのまま切り捨てられる。
逆に最終的に代入する型が浮動小数点だったとしても、
式の途中の整数演算は切り捨てられるから要注意。
例えば
1+8/3 =3
1.0+8/3 =3.0
1+8.0/3 =3.6666666666666665
※小数点が付いているのは浮動小数点型
0316デフォルトの名無しさん
2008/04/29(火) 13:53:18int a = 5 / 2 ;
Console.Write(a);
ReadKey();
これをコンパイルしてみろ
0317デフォルトの名無しさん
2008/04/29(火) 13:56:37>>316
了解しました。ありがとうございます。
0318デフォルトの名無しさん
2008/04/29(火) 13:57:06RDBMSに拘らず、データが保存できれば良いだけならLinq to XMLという選択肢も
0319デフォルトの名無しさん
2008/04/29(火) 16:35:37Process[] ps= Process.GetProcessesByName("TARGETPROCESS");
// --- 見つかったプロセスに対する処理 ----
for(int i= 0; i< ps.Length; i++) {
ps[i].Close();
ps[i].Dispose();
ps[i]= null;
}
ps= null;
System.Threading.Thread.Sleep(1000);
System.GC.Collect();
↑を、定期実行してるんですが、メモリが開放されないっぽく、メモリ使用量がウナギのぼりです。(´・ω・`)
何か足りないですかね?
ちなみに、開放されないのは GCのTotalMemoryを参照して確認したですよ。
コメントの範囲の処理をコメント化して、上記のコードだけでも開放されてないス(´・ω・`)
上記コードをコメント化するとメモリの増加は抑えられます。
0320デフォルトの名無しさん
2008/04/29(火) 16:39:580321デフォルトの名無しさん
2008/04/29(火) 16:44:05こういうドキュメントは中学程度の文法で十分読めるよ
0322デフォルトの名無しさん
2008/04/29(火) 17:04:41なるほどー!
ありがとうございました。
ちょっと放置して状態をしらべてみようと思います。。。
0323デフォルトの名無しさん
2008/04/29(火) 17:05:570324デフォルトの名無しさん
2008/04/29(火) 17:17:36プロセスに対する処理がサンプルコードなのかもなんだけど、
CloseMainWindow()してKill()してやらないと
メモリ解放できずにプロセスが終わっちゃってたりしないのかな。
全然関係無いかもしれないけど。
0325デフォルトの名無しさん
2008/04/29(火) 18:08:14メモリ使用量って一体何で調べてるの?
0326デフォルトの名無しさん
2008/04/29(火) 21:03:07C#の場合例えば
void hoge(string fileName) {
Invoke((MethodInvoker)delegate() {
var file = Files.Find(item => item.FullName == fileName);
if (file != null)
file.hogehoge();
});
}
とか書かれると、まるで意味不明になるのが諸刃の剣
0327デフォルトの名無しさん
2008/04/29(火) 21:31:020328デフォルトの名無しさん
2008/04/29(火) 21:31:070329デフォルトの名無しさん
2008/04/29(火) 22:12:31正直全然イミフなコードに見えん。
というかそれ以前にそのコードは書いた人の意図も見えんので糞サンプル
だと思う。
varでがやがやしてた時も思ったが「で?」っていいたくなるような
無理矢理書きましたみたいな役にたたんサンプル作るやつが多すぎる気がするよ。
0330デフォルトの名無しさん
2008/04/29(火) 22:52:20色々調べた結果、下のような処理になったのですが、もっとC#らしい(?)やり方が
あったりするのでしょうか?
目的は「配列をある型を通してアクセスしたい」で、構造体でなくても問題はありません。
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1 {
class Program {
[StructLayout(LayoutKind.Sequential, Pack = 1)]
unsafe struct MyStr {
public fixed byte pathName[3];
public short sval;
public int ival;
}
static void Main(string[] args) {
byte[] buf = new byte[] {0xFF, 0xFF, 0xFF, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
0xFF, 0xFF, 0xFF, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C,
0xFF, 0xFF, 0xFF, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12};
unsafe {
for (int i = 0; i < 3; i++) {
fixed (byte* p = &buf[sizeof(MyStr) * i]) {
MyStr* myStr = (MyStr*)p;
short sval = myStr->sval; // このようにアクセスしたい
}
}
}
}
}
}
0331デフォルトの名無しさん
2008/04/29(火) 22:56:460332デフォルトの名無しさん
2008/04/29(火) 23:03:43> byte配列を構造体にキャストして使用したい
っての自体がC#らしくない
0333デフォルトの名無しさん
2008/04/29(火) 23:04:550334デフォルトの名無しさん
2008/04/29(火) 23:05:39無いと思いますよ、基本XML、もしくはバイナリフォーマッターを通して
環境依存を可能な限り避けるが基本方針ですから。
0335デフォルトの名無しさん
2008/04/29(火) 23:08:41private にしておいたデータを外から改ざんされないようにする為です、ネットワークを通じてコピーするようなケースは重要。
0336デフォルトの名無しさん
2008/04/29(火) 23:14:360337デフォルトの名無しさん
2008/04/29(火) 23:16:48Win32APIとの相互運用のために各種機能はあるが、キッパリ諦めるが正解。
0338330
2008/04/29(火) 23:47:191.TCPでの受信や、ファイルにバイナリで保存されているデータの先頭を、ヘッダ構造体にキャスト
2.上記キャストしたデータ中にある、データ種別を取得
3.ヘッダ以降のデータを、上記データ種別毎の構造体にキャスト
4.データ種別毎の構造体を通してデータにアクセス
(ヘッダにあるデータ数分ループしたりもする)
5.データの構造が変更になった場合は、構造体を変更すれば既存部分は変更無し
こんな処理をよく作っていて、それをC#に移植しようとしていました。
もう少し色々なサンプルを見てみようと思います。
ありがとうございました。
0339デフォルトの名無しさん
2008/04/30(水) 00:09:11System.Runtime.InteropServices.Marshalクラス内に使えそうなの無い?
PtrToStructureメソッドとか。
0340デフォルトの名無しさん
2008/04/30(水) 00:46:24わざわざ自分で作ろうとしないで、素直にSOAPなり使ってWebサービスとして実装したほうが楽チンな予感が・・・
0341デフォルトの名無しさん
2008/04/30(水) 00:55:05データのバイナリ構造を定義するDSLと、
それを使ってバイトストリームを処理するコードに分けて考えればいいんじゃない?
あと、C言語の場合、確かに構造体定義はバイナリ構造の定義に転用しやすかったけど、
そういう用途に最適だったとは言い難いよね。
パディングやアライメントに関してはコンパイラ拡張でごまかしてるし。
0342デフォルトの名無しさん
2008/04/30(水) 01:03:24ネットワーク腰の場合はunsafe等を使うとアプリやライブラリの融通が利かなくなってくるから、全面改訂した方が今後の為かと・・・
全面書き換えを強くお勧め。
0343デフォルトの名無しさん
2008/04/30(水) 01:24:34>>330のようにループしながらキャスト位置を変えて処理
という事がしたくて、>>330のようなロジックになりました。
今もMarshalクラスを見直していたのですが、なかなか難しいですね
やぱり根本的な考え方を変えないと難しそうですね
>>339-342さん、色々とアドバイスありがとうございました。
0344デフォルトの名無しさん
2008/04/30(水) 01:30:07>>>330のようにループしながらキャスト位置を変えて処理
>という事がしたくて、>>330のようなロジックになりました。
StructureToPtrを使ってもできるから使わない理由付けとしては弱いが。
0345デフォルトの名無しさん
2008/04/30(水) 02:53:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6387.txt
17行目の trwite.Formatting = Formatting.Indented; を書かないとpriceが取得できないみたいなんだけどどうして?
0346デフォルトの名無しさん
2008/04/30(水) 07:36:11こちらで位置を指定して移動させたいです。
おそらくこんなこと↓だと思うのですが、
http://7ujm.net/C++/DesktopIconPoint.html
++で書いてあるようで僕には分かりません。。。
どなたかC#で教えてもらえませんか?
よろしくお願いします。
0347デフォルトの名無しさん
2008/04/30(水) 08:24:12http://msdn.microsoft.com/ja-jp/library/ms162529(VS.80).aspx
> このメソッドは、開始タグと要素の内容を順に読み取り、リーダーを終了要素タグの後に移動します。
Indentedにしない場合は商品名ノードでReadElementContentAsStringを呼んだ直後に
XmlTextReaderの位置が価格ノードの先頭に来るけど、そのままwhileの次のループにいって
Read()してしまうので価格が正しく取得できてない。
Indentedの場合、ReadElementContentAsStringを呼んだ直後は商品名ノードの後ろかつ価格ノードの前にある
空白要素(改行)にいるので正しく取得できる。
0348デフォルトの名無しさん
2008/04/30(水) 08:37:10C++というより、ほとんどWin32API
MSDNライブラリとかググりながら何やってるか調べてみればいい。
.NETでもほとんどは結局API呼び出してるし、憶えて損はない
APIを呼び出す方法はP/Invokeかなんかをキーワードにググってみれ。
唯一俺には謎なのがListView_GetItemPositionやるためだけにVirtualAllocExやってることだけど。
LVM_GETITEMPOSITIONをSendMessageするだけじゃだめなのかな?
試してみるぜ。
0349デフォルトの名無しさん
2008/04/30(水) 08:46:46http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2155754&SiteID=1
アイコンの位置の取得方法。
移動はSendMessageすればいいだけ。のはず。
0350デフォルトの名無しさん
2008/04/30(水) 10:18:31プロセス越しにポインタ扱う場合は必須よ。
lParamがPOINT*で位置を返してくるからね。
0351デフォルトの名無しさん
2008/04/30(水) 17:09:53クラスと関数の違いがよくわかりません
どんな違いがあるのでしょうか?
0352デフォルトの名無しさん
2008/04/30(水) 17:26:31もう少し具体性のある質問をしないとまともな回答は付かないと思うぞ。
C#が始めてのプログラミング言語なのか?
もしそうならC#での関数は必ずクラスのメンバとして記述する必要がある。
0353デフォルトの名無しさん
2008/04/30(水) 18:19:160354デフォルトの名無しさん
2008/04/30(水) 19:32:340355デフォルトの名無しさん
2008/04/30(水) 19:39:04真面目に答えると(いや本当)違いがわかるまで勉強する、が正しい。
本当は先にC(別にVBでもいいんだけど)の構造体を理解してるとクラスの意味を理解しやすいんだけどね。
0356デフォルトの名無しさん
2008/04/30(水) 19:44:350357デフォルトの名無しさん
2008/04/30(水) 19:47:160358デフォルトの名無しさん
2008/04/30(水) 21:14:370359デフォルトの名無しさん
2008/04/30(水) 21:17:330360デフォルトの名無しさん
2008/04/30(水) 21:55:39人間1.歩く(3歩); 人間1.走る(5歩); 人間1.止まる(); こう書いた方が自然でしょ
ただそれだけのこと
0361デフォルトの名無しさん
2008/04/30(水) 22:44:02なるほどサンクス
0362デフォルトの名無しさん
2008/04/30(水) 22:48:34今年プロコンに出ることになったのですがほとんどプログラミングできません
(cでifwhileがほんの少しわかるくらい)
先輩がこのゴールデンウィーク中にできるだけc♯を覚えて来いといわれました
開発環境はvisual c# 2008です
できるだけ短時間でわかりやすい(書けなくてもいいからコードが読めるようになる)
サイトを教えてください
0363デフォルトの名無しさん
2008/04/30(水) 22:55:01http://wisdom.sakura.ne.jp/programming/cs/index.html
0364デフォルトの名無しさん
2008/04/30(水) 22:55:33なんといっても人に教わるのが一番早いよ。
まあ「教師」がアホならそうとも限らないが・・・
それがダメならどんな糞本でも書籍を読んだ方がいい。
web上のテキストなんて(個人差もあるだろうが)長時間読む気しないでしょ。
0365デフォルトの名無しさん
2008/04/30(水) 23:09:46thx
>>364
先輩はググレだそうです
本も一冊買ってみようかな
0366デフォルトの名無しさん
2008/04/30(水) 23:26:23それは先輩が正しい。
ぐぐって出てくるところ、並みの本より情報そろってるぞ。
0367デフォルトの名無しさん
2008/04/30(水) 23:36:41初心者がweb上の断片的な情報から体系的に学べるわけないと思うけどね俺は。
まあ@itの連載とか「猫でもわかる」みたいなある程度まとまった文章もあるにはあるが。
0368デフォルトの名無しさん
2008/04/30(水) 23:42:00初心者が本の断片的な情報から体系的に学べるわけないと思うけどね俺は。
0369デフォルトの名無しさん
2008/04/30(水) 23:44:520370デフォルトの名無しさん
2008/04/30(水) 23:45:550371デフォルトの名無しさん
2008/04/30(水) 23:47:130372デフォルトの名無しさん
2008/04/30(水) 23:50:40できないなら言われたようにすればいい。
0373デフォルトの名無しさん
2008/04/30(水) 23:51:34お前が言うか
0374デフォルトの名無しさん
2008/05/01(木) 00:16:08ベターC C#が?無い無い
0375デフォルトの名無しさん
2008/05/01(木) 00:18:560376デフォルトの名無しさん
2008/05/01(木) 00:19:140377デフォルトの名無しさん
2008/05/01(木) 00:22:200378デフォルトの名無しさん
2008/05/01(木) 00:25:090379デフォルトの名無しさん
2008/05/01(木) 00:27:230380デフォルトの名無しさん
2008/05/01(木) 00:28:25Enumのstatic メソッドにあったはずと思うが。。
0381デフォルトの名無しさん
2008/05/01(木) 00:32:19ありがとうございます。
0382デフォルトの名無しさん
2008/05/01(木) 00:53:38まず日本語書けるようになれ。
まじめな話し人に質問する時は書き込む前の推敲くらいしてこい
0383デフォルトの名無しさん
2008/05/01(木) 01:02:430384デフォルトの名無しさん
2008/05/01(木) 01:04:310385デフォルトの名無しさん
2008/05/01(木) 01:05:130386デフォルトの名無しさん
2008/05/01(木) 01:10:17>>362
俺はプログラミングWindowsのC#編で勉強したわ
C#はこれといって難解な言語という訳じゃないと思うが
まるっきり書けないやつだと意味わからない機能(なぜ作られたのか、とか、何ができるのかとか)は多いだろう。
どの程度のレベルの学校か知らんが、正直一週間でプロコンでどうこうできるレベルになるのは無理。
0387デフォルトの名無しさん
2008/05/01(木) 01:14:06わかりやすく国語に例えるとこういうこと
薔薇、憂鬱
0388デフォルトの名無しさん
2008/05/01(木) 01:19:57どっちか読もうと思うんだけど、どっちがいい?
0389デフォルトの名無しさん
2008/05/01(木) 01:24:03いや、少なくとも読むためには構文理解しなきゃだめだろ?
構文理解したら、遅いとしてもヘルプ読みながらなら書けるだろ?
英語じゃあるまいしフィーリングで読むか?当たりを付けて読むのはありだが。
0390デフォルトの名無しさん
2008/05/01(木) 01:33:58Dictionary<int, int> a = new Dictionary<int, int>();
a.Add( 1, 1 );
a.Add( 2, 1 );
foreach ( int key in a.Keys ) {
a[ key ] = 2;
}
というコードを書いたんですが、二つ目の要素を更新する際に、
System.InvalidOperationException: コレクションが変更されました。列挙操作は実行されない可能性があります。
という例外が返ってきました。
foreachの中でコレクションに追加、削除した場合にこの例外が発生するのはわかるのですが、
要素を更新した場合でも起こるのでしょうか。
また、であれば、Dictionaryの一括代入(例えば初期化)はどのようにすればいいのでしょうか。
よろしくお願いいたします。
0391デフォルトの名無しさん
2008/05/01(木) 01:46:42KeysがIEnumerable<>あたりになってるんだろうから、
ToArray()してみるとか一時変数に入れてみるとか
0392デフォルトの名無しさん
2008/05/01(木) 01:53:13KeysをToArray()はできないようです。
というか、Dictionaryの値をかきかえているのに、KeysをToArray()したり一時変数に入れたりするのですか?
0393デフォルトの名無しさん
2008/05/01(木) 01:56:19あ、一時変数入れたらできたみたいです。
ありがとうございます。
ちなみに、Keysを書き換えている訳ではないのに、なぜ怒られたのでしょうか。
0394デフォルトの名無しさん
2008/05/01(木) 02:17:23それってDictionary<string,string>でも起こる?
0395デフォルトの名無しさん
2008/05/01(木) 03:21:13独習C#はお勧めしない。その2つならオライリー。
オライリーも章構成がおかしい気がするけど。
0396デフォルトの名無しさん
2008/05/01(木) 09:39:34つ 宇宙仮面のC#プログラミング
0397デフォルトの名無しさん
2008/05/01(木) 12:22:550398デフォルトの名無しさん
2008/05/01(木) 14:54:59俺はその後プログラミング.NETFramework読んで学んだ
0399デフォルトの名無しさん
2008/05/01(木) 15:01:18独習C#の方がいいよ。
0400デフォルトの名無しさん
2008/05/01(木) 15:11:20俺はよくここのお世話になる
2.0や3.0からの差分が解説してあってわかりやすい
0401デフォルトの名無しさん
2008/05/01(木) 15:15:26それ俺もお気に入り
一応全部読んだ
0402デフォルトの名無しさん
2008/05/01(木) 16:01:38ある変数が意図しない内容に変ってしまうので、追跡をしようかと思っています。
0403デフォルトの名無しさん
2008/05/01(木) 16:49:16setter 使ってるならそこで止めればいいだけだけど、そうでないならログ出力かなあ
0404デフォルトの名無しさん
2008/05/01(木) 16:58:09考えれば当たり前なのですが、気づきませんでした。
ありがとうございましたm(__)m
0405デフォルトの名無しさん
2008/05/01(木) 17:05:56なんか今探しても出てこないんだがExpressだからかな
0406デフォルトの名無しさん
2008/05/01(木) 17:11:160407デフォルトの名無しさん
2008/05/01(木) 17:49:23これは消しても問題ないのでしょうか?
0408デフォルトの名無しさん
2008/05/01(木) 17:59:300409デフォルトの名無しさん
2008/05/01(木) 19:02:17ありがとうございます。
0410デフォルトの名無しさん
2008/05/01(木) 21:16:19オレもおれも
0411デフォルトの名無しさん
2008/05/01(木) 21:49:55.NET2003 と .NET2005 で同じソースを実行しても
計算結果が若干異なります。なぜですか。
0412デフォルトの名無しさん
2008/05/01(木) 22:03:16仕様です。
0413デフォルトの名無しさん
2008/05/01(木) 22:22:200414デフォルトの名無しさん
2008/05/01(木) 22:24:29適当なこと言うなよw
>>411
そういう時は黙ってソース出すんだよボケ。
0415デフォルトの名無しさん
2008/05/01(木) 22:36:19ソース準備にはちょっと時間かかりますが、
.NETユーザには常識かどうか知りたかったのです。
0416デフォルトの名無しさん
2008/05/01(木) 22:40:00[Conditional("DEBUG"), DebuggerHidden]
static void BreakIf(bool condition) { if (condition) Debugger.Break; }
こういうの作っとくと便利だよ
ヒットカウントもラムダ式で簡単に作れる
0417デフォルトの名無しさん
2008/05/01(木) 22:52:20コンパイルオプションの確認は当然してるよな
0418デフォルトの名無しさん
2008/05/01(木) 23:33:39していないです。。どういうオプションなら計算結果変わるのですか。
0419デフォルトの名無しさん
2008/05/01(木) 23:41:460420デフォルトの名無しさん
2008/05/01(木) 23:47:160421デフォルトの名無しさん
2008/05/02(金) 00:38:33どう考えても原因はアプリだろ。仕様です。
0422デフォルトの名無しさん
2008/05/02(金) 02:30:15頭オカシイ人?w
自分で何を言っているか理解してるかい?
0423デフォルトの名無しさん
2008/05/02(金) 06:59:400424デフォルトの名無しさん
2008/05/02(金) 07:21:17Java strictfp でぐぐれ。
多分.NET 2.0からJITコンパイラがSSEガンガン使い出したので
そのせいで結果が変わったんだろう。
0425デフォルトの名無しさん
2008/05/02(金) 08:40:40そんなはずねえだろ、と思うけどな。
もっとも、実装方法によって誤差が変わる算術関数の話をしてるのなら不思議はないけど。
少なくとも普通に四則演算の組み合わせなら変わるわけがない。
0426デフォルトの名無しさん
2008/05/02(金) 08:46:46特に除算に関してはプラットフォーム間の差異が激しいぞ。
一部の RISC には除算命令が存在しない場合だってあるし。
0427デフォルトの名無しさん
2008/05/02(金) 08:56:47それだと2005と2008で結果が異なるのはおかしかろう。
とにかくソースがないことには検証できっこない。
0428デフォルトの名無しさん
2008/05/02(金) 09:30:342003と2005
0429デフォルトの名無しさん
2008/05/02(金) 10:01:19>少なくとも普通に四則演算の組み合わせなら変わるわけがない。
x87 FPUは80 bitの浮動小数点数レジスタ(スタック)を持っている。
floatだろうがdoubleだろうが、スタックに読み込まれたら80 bitに拡張される。
スタック同士の演算精度をどれぐらいに保つかはFPUコントロールレジスタで制御される。
高精度演算モードだと、float同士の演算も80 bitで行われることになる。
ただしメモリに書き出すときには自動的に丸められる。
結果的に、レジスタ上で演算を繰り返す限りは
データ型のサイズに関わらず拡張doubleの精度で演算が行われることになる。
一方、SSEのレジスタは32 bitと64 bitを厳密に区別している。
JITコンパイラが最適化を行った結果、
floatの演算がSSEレジスタ上で演算を繰り返す場合、
中間状態は常にfloat精度ということになる。
演算途中の格納精度が異なるため、単なる四則演算でも演算結果が変わることがある。
もちろんどの環境でも同じコードにJITコンパイルされるなら同じ結果が得られるようになる。
が、.NETにそういう仕組みはない。
0430デフォルトの名無しさん
2008/05/02(金) 10:28:20x87命令だけでもメモリへの書き出しを行うかどうかで変わるから厄介かな。
例えば次のコードをVisual C# 2008でReleaseビルドすると、
F5実行とCtrl+F5実行で結果が違う。(64 bit環境の人は同じになるかも)
同じILというだけでは計算結果が同じことは保証されないよ。
float x = 0.00000000000001f;
float y = 1.0f + x;
float z = y -= 1.0f;
Console.WriteLine("is x zero? {0}", z == 0);
CLRのバージョンが変わって、
最適化のパターンが変わると、同じILであっても計算結果が変わっておかしくないかな。
0431デフォルトの名無しさん
2008/05/02(金) 11:25:160432デフォルトの名無しさん
2008/05/02(金) 11:38:043日前にプログラミング始めた初心者だから知らんけど
0433デフォルトの名無しさん
2008/05/02(金) 11:46:440434デフォルトの名無しさん
2008/05/02(金) 12:08:210435デフォルトの名無しさん
2008/05/02(金) 12:13:070436デフォルトの名無しさん
2008/05/02(金) 12:16:420437デフォルトの名無しさん
2008/05/02(金) 12:23:140438デフォルトの名無しさん
2008/05/02(金) 12:24:090439デフォルトの名無しさん
2008/05/02(金) 12:30:56昔の常識は通用しないのなスマン。。
まあPCの実数の扱い方知ってれば普通はそれでも無問題なんだけど。
演算の結果についてナニがどこまで保証されてるのかってドキュメントになってったっけ?
0440デフォルトの名無しさん
2008/05/02(金) 12:36:150441デフォルトの名無しさん
2008/05/02(金) 13:03:37void tmpcalc()
{
double a = -0.00000717;
double b = 0.446;
double c = 0.100;
double d=1.248;
double result;
double e1 = 124.0 *(1.0/12.0);
//double e2 = 124.0 /12.0;
result = ((a * e1 + d) * Math.Exp(-b * e1) + c);
//result = ((a * e1 + d) * Math.Exp(-b * e2) + c);
//NET2005 result = 0.11243570180467005
//NET2003 result = 0.11243570180467004
}
これだけだと微小な差ですが、最終計算結果はかなり変わってきます。
他に原因あるかもしれませんが、ひとまずソース書きます。
0442デフォルトの名無しさん
2008/05/02(金) 13:07:090443デフォルトの名無しさん
2008/05/02(金) 13:08:42浮動小数点は誤差があるのを考慮して、
計算順序等を考えるのが基本
0444デフォルトの名無しさん
2008/05/02(金) 13:10:41全く同じ計算順のコードにコンパイルされるとは限らないから、
コンパイラ変わるとそういう誤差が出るのは仕方が無い。
ほぼ差がない値同士の差での割り算が式に含まれてると、
凄い大きな値になるというのと組み合わせて考えると、
最終計算結果が大きく変わるということは十分あり得る話。
0445デフォルトの名無しさん
2008/05/02(金) 13:20:560446デフォルトの名無しさん
2008/05/02(金) 13:22:290447デフォルトの名無しさん
2008/05/02(金) 13:25:010448デフォルトの名無しさん
2008/05/02(金) 13:36:070449デフォルトの名無しさん
2008/05/02(金) 15:02:44特に注意するコンパイラオプションはどれですか?
0450デフォルトの名無しさん
2008/05/02(金) 20:16:350451デフォルトの名無しさん
2008/05/02(金) 20:54:200452デフォルトの名無しさん
2008/05/02(金) 21:41:010453デフォルトの名無しさん
2008/05/02(金) 21:47:42ttp://homepage3.nifty.com/blacksword/readme_j.htm
> SSEを持ったCPU向けのバイナリでは浮動小数点演算をFPUからSSEスカラー演算に置き換えますが演算精度が32ビットなため出力結果に誤差が生じ出力ファイルの内容とサイズがリファレンスと異なる結果となります。SSE最適化パッチでも同様の問題が発生します。
0454デフォルトの名無しさん
2008/05/02(金) 22:55:08変わらないところを書いても意味無いぞ、変わるところが重要なところだ。
大抵、足し算・引き算のある場所、1/x や log では、無限大の周辺に問題は集中するから追ってみろ。
例1
double s = 0 ;
double dt = 0.00001 ;
for( int t = 0 ; t < 100 ; ++t )
{
s += f(t) * g(t) * dt ; // こういうのを見つけたら += の部分を追ってみろ、大抵ここで起こる。
}
例2
x = 1.00001;
y = (x*x + 2*x - 1)/(x*x - 1); // 分母が 0 近傍で、分子も 0 近傍だ、こういう時は log を取って足し算・引き算に書き換えろ。
0455デフォルトの名無しさん
2008/05/02(金) 23:01:26誤差が出てはいけない状況では普通にdecimal使ってるだろ。
0456デフォルトの名無しさん
2008/05/02(金) 23:03:30十進数で割り切れる場合のみの有効な誤差無しを使ってどうする、一度基礎から勉強しなおしたほうがいいぞ。
0457デフォルトの名無しさん
2008/05/02(金) 23:51:55確かにそうですが、2003/2005 両方比較していくのは
なかなか難しいです。連休明けに調査再開します。
ありがとう。
0458デフォルトの名無しさん
2008/05/03(土) 02:41:340459デフォルトの名無しさん
2008/05/03(土) 08:56:00第1引数に何を渡せばいいのかが分かりません。
どうかご教授のほどよろしくお願いいたします。
0460459
2008/05/03(土) 09:12:17Graphics g = this.statusStrip1.CreateGraphics();
PathCompactPath(g.GetHdc(), str,
this.statusStrip1.ClientSize.Width);
this.toolStripStatusLabel1.Text = str.ToString();
で自己解決しました。
お騒がせしました。
0461デフォルトの名無しさん
2008/05/03(土) 09:24:13CreateしたものはDisposeしなくちゃ
0462デフォルトの名無しさん
2008/05/03(土) 09:44:340463デフォルトの名無しさん
2008/05/03(土) 10:09:060464デフォルトの名無しさん
2008/05/03(土) 10:24:17抱えすぎているのは構造的な欠陥だとは思うな。
そのせいで>>462のような論調が後を絶たない。
WPFを見るとわかるけどほとんどDisposeは不要になってる。
0465デフォルトの名無しさん
2008/05/03(土) 11:18:140466デフォルトの名無しさん
2008/05/03(土) 11:51:020467デフォルトの名無しさん
2008/05/03(土) 11:52:460468デフォルトの名無しさん
2008/05/03(土) 12:45:340469デフォルトの名無しさん
2008/05/03(土) 12:55:07そもそもその「>>462のような論調」が的外れだと思うんだけど。。
Disposeが必要かどうかはアンマネージリソース使ってるかどうかと
関係ないだろうw
0470デフォルトの名無しさん
2008/05/03(土) 13:19:400471デフォルトの名無しさん
2008/05/03(土) 13:27:360472デフォルトの名無しさん
2008/05/03(土) 13:32:450473デフォルトの名無しさん
2008/05/03(土) 13:39:07違うよw
そもそもGCとは「リソース管理の自動化」と「リソースの効率的な活用」という
二つの二律背反の命題を両立させる銀の弾丸ではない、ということ。
0474デフォルトの名無しさん
2008/05/03(土) 14:04:100475デフォルトの名無しさん
2008/05/03(土) 14:06:120476デフォルトの名無しさん
2008/05/03(土) 14:06:34でもそんなの気持ち悪いでしょ? GC云々とはまた別の問題
0477デフォルトの名無しさん
2008/05/03(土) 14:14:42自分で破棄なんて旧世代の考え
0478デフォルトの名無しさん
2008/05/03(土) 14:16:050479デフォルトの名無しさん
2008/05/03(土) 14:17:47Hカップか?
0480デフォルトの名無しさん
2008/05/03(土) 14:18:08統合失調脳だねw
だからお前がいつファイルならファイルを閉じたいと思っているかはコンピュータには
ワカンネエの、わかる?
いや本気で、統合失調の奴もこういう思考をするんだよね。
「思考盗聴」とかなんとか言って、自分の思考が読まれてると感じられるらしいw
0481デフォルトの名無しさん
2008/05/03(土) 14:19:380482デフォルトの名無しさん
2008/05/03(土) 14:25:22オブジェクトが参照から外れたら閉じてくれてもよさそうじゃね
0483デフォルトの名無しさん
2008/05/03(土) 14:27:20あほか?閉じる処理自分ですべき。それ以降はGC。
0484デフォルトの名無しさん
2008/05/03(土) 14:27:22その「オブジェクトが参照から外れた」を確認するのにコストがかかるんだよ。
0485デフォルトの名無しさん
2008/05/03(土) 14:28:020486デフォルトの名無しさん
2008/05/03(土) 14:29:080487デフォルトの名無しさん
2008/05/03(土) 14:37:35まぁusingあるんだからそれで良しとしようや
0488デフォルトの名無しさん
2008/05/03(土) 15:32:30GWだ
0489デフォルトの名無しさん
2008/05/03(土) 15:45:480490デフォルトの名無しさん
2008/05/03(土) 16:18:190491デフォルトの名無しさん
2008/05/03(土) 17:07:33ただし、参照じゃなくて、ローカル変数として宣言した場合だけど。
0492デフォルトの名無しさん
2008/05/03(土) 17:14:58わざわざブロック切ってusingみたいにしたくなりそう
0493デフォルトの名無しさん
2008/05/03(土) 17:15:06デフォルトで勝手に捨てられるようにすると不便。
0494デフォルトの名無しさん
2008/05/03(土) 17:24:00従来のC++と全く一緒だから、分かりにくいことなんてないでしょ。
/* C++ */
class C;
{ C c;
} // destructed
{ C* c = new C();
delete c; // destructed
}
/* C++/CLI */
ref class C;
{ C c;
} // disposed
{ C^ c = gcnew C();
delete c; // disposed
}
/* C# */
class C;
{ using(C c = new C()) {
} // disposed
}
{ C c = new C();
c.Dispose(); // disposed
}
0495デフォルトの名無しさん
2008/05/03(土) 17:51:18C++ではローカル変数に作ったものはスコープを抜ける時にデストラクタが呼び出される
0496デフォルトの名無しさん
2008/05/03(土) 18:07:400497デフォルトの名無しさん
2008/05/03(土) 18:08:250498デフォルトの名無しさん
2008/05/03(土) 18:16:37C#:
using(var fileStream = new FileStream("hogehoge.txt"))
{
...
}
と
C++
FileStream fileStream("hogehoge.txt");
...
は等価で、C++ではスコープを抜ける時に勝手にDisposeされる
0499デフォルトの名無しさん
2008/05/03(土) 18:26:33DisposeするのはすでにC++じゃないし、C++の知識がなくて困っているのは分かったから、C++のスレでやれよ
0500デフォルトの名無しさん
2008/05/03(土) 18:30:590501デフォルトの名無しさん
2008/05/03(土) 18:32:000502デフォルトの名無しさん
2008/05/03(土) 18:37:150504デフォルトの名無しさん
2008/05/03(土) 18:41:210505デフォルトの名無しさん
2008/05/03(土) 18:46:03>WPFを見るとわかるけどほとんどDisposeは不要になってる。
>そのうち無停止GCが並列処理して参照から外れたものをバンバンFinalizeしてくれるようになるさ
0506デフォルトの名無しさん
2008/05/03(土) 19:03:09マルチスレッドで全部のオブジェクトについて把握しきってDisposeしろとか無茶もいい所だよ。
GCも遠からず並列処理が入るだろう。
0507デフォルトの名無しさん
2008/05/03(土) 20:02:23~~~~~~~~~~~~~~~~~~~
このDialogResultみたいなのを自分で用意したいのですが、
これってなんていう型?になるんでしょうか?
構造体みたいな定数みたいな・・・
0508デフォルトの名無しさん
2008/05/03(土) 20:04:110510167
2008/05/03(土) 21:24:21内容がながくて編集部分がひろがってしまい、そのうえみにくいので
右端で折り返したいのですがどうすればいいですか?
(出力時ではなくてコードをかいているときです)
ちなみにMicrosoft Visual Studio 2008をつかっています
0511デフォルトの名無しさん
2008/05/03(土) 21:25:25""
""
0512510
2008/05/03(土) 21:30:25改行して""で囲んだのですがエラーがでました。
お願いですが実際に例をみせていただけないでしょうか?
0513デフォルトの名無しさん
2008/05/03(土) 21:38:58+ "..."
0514デフォルトの名無しさん
2008/05/03(土) 21:40:00"foo"
+"bar"
+"baz"
0515510
2008/05/03(土) 21:41:520516510
2008/05/03(土) 21:44:44if文で真の場合に処理AとBをして偽の場合は処理Bをするとしたら
・goto文を使う
・真のところにも偽のところにも処理Bを書く
のどちらがよいですか?おしえてください
0517デフォルトの名無しさん
2008/05/03(土) 21:47:12trueでもfalseでもBをやるなら、ifの外に置けば?
if (・・・) {
A
}
B
0518デフォルトの名無しさん
2008/05/03(土) 21:47:21B;
0519デフォルトの名無しさん
2008/05/03(土) 21:47:50処理A;
}
処理B
0520デフォルトの名無しさん
2008/05/03(土) 21:48:14{
// 処理A
}
処理B
0521510
2008/05/03(土) 21:48:530522デフォルトの名無しさん
2008/05/03(土) 21:52:040523デフォルトの名無しさん
2008/05/03(土) 23:07:56WPFではbool?を返してくるようになったからそっちにしてもいいかも
0524510
2008/05/03(土) 23:50:150525デフォルトの名無しさん
2008/05/03(土) 23:57:38口座番号書いとけば、物好きが振り込んでくれるかもよ。
0526510
2008/05/04(日) 00:01:390527510
2008/05/04(日) 00:37:23俺みたいな厨房でもわかる解説サイトおしえてください
0528510
2008/05/04(日) 00:46:400120-・・・
0529デフォルトの名無しさん
2008/05/04(日) 00:59:040531デフォルトの名無しさん
2008/05/04(日) 16:56:12エントリポイントってどうやって探すものなんでしょう?
アセンブリ情報のスタートアップオブジェクトは「なし」
だったんで、Main( を検索しちゃいました。
0532デフォルトの名無しさん
2008/05/04(日) 17:20:300533デフォルトの名無しさん
2008/05/04(日) 17:20:42でかいプロジェクトってなに?
0534デフォルトの名無しさん
2008/05/04(日) 21:47:48エントリポイントの構造に未だに気持ち悪さを感じるんだが、
仮にエントリポイントが単体で定義できてしまうとかえって気持ち悪いのかな?
0535デフォルトの名無しさん
2008/05/04(日) 21:54:15そんなこと言っても拡張メソッドはまさにそうなんだけども
0536デフォルトの名無しさん
2008/05/04(日) 22:19:33個人的にはしっくりくるんだが…
0537デフォルトの名無しさん
2008/05/05(月) 01:17:160538デフォルトの名無しさん
2008/05/05(月) 01:27:580539デフォルトの名無しさん
2008/05/05(月) 01:29:110540デフォルトの名無しさん
2008/05/05(月) 08:32:53これからC#始めたいと思ってるのですが
CとC#の違いを解説しているサイトなどが
あれば教えていただきたいです
0541デフォルトの名無しさん
2008/05/05(月) 08:36:100542デフォルトの名無しさん
2008/05/05(月) 08:55:52C の経験ないんだったら素直に C# 入門サイトだけ見りゃいいと思う
0543デフォルトの名無しさん
2008/05/05(月) 09:03:35どういう意図なんだろ。
0544デフォルトの名無しさん
2008/05/05(月) 09:46:380545デフォルトの名無しさん
2008/05/05(月) 09:50:070546デフォルトの名無しさん
2008/05/05(月) 10:14:33別の入門サイトでは、基本的にprivateが推奨されているという記述があったのですが、
どちらが一般的なのでしょうか?
0547デフォルトの名無しさん
2008/05/05(月) 10:17:45基本はprivateだよ。
なんでもpublicにするのは悪い作法。
クラス外部からアクセスさせるメソッドだけをpublicにする。
0548デフォルトの名無しさん
2008/05/05(月) 10:17:51基本的にprivateが推奨されているのはメンバ変数。
メソッドがpublicなのは普通。privateメソッドを定義するのも普通。
0549デフォルトの名無しさん
2008/05/05(月) 10:20:04>>548は訂正します。
0550デフォルトの名無しさん
2008/05/05(月) 10:23:05猫は良くないからやめとけ。
0551デフォルトの名無しさん
2008/05/05(月) 10:45:01ではDelphi使いのためのC#入門というのはあるでしょうか?
0552デフォルトの名無しさん
2008/05/05(月) 10:49:410553デフォルトの名無しさん
2008/05/05(月) 11:34:25言語としてDelphiと大きく違うのは
・完全オブジェクト指向(グローバル変数・関数がなく、int含め全ての型がオブジェクト扱い)
・構造体(record)は継承できないクラスという感じ
・集合型がない
・文字はユニコード
・stringもStringBuilderも、Delphiのstringとは違う。
・DLL呼び出しが簡単
使いたいpublicクラスが定義されたDLLやEXEを参照とusingに追加するだけで、そのまま使える
・ジェネリック型・デリゲート型がある
・.NETと密接に絡んでいるので、C#の機能なのか.NETの機能なのか区分けも難しい
VCLと.NETを比べると
・ActionManagerがない
・汎用TListのジェネリック型List<>等、リスト処理用のクラスが多数ある
・VCLよりWin32APIやらCOMやらを呼ばなくてもいいことのほうが多いが、
逆にFindWindowやSendMessageとかのハンドル・メッセージを直処理する機能はないから、
ラッパー関数を作るまでが面倒
開発環境
・コードの自動レイアウト機能がある
}や;を入力した瞬間に、あらかじめ設定しておいたフォーマットに整形できる。
入力時にインデント等を気にしなくてもいい反面、
上下で=の位置を揃えていても下手に}を入力してしまうと水の泡になったりする。
・コードの補完機能がDelphiよりも強力な気がする
・メソッドの前で///と入力することでIDEから参照できるコメントが簡単につけられる
・デバッガ上でインタプリタ的にそのまま式やメソッドを実行できる
・デバッグ中に次に実行する行を変えたり、ソースを修正して変えたソースでそのまま続行できる
0554デフォルトの名無しさん
2008/05/05(月) 11:39:540555デフォルトの名無しさん
2008/05/05(月) 11:55:050556デフォルトの名無しさん
2008/05/05(月) 11:58:36違うだろw
0557デフォルトの名無しさん
2008/05/05(月) 12:07:170558デフォルトの名無しさん
2008/05/05(月) 12:09:20556じゃないが、お前は本当に馬鹿だと思うよw
0559デフォルトの名無しさん
2008/05/05(月) 12:10:190560デフォルトの名無しさん
2008/05/05(月) 12:14:35大雑把な印象として「継承できないクラス」でいいと思うけどね。
「継承を禁止された」、とは言ってないわけだからねえ。
0561デフォルトの名無しさん
2008/05/05(月) 12:21:500562デフォルトの名無しさん
2008/05/05(月) 12:22:57無知なんだから黙っとけ。
0563デフォルトの名無しさん
2008/05/05(月) 12:23:450564デフォルトの名無しさん
2008/05/05(月) 14:06:20ヤツの行動パーターンの馬鹿さ加減に無知は関係ないだろw
0565デフォルトの名無しさん
2008/05/05(月) 14:11:090566デフォルトの名無しさん
2008/05/05(月) 14:31:30ありがとうございます。
把握しました。そう読み替えようと思います
>>550
何かお勧めがありますでしょうか?
良ければ教えていただきたいです
0567デフォルトの名無しさん
2008/05/05(月) 14:38:24金と時間の許す範囲でいろいろザッピングするのがいいと思うよ。
書き手もそんなに精読される前提で文章書いてないし、
そうでなくてもガイジンさんと違って日本人はだいたい網羅的に説明するのって苦手だから
たった一人の書き手に依存するのは危険でもある。
0568デフォルトの名無しさん
2008/05/05(月) 14:41:59逆引きリファレンスみたいなのがいいよ
実行結果の画像とコードがしっかりのってる奴
0569デフォルトの名無しさん
2008/05/05(月) 14:46:450570デフォルトの名無しさん
2008/05/05(月) 14:49:46>>567
なるほど…一冊の本に依存するのは駄目ですか。
色々見るのが良いという訳ですね
>>568
本屋に佇む相当分厚い奴らの事でしょうか
今度ちょっと見てきます
0571デフォルトの名無しさん
2008/05/05(月) 15:13:51全く同じ文章を前にもどこかで読んだ
0572デフォルトの名無しさん
2008/05/05(月) 15:54:06独習JAVA、C言語によるはじめてのアルゴリズム入門
Visual C++入門 ビギナー編、逆引きハンドブックVisual C#
0573デフォルトの名無しさん
2008/05/05(月) 16:00:49オライリーの初めてのC#がお勧め。
消防の僕にも完璧に理解が出来たぐらいだからすごく分かりやすい。
ちなみにリファレンス的なものは良くないと思う。
何も理解しなくても作れるし。
0574デフォルトの名無しさん
2008/05/05(月) 18:07:34参照できないインスタンスって
GCの回収対象になっちゃう?
0575デフォルトの名無しさん
2008/05/05(月) 18:09:440576デフォルトの名無しさん
2008/05/05(月) 18:11:460577デフォルトの名無しさん
2008/05/05(月) 18:55:14もっているだけで成長の道を閉ざす
0578デフォルトの名無しさん
2008/05/05(月) 19:04:24オイラリーとか当り前のことを冗長に書きすぎてて、読むのは時間の無駄。
スキルや目的に合わせて選ぶのが吉。
0579デフォルトの名無しさん
2008/05/05(月) 19:09:07そいつは最初からその程度の人間なんじゃないか、と俺も思うね。
0580デフォルトの名無しさん
2008/05/05(月) 19:15:11それで何かをマスターする目的で買う奴はいないと思う。
0582デフォルトの名無しさん
2008/05/05(月) 20:17:53C#覚えてオマイが実装して公開すればよくね?
0583デフォルトの名無しさん
2008/05/05(月) 20:58:48いや逆引き本の存在意義ってのは言語やライブラリを解説している本には書いてない、
細々とした個別のテクニックとかHow toを紹介することだろう本来。
0584デフォルトの名無しさん
2008/05/05(月) 21:18:32"hoge"という名前のstring型があるんだけど
これをXAML上でTextBoxにBindingってできるの?
0585デフォルトの名無しさん
2008/05/05(月) 21:33:47逆引き本を見るような初心者には一番必要なことだ
0586デフォルトの名無しさん
2008/05/05(月) 21:39:010587デフォルトの名無しさん
2008/05/05(月) 21:49:54アンタ逆引き本とか読んだことないだろ?w
0588デフォルトの名無しさん
2008/05/05(月) 21:51:28役に立つから成長に邪魔なんだ
0589デフォルトの名無しさん
2008/05/05(月) 21:56:040590デフォルトの名無しさん
2008/05/05(月) 21:59:53属性に書くの?操作に書く?どっち?
0591デフォルトの名無しさん
2008/05/05(月) 22:01:420592デフォルトの名無しさん
2008/05/05(月) 22:10:050593デフォルトの名無しさん
2008/05/05(月) 22:14:430594デフォルトの名無しさん
2008/05/05(月) 22:16:370595デフォルトの名無しさん
2008/05/05(月) 22:23:07書くじゃない?
0596デフォルトの名無しさん
2008/05/05(月) 22:27:33属性をフィールド、操作をメソッドのことだと思っとる
0597デフォルトの名無しさん
2008/05/05(月) 22:32:08フィールドを属性として書く
0598デフォルトの名無しさん
2008/05/05(月) 22:50:030599デフォルトの名無しさん
2008/05/05(月) 22:53:10例えばControl.ClientSizeなら属性にするね
0600デフォルトの名無しさん
2008/05/05(月) 22:58:470601デフォルトの名無しさん
2008/05/05(月) 23:21:51しかもMSのオフィシャルなサンプルだった希ガス
0602デフォルトの名無しさん
2008/05/05(月) 23:49:02<TextBox
xmlns:prop="clr-namespace:Properties"
Text="{Binding Source={x:Static prop:Settings.Default}, Path=hoge}"
/>
でいいんじゃない?
0603デフォルトの名無しさん
2008/05/06(火) 00:22:27それでできました。thx
いろいろ実験してBindingの仕組みはなんとなく分かった気がするけど
マークアップ拡張?とかまだよく分からんなぁ…
0604デフォルトの名無しさん
2008/05/06(火) 09:29:220605デフォルトの名無しさん
2008/05/06(火) 09:31:32XML 属性中に {} 内に書けるのは MarkupExtension を継承するクラスのみ。
例えば、
<Button Background="{StaticResource myBrush}"/>
とか書くと、対応するC#コードは(うろ覚えだけど多分)
new Button {
Background = (new StaticResourceExtension {
ResourceKey = "myBrush"
}).ProvideValue
};
になる。
0606デフォルトの名無しさん
2008/05/06(火) 09:32:040607デフォルトの名無しさん
2008/05/06(火) 14:36:34あぁ、分かった気がする。
>>602の場合、x:Static(System.Windows.Markup.StaticExtension)のコンストラクタは
"prop:Settings.Default"を受け取って、ProvideValue()でリフレクション(だっけ?)使って
Settings.Defaultプロパティの値を返すということか。
0608デフォルトの名無しさん
2008/05/06(火) 20:39:56本物のゲームみたいにできますか?いまは文字を表示することしかできません。
おしえてください
0609デフォルトの名無しさん
2008/05/06(火) 20:43:53まだスキルが低すぎて難しい気がします。
0610デフォルトの名無しさん
2008/05/06(火) 20:45:50わかりました、ありがとうございます。
0611デフォルトの名無しさん
2008/05/06(火) 20:57:09C#でPg作る時 テキストとかボタン を Wクリックして
イベント書き始めるじゃないですか
その後このイベントいらないーと思った時
消すと落ちるじゃないですか
デルファイは使ってないコードコンパイル時に
自動的に消されるんですがC#はそういう機能ないんでしょうか?
自分で関連したところ消さなくてはいけないんでしょうか
後・・・「ボタン」のイベントで、Name変更しても
消す前のボタンの名前が残ってしまう&Wクリックすると昔(その)のボタンの
コードの場所に飛ばされてしますのですが・・・修正する時がんがって消してから
イベント書かなくてはいけないのでしょうか
よろしくおねげえします^^;
0612デフォルトの名無しさん
2008/05/06(火) 21:30:150613デフォルトの名無しさん
2008/05/06(火) 21:51:00ついダブルクリックしちゃうんだよね
するとクリックイベントコードが作られちゃうんだけど消したい
自分で消してるけど
name変えてもButton1_Clickのままってことかな
仕様でしょ
0614デフォルトの名無しさん
2008/05/06(火) 22:01:01やはり自分で消すんですか
デザイナ.CSの中を見て、消さなくてはいけないので
めんどいな、とおもいますた
ありがとうございます
>>612
らじゃ
0615デフォルトの名無しさん
2008/05/06(火) 22:08:05皆さんはどうやってます?
基本の印刷は地味で・・・
町で見かける領収書みたいのを作成
したい場合どうやってます
クリスタルレーポートですか
ジャイブレポートですか
エクセルにはいて印刷ですか
そもそもそんな用途にはむいてないんだよですか?
0616デフォルトの名無しさん
2008/05/06(火) 22:18:12プロパティ ウインドウのイベントから消せば、デザイナのコードもちゃんと消してくれるよ。
0617デフォルトの名無しさん
2008/05/06(火) 22:24:16今から やってみます
0618デフォルトの名無しさん
2008/05/06(火) 22:27:27イベントハンドラ名の上にカーソルを置いてCtrl+(R+R)
0619デフォルトの名無しさん
2008/05/06(火) 22:27:50ありがとうございます m^^m
0620デフォルトの名無しさん
2008/05/06(火) 22:31:26キーの組み合わせ(Ctrl+R Ctrl+R)現在使用できないコマンド・・・略
出来ませんでした^^;
0621デフォルトの名無しさん
2008/05/06(火) 22:34:11あと、名前を変えたいメソッドや変数の文字列の上で右クリックして、
そのメニューの「リファクタ−「名前の変更」でも出来る。
0622デフォルトの名無しさん
2008/05/06(火) 22:38:42>>621さんできました
変更する時はつわかせていただきます^^v
0623デフォルトの名無しさん
2008/05/06(火) 22:41:170624デフォルトの名無しさん
2008/05/06(火) 22:44:460625デフォルトの名無しさん
2008/05/06(火) 22:50:51デフォルト名のままのイベントハンドラ名も追随して変わってくれるから
この点だけはVSは賢くないと思う。
0626デフォルトの名無しさん
2008/05/06(火) 22:59:01おいらわ初心者なんでよく分からないけど
<HOGE>で検索かけた時<HOGE>を使ってる一覧表見たいのが
「がーーーー」と、でないかなと思ってる
デルファイであったんだけど、C#にあるのかなと言うよりIDEとして
こんな感じ
***********************
PG AAA INT HOGE
PG BBB INT HOGE
PG CCC INT HOGE
PG CCC INT HOGE
HOGEは4箇所で使われています
***********************
0627デフォルトの名無しさん
2008/05/06(火) 23:14:11あまりの書きやすさに目に鱗の日々なのですが
にも関わらず、いまいち普及してないのはどうしてなんでしょ?
0628デフォルトの名無しさん
2008/05/06(火) 23:16:430629デフォルトの名無しさん
2008/05/06(火) 23:16:54ヒント:セグメント
0630デフォルトの名無しさん
2008/05/06(火) 23:24:16ttp://www.indeed.com/jobtrends?q=javascript%2C+ruby%2C+perl%2C+C%23%2C+C%2B%2B%2C+python%2C+php%2C+vb%2C+lisp%2C+fortran%2C+cobol&l=
0631デフォルトの名無しさん
2008/05/06(火) 23:25:290632デフォルトの名無しさん
2008/05/06(火) 23:40:180633デフォルトの名無しさん
2008/05/07(水) 02:12:01流石にそれはなくない?
0634デフォルトの名無しさん
2008/05/07(水) 02:36:42もしかして:JavaScript
JavaScriptではなくJavaを入れると、はいこの通り。
ttp://www.indeed.com/jobtrends?q=java%2C+JavaScript%2C+C%23%2CC%2CC%2B%2B&l=
しかし、まだまだC強いな。
とはいえCの案件と聞きつつ、Cと他の何かを使うことが多かったけど。
0635デフォルトの名無しさん
2008/05/07(水) 03:32:54でも、デフォルトのShift+Alt+F10って押しにくいよな
何でこんなキーバインドにしたんだろ
HHKだとShift+Alt+Fn+0とさらに無茶苦茶な組み合わせに
0636デフォルトの名無しさん
2008/05/07(水) 03:41:07sqlとかhtmlとか入れると結構あるな
0637デフォルトの名無しさん
2008/05/07(水) 05:29:08調査法でまったく結果が変わる。
案件ベースなのか、金額ベースなのか、ステップ(命令・ワード)ベースなのか、
求人ベースで調べるのか、雇用中を対象にするのか、
アマチュアを対象に含むか、単独回答か複数回答か、などなど。
開発ツールのダウンロードのときなどのにこの手のアンケートをやらされるとこがあるが、
自分がどの程度まともに回答するか思い浮かべてみよう。
0638デフォルトの名無しさん
2008/05/07(水) 05:36:16お前・・・すごいな
いい釣り師になれると思うよ
0639デフォルトの名無しさん
2008/05/07(水) 07:05:34おすすめの本とかありますか?
0640デフォルトの名無しさん
2008/05/07(水) 09:47:14特にC++でいうSTLにあたるクラスとメソッドの解説が充実してるやつ
0641デフォルトの名無しさん
2008/05/07(水) 10:41:31C#にテンプレートは無い、似ているが違うから同様の処理は不可能。
STLで良くつかわれる方法は代替としてリフレクションで行える、が考え方は全然別物なので比較の意味なし。
ジェネリックスの範囲なら同様だがSTLが解るなら説明するまでも無いだろう。
0642デフォルトの名無しさん
2008/05/07(水) 19:44:010643デフォルトの名無しさん
2008/05/07(水) 20:10:06if文だと長いのでほかの方法がいいのですが、何かいい方法はありますか?おしえてください
enum じゃんけん : byte
{
グー =1,
チョキ = 2,
パー = 3
}
static void Main()
{
Random Random = new System.Random();
Console.Write("グーなら1、チョキなら2、パーなら3を入力してください;");
int ken = int.Parse(Console.ReadLine());
int ransu = Random.Next(1, 4);
for (int i = 1; i <= 4;++i )
{
if (ken == i)
{
switch(ken)
{
case 1:
Console.Write("あなた;{0}\nあいて;{1}\n", (じゃんけん)i,(じゃんけん)ransu);
break;
case 2:
Console.Write("あなた;{0}\nあいて;{1}\n", (じゃんけん)i, (じゃんけん)ransu);
break;
case 3:
Console.Write("あなた;{0}\nあいて;{1}\n", (じゃんけん)i, (じゃんけん)ransu);
break;
}
0644デフォルトの名無しさん
2008/05/07(水) 20:15:560645デフォルトの名無しさん
2008/05/07(水) 20:17:530646デフォルトの名無しさん
2008/05/07(水) 20:23:46おねがいします
0647デフォルトの名無しさん
2008/05/07(水) 20:33:300648デフォルトの名無しさん
2008/05/08(木) 01:37:54どうしたらいいんだ。
0649デフォルトの名無しさん
2008/05/08(木) 02:15:45enum じゃんけん
{
グー = 1,
チョキ = 2,
パー = 3
}
static void Main()
{
Random rdm = new System.Random();
Console.Write("グーなら1、チョキなら2、パーなら3を入力してください;");
int player = int.Parse(Console.ReadLine());
int cpu = rdm.Next(1, 4);
//結果判定
int d = player - cpu;
string result;
if (d == 0) result = "あいこです";
else if (d == 1 || d == -2) result = "あなたの負けです";
else result = "あなたの勝ちです";
//結果出力
Console.Write("あなた;{0}\nあいて;{1}\n", (じゃんけん)player, (じゃんけん)cpu);
Console.WriteLine(result);
}
0650デフォルトの名無しさん
2008/05/08(木) 02:28:56charを2つ使う
0651デフォルトの名無しさん
2008/05/08(木) 15:41:05SplitContainer を使用して左右にTextBoxを配置し、最初に右側へフォーカスを
持たせたいのですが必ず左がフォーカスを持ってしまいます。
タブオーダーもいじったのですが変わりませんでした。
Focus使えばやりたいことは出来るのですが、どうやって順番を変えるのでしょうか。
0652デフォルトの名無しさん
2008/05/08(木) 16:54:050653643
2008/05/08(木) 17:22:17ありがとうございます。もう一度一からつくりなおしてみます。
0654デフォルトの名無しさん
2008/05/08(木) 18:55:020655デフォルトの名無しさん
2008/05/08(木) 19:36:13↓↓この写真、オウムが駅で配布してた宣伝雑誌とかポスト放り込みチラシに載せまくってたから
記憶にある人もいると思う。
http://www.foyun.com/bbs/upload/200626-145517-admin.jpg
http://www.iivs.de/~iivs01311/SDLE/Part-2-13-Dateien/image002.jpg
ダライラマの正体はこんな卑しいことばっかやって日銭稼いでる生臭テロ坊主。
生き仏とやらなら、極悪犯罪者の正体見抜けなかったのかwww
(ちなみにこの写真の撮影時期は坂本弁護士一家惨殺事件よりずっと後ね。
犯罪者予備軍どころではなく、バレてないだけの既に凶悪犯罪者。)
べっとり握手までしとる・・・・うああああ
類は友を呼ぶんだなw
0656デフォルトの名無しさん
2008/05/08(木) 19:48:340657651
2008/05/08(木) 20:07:14テスト的につくったフォームで試したところ、タブオーダーは
SplitContainer 0
TextBox1 0.0.0
TextBox2 0.1.0
となっていました。
貼り付けたコントロールは上記三つだけです。
0658デフォルトの名無しさん
2008/05/08(木) 21:24:52全ての先祖コンテナの設定が必要
(たとえ、IDEで表示されなくても)
そのまま貼り付けただけだとこうなる
-- splitContainer1 ――――――― 0
+- splitContainer1.Panel1 ―― 0.0
| `- textBox1 ――――― 0.0.0
`- splitContainer1.Panel2 ―― 0.1
`- textBox2 ――――― 0.1.0
見たところ、splitContainer.Panel{1,2}がデフォルトのまま
0659デフォルトの名無しさん
2008/05/09(金) 08:48:32いや俺は>>643で書いたコードがわかりやすくて良いと思う
0660デフォルトの名無しさん
2008/05/09(金) 10:17:300661デフォルトの名無しさん
2008/05/09(金) 12:45:46おれもそう思う、しかし enum で定義しておきながら、それを case で使っていないのがとても気になる、一番肝心なところが間違っている。また、byte も余計だろう。
次点は剰余を使ったものだが、かなり数学に強くないと衝撃が大きいので自分専用ならOKか。
0662デフォルトの名無しさん
2008/05/09(金) 13:24:21仕様どおりじゃないしそもそも動かない。
0663デフォルトの名無しさん
2008/05/09(金) 13:26:270664デフォルトの名無しさん
2008/05/09(金) 13:32:40if と case があって、それ以外にも手段があるかとか、それを聞いているだけだろ
コードは途中で切れているから、仕様通りかなどという判断はできんし、見てほしいとも思っていないかと思っている。
0665デフォルトの名無しさん
2008/05/09(金) 14:12:21const string[][] ResultString = {{"あいこ", "あなたの勝ち", "あなたの負け"},
{"あなたの負け", "あいこ", "あなたの勝ち"},
{"あなたの勝ち", "あなたの負け", "あいこ"}};
としておくと、ResultString[ken-1][ransu-1]が結果。
0666デフォルトの名無しさん
2008/05/09(金) 14:18:23単純だけど汎用性もあるし
0667デフォルトの名無しさん
2008/05/09(金) 15:44:460668デフォルトの名無しさん
2008/05/09(金) 19:28:250669デフォルトの名無しさん
2008/05/09(金) 20:00:190670デフォルトの名無しさん
2008/05/09(金) 21:15:53やりたい事は分かるし、手法も問題ないが
宣言はジャグなのに初期化は多次元になってるとか
constは使えないとか
# 667で多重とか書いちゃったけど、多次元の間違い
0671デフォルトの名無しさん
2008/05/09(金) 21:18:440672デフォルトの名無しさん
2008/05/09(金) 22:39:140673デフォルトの名無しさん
2008/05/09(金) 22:42:480674デフォルトの名無しさん
2008/05/09(金) 23:14:560675デフォルトの名無しさん
2008/05/09(金) 23:21:54ありがとうございましたー!!!
しかしながらC#のクラスライブラリの仕様が見あたらない・・・
文書量が膨大なのでゆっくりと探していきます。ありがとうございました。
0676デフォルトの名無しさん
2008/05/10(土) 00:10:430677デフォルトの名無しさん
2008/05/10(土) 00:14:20実行中、GetAsyncKeyStateを呼んだ地点でNullReferenceExceptionが発生してしまい(ちなみにcatchできない)、悩んでおります。
原因おわかりでしたら、教えていただけると助かります。
class GetKey{ Dictionary<int,bool> bKey;
[DllImport("user32.dll")]
static extern short GetAsyncKeyState(int vKey);
public bool Get(int key){
short result=0;
result=GetAsyncKeyState(key);
if((result&0x8000)!=0)
if(bKey[key])return true;
else{ bKey[key]=true; return false; }
else return false;
 
0678デフォルトの名無しさん
2008/05/10(土) 00:16:11内容自体はそれで全部です
0679デフォルトの名無しさん
2008/05/10(土) 00:22:03一発で見つかりましたw
まだ.NETって何って感じなんでそっからやった方がよさそうですね。
ありがとうございました。
0680デフォルトの名無しさん
2008/05/10(土) 02:38:100681デフォルトの名無しさん
2008/05/10(土) 03:28:25>GetAsyncKeyStateを呼んだ地点で
というのが怪しい。場所が違う気がするからスタックトレースを見直してみよう。
ソースを見た感じではbKeyがnullのせいだと思える。
0682デフォルトの名無しさん
2008/05/10(土) 10:44:21確かにそうでした。GetAsyncKeyStateのある行をコメントアウトしたら収まったため、
完全にWin32 APIの問題だと思い込んでしまっていました。
(実際には、判定結果の違いでif(bKey[key]に到達しなかっただけ)
bKeyを初期化し、bKey[key]を必要に応じて作成するようにしたら解決しました。
初歩的なミスばかりなのに、教えていただいてありがとうございました。
0683デフォルトの名無しさん
2008/05/10(土) 11:36:330684デフォルトの名無しさん
2008/05/10(土) 12:09:110685デフォルトの名無しさん
2008/05/10(土) 12:15:51手元にあるやつだと2箇所程度ミスを確認してるけど、何だかんだでお世話になった。
0686デフォルトの名無しさん
2008/05/10(土) 13:01:32正確に言うとその行を切り取るんだけど、単にその行を削除できる感じ
コピーしたのを貼り付けようとして間違えてctrl + c押しちゃってウゼーって思ってたけど
0687デフォルトの名無しさん
2008/05/10(土) 13:05:410688デフォルトの名無しさん
2008/05/10(土) 16:09:230689デフォルトの名無しさん
2008/05/10(土) 18:43:35ttp://www.uploda.org/uporg1415339.c.html
上記のようなコードを書いたのですが、
bの領域を解放するときに
”Windows によって aaaaa.exe でブレークポイントが発生しました。ヒープが壊れていることが原因として考えられます。aaaaa.exe または読み込まれた DLL にバグがあります。”
のようなエラーが出てしまいます・・・。。。
確保していない領域にアクセスし、それをフリーしようとしたときにおこるエラーみたいなことがググったら書いてあったのですが、
double** b; が確保されている領域と、callocで追加確保された領域が連続でないということでしょうか?
またそのせいでこのエラーがおこっているのでしょうか?
ご教授願います。よろしくお願いします。。。
0690689
2008/05/10(土) 18:44:120691デフォルトの名無しさん
2008/05/11(日) 03:50:28別のメソッド等を呼び出すことはできるのでしょうか?
例えば下記みたいな感じで、
Hoge.GetPersonalData( name, out old )が戻り値がoutで返ってくるため、base()に直接入れられないのです。
//親
public class Oya {
public Oya( string name, int old ) {}
}
//子
public class Ko : Oya {
public Ko( string name )
: int old;
Hoge.GetPersonalData( name, out old );
base ( name, old ) {}
}
0692デフォルトの名無しさん
2008/05/11(日) 04:08:300693デフォルトの名無しさん
2008/05/11(日) 04:43:45子のコンストラクタを呼ぶ側でHoge.GetPersonalDataを先呼んでやって、
子のコンストラクタの引数を一つ増やして、Ko( name, old );とするということでしょうか。
0694デフォルトの名無しさん
2008/05/11(日) 04:49:46もしくはhogeをそのまま渡せば?
0695デフォルトの名無しさん
2008/05/11(日) 04:56:59hogeはstaticか。
0696デフォルトの名無しさん
2008/05/11(日) 05:20:04可能な限りコンストラクタの内部処理として隠してしまいたいんです…。
0697デフォルトの名無しさん
2008/05/11(日) 07:52:01public class Ko : Oya {
private static int GetPersonalAge(string name) {
int old;
Hoge.GetPersonalData(name, out old);
return old;
}
public Ko(string name) : base(name, GetPersonalAge(name)) {}
0698デフォルトの名無しさん
2008/05/11(日) 08:25:24自分はあきらめていたよ、そういう手があったか
class C { public static void Age(out int age) { age = 5; } }
class A { public A(int i) { } }
class B : A
{
public B(string name) : base((new Func<int>(() => { int age; C.Age(out age); return age; }))()) { }
}
次からはこうしよう
0699デフォルトの名無しさん
2008/05/11(日) 11:10:59>>698
ありがとうございます。
0700デフォルトの名無しさん
2008/05/11(日) 11:33:000701デフォルトの名無しさん
2008/05/11(日) 13:33:53なにか合理的な理由があるんだっけ?
0702デフォルトの名無しさん
2008/05/11(日) 13:51:240703デフォルトの名無しさん
2008/05/11(日) 13:53:170704デフォルトの名無しさん
2008/05/11(日) 13:55:12コンストラクタも継承元のから順に実行されてゆく。
コーディング上、継承先のコンストラクタから継承元のコンストラクタを
呼び出しているように見えるが実際は逆。
0705デフォルトの名無しさん
2008/05/11(日) 14:04:480706デフォルトの名無しさん
2008/05/11(日) 14:06:47staticだから呼べる
0707デフォルトの名無しさん
2008/05/11(日) 14:20:410708デフォルトの名無しさん
2008/05/11(日) 14:20:52ってやると文字を入力できますが、日本語が入力できません。
日本語を入力してもらうにはどうすればいいですか?
0709デフォルトの名無しさん
2008/05/11(日) 14:24:440710デフォルトの名無しさん
2008/05/11(日) 14:30:130711デフォルトの名無しさん
2008/05/11(日) 14:43:40課題でN88BASIC互換ソフト使ってグラフ
作れって言われたんだけど、データはあるんだけど
N88互換がXPだからか、ダウンロードできないorz
どうやったらいいんだろう?HELP読んでも解決
出来なかったし、マジ困った。
0712デフォルトの名無しさん
2008/05/11(日) 14:49:370713デフォルトの名無しさん
2008/05/11(日) 14:52:05Windowアプリ作る時
大体終了ボタン作る時
場所って大体同じ場所に作りますよね
それって雛形登録したいのですがどうしゅればいいのかな
デルファイでいう リポジトリ見たいなものなんですが
0714デフォルトの名無しさん
2008/05/11(日) 14:53:57すべって書き込みボタン押してしまいました
へんな日本語に・・・
日本語でおkってことで 読んで栗
0715713
2008/05/11(日) 15:02:100716デフォルトの名無しさん
2008/05/11(日) 15:03:290717デフォルトの名無しさん
2008/05/11(日) 15:03:57もしくはカスタムコントロールでググレ馬鹿
0718708
2008/05/11(日) 15:10:410719デフォルトの名無しさん
2008/05/11(日) 15:15:590720デフォルトの名無しさん
2008/05/11(日) 15:19:570721708
2008/05/11(日) 15:22:20下のコードを実行するとkonnitihaとアルファベットで打たないといけませんが、
自分自身がこんにちはと入力できるようにしたいということです
using System;
class kaiwa
{
static void Main()
{
string kaiwa = Console.ReadLine();
switch (kaiwa)
{
case "konnitiha"://要するにここのkonnitihaが「こんにちは」でできるようにしたいということ
Console.Write("こんにちは\n");
break;
}
}
}
0722デフォルトの名無しさん
2008/05/11(日) 15:26:39715てめー 失礼なこと書くな
馬鹿とか書かれたろー
なんか恨みでも あんのかよぉ
0723デフォルトの名無しさん
2008/05/11(日) 15:28:11コマンドプロンプトで日本語入力ができない初心者ですという事?
0724708
2008/05/11(日) 15:28:54入力するときはアルファベット・・・・・。
どうすれば日本語を入力できるのですか?
0725デフォルトの名無しさん
2008/05/11(日) 15:29:030726デフォルトの名無しさん
2008/05/11(日) 15:29:09日本語が使える環境なんだね?
コマンドプロンプトを立ち上げて、日本語入力できるか試してみて。
単純に「半角+Alt」押してないだけだろうけど。
0727708
2008/05/11(日) 15:31:08なぜですか?
using System;
class kaiwa
{
static void Main()
{
string test = Console.ReadLine();
}
}
0728708
2008/05/11(日) 15:32:39みなさまありがとうございました。
0729デフォルトの名無しさん
2008/05/11(日) 15:33:59altを押しながら(半角全角)ボタンを1回押してみてもダメ?
0730デフォルトの名無しさん
2008/05/11(日) 15:34:52おk
コマンドプロンプト ぐぐってきま
0731デフォルトの名無しさん
2008/05/11(日) 15:35:53http://wktk.vip2ch.com/vipper77650.gif
0732デフォルトの名無しさん
2008/05/11(日) 15:35:570733デフォルトの名無しさん
2008/05/11(日) 16:18:41Winアプリって大抵終了ボタンついてないけど?
×ボタンがあるからいらないじゃん
0734デフォルトの名無しさん
2008/05/11(日) 16:20:120735本物の713
2008/05/11(日) 16:33:58たあーしかに、そうなんだけど
まあ例としてです ^^b
要するに雛形が欲しかったので
カスタムコントーロールむずい・・・・
なんか理解できない
更にググってきます
0736デフォルトの名無しさん
2008/05/11(日) 17:40:15起動時からグレーではなく表示する方法ってありますか
0737736
2008/05/11(日) 18:06:231.SuspendLayout,ResumeLayout(false)
2.SetStylesでダブルバッファを指定する方法
以下の構成で、1.は各子コントロールのAddの前後に、2.はメイン画面に設定してます
メイン
SplitContainer
Textbox
SplitContainer
TreeView
RichTextBox
0738デフォルトの名無しさん
2008/05/11(日) 18:54:50グレーになったことがないんだが。
enableってどうなってる?
0739736
2008/05/11(日) 19:54:15(InitializeComponentの最後にthis.Visible.ToString()をメッセージボックスで表示させてます)
起動時点で29メガ消費するんですが関係あります・・よね、きっと。
0740736
2008/05/11(日) 19:59:16各コントロールのEnabled.ToString()を表示させてみましたが
やはりすべてtrueです
0741デフォルトの名無しさん
2008/05/11(日) 20:38:36ぱっと見で気になるレベルなのか?
普通に書いてりゃならンと思うが・・・
0742デフォルトの名無しさん
2008/05/11(日) 20:46:36デバッガ通しでなく、直接exeを起動してもそうなるのか。
CPUとメモリは?
つまり遅いだけなんじゃないかと予想してみる。
0743736
2008/05/11(日) 21:50:37あまり状況はかわりませんでした。(リリースビルドしても同様)
CPU使用率は、タスクマネージャで見た感じほとんど0です。
(このとき、起動時のメモリ使用量が22メガぐらいです)
結局原因はよくわからないですが
グレーの部分が見えるのは0.1〜0.2秒ぐらいなんで、
NETが単に重いだけだと思うことにします
(C#のフォームを表示させるだけのプロジェクトで起動時に13Mぐらいメモリ使ってました)
みなさんありがとう。
0744デフォルトの名無しさん
2008/05/11(日) 21:52:11処理の最初にfalseに設定されてて、初期処理の終わりのほうでtrueにしてたら、
処理している途中はずっとfalseなわけだし・・
0745デフォルトの名無しさん
2008/05/11(日) 21:56:59private static extern bool SetProcessWorkingSetSize(IntPtr proc, int min, int max);
private static void タスクマネージャのメモリ使用量を小さく見せる細工() {
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1);
}
0746736
2008/05/11(日) 22:33:59んー、Enabledのfalseとtrue試してみましたがやはり、同様でした
また、Enabledをfalseにしたまま実行してみたところ、その場合もちらついてます
(RichTextBoxの矩形がSplitContainerのペインに一瞬表示され、
その後SplitContainerのペイン全体に広がっているように見えます。 DockStyleはFillです)
>>744 これは・・メモリ使用量が半分以下に・・
0747デフォルトの名無しさん
2008/05/11(日) 23:44:350748デフォルトの名無しさん
2008/05/11(日) 23:48:43いいえ
0749デフォルトの名無しさん
2008/05/11(日) 23:54:02Debugとリリース切り替えるかっこいい奴
とりあえずぐぐってきま
0750デフォルトの名無しさん
2008/05/11(日) 23:55:060751デフォルトの名無しさん
2008/05/12(月) 00:00:38眠いので失礼島
0752デフォルトの名無しさん
2008/05/12(月) 00:03:47VS2002(or 3)からの移行組?
2005以降はなぜかデフォでは表示されない設定になってる気がした。
オプションで表示されるように設定しなおすよろし
0753デフォルトの名無しさん
2008/05/12(月) 00:32:230754デフォルトの名無しさん
2008/05/12(月) 01:10:060755デフォルトの名無しさん
2008/05/12(月) 08:16:13どんなアマチュアだよw
0756デフォルトの名無しさん
2008/05/12(月) 08:23:43→プロジェクトおよびソリューション→ビルド構成の詳細を表示
0757デフォルトの名無しさん
2008/05/12(月) 10:47:30Debugクラスとか[Conditional("Debug")]とか使わないのかよ
0758デフォルトの名無しさん
2008/05/12(月) 11:00:20わが国のITはユーザに使用法を十分説明する時間がありません。
このため、初心者がベテランに疑問についてたずねる光景を目にすることがあります。
しかし本来は事故(情報漏えいなど)が発生した場合の責任は、
接続業者、サーバ運営者、システムを開発したエンジニアにあります。
メーカあるいは購入店にたずねるべきです。
利用者の仕事は自治(掲示板の秩序を守ること)です。助言を行ってはなりません。
素人が専門技術に言及するのは「親切」ではありません。「無責任」です。
海外のプロフェッショナルは、「私の仕事ではない」と答えるはずです。
0759デフォルトの名無しさん
2008/05/12(月) 11:22:46DateTime のミリ秒だけ切り捨てることってどうやりますか?
とりあえず
new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second)
みたいに書いてるんですが。
0760デフォルトの名無しさん
2008/05/12(月) 12:05:46まずは、この書き方やめね?素人っぽいぞw
0761デフォルトの名無しさん
2008/05/12(月) 12:33:150762デフォルトの名無しさん
2008/05/12(月) 12:34:38幾つか方法はあるけど、最も汎用性が高いのは
こんな感じの拡張メソッドを作って
static class DateTimeEx {
public static DateTime Truncate(this DateTime old, long eps) {
return new DateTime((old.Ticks / eps) * eps);
}
}
使い方は、丸め幅をタイマ刻み数(100nsec単位)で指定するだけ
dateTime.Truncate(TimeSpan.TicksPerSecond); // 1秒未満を切り捨て
dateTime.Truncate(TimeSpan.TicksPerSecond*30); // 30秒未満を切り捨て
他には、Roundとか作っておいても良いと思う
0763デフォルトの名無しさん
2008/05/12(月) 13:14:38「System.Windows.Forms.Design.IEventHandlerService は既にサービス コンテナに存在します。」
とか言ってデザイナが開かなくなったんですが何故でしょうか?
0764デフォルトの名無しさん
2008/05/12(月) 13:15:340765デフォルトの名無しさん
2008/05/12(月) 13:29:20それだとDateTime.Kindを無視しちゃってないか。コンストラクタの2つ目のパラメータにold.Kindを指定しないと。
>>764
DateTime.Millisecondは読み取り専用。
0766デフォルトの名無しさん
2008/05/12(月) 13:35:03dt = dt - dt.Millisecond;
0767デフォルトの名無しさん
2008/05/12(月) 13:36:03コンパイルエラーw
0768デフォルトの名無しさん
2008/05/12(月) 13:43:56bin,obj消してリビルドするとどう?
>>765
確かに、入れた方がいいね
でも、よく見たら1.1とか書いてるよ
拡張メソッド使えないじゃんorz
普通のstaticメソッドに読み替えてくれ
あと、DateTime.Kindも2.0からみたいだな
0769デフォルトの名無しさん
2008/05/12(月) 13:57:290770デフォルトの名無しさん
2008/05/12(月) 17:53:36どうすれば2.0とかも選べるようになるのでしょうか。
前は選べたような気がしたのですが……。
0771デフォルトの名無しさん
2008/05/12(月) 18:44:540772デフォルトの名無しさん
2008/05/12(月) 18:47:37Express版?
プロジェクトのプロパティから選べない?
0773デフォルトの名無しさん
2008/05/12(月) 22:59:39alt+p alt+pでどうよ
0774デフォルトの名無しさん
2008/05/12(月) 23:05:08sqlサーバーコンパクトのノースウインドいじっているんですが
catgoryのクエリーってすごく遅いんですけど
普通にドロッアンドペーストして
fillで出した方が早いですよね?
こういうものなんですか?
皆さんはアダプターからクエリー使ってます?
まあおいらのpcがぼろいと言えばぼろいんだが・・・涙
0775デフォルトの名無しさん
2008/05/12(月) 23:13:44分かりませんでしたぁああ
すいません 涙
0776デフォルトの名無しさん
2008/05/13(火) 00:01:020777デフォルトの名無しさん
2008/05/13(火) 12:13:18フォームの中にNumericUpDownを使ったものを考えていて、
UpDownButtonを押すとそれぞれのとき設定した最小値や最大値に一回でなるようにしたいと思っています。
また、インクリメントするためのUpDownButtonを残して
その横にMaxMinButtonを付けるなど拡張したものが作れないかと思っています。
テキストエリアと、Up Down Max Minの4つのボタンが付いたコントロールのことです。
どのようにして作ればいいかなどのアドバイスをよろしくおねがいします。
0778デフォルトの名無しさん
2008/05/13(火) 12:51:13UserControlにNumericUpDownコントロールとButtonを貼り付けて
ButtonのClickイベントハンドラでNumericUpDownの値を最大/最小値に設定すればいいんじゃないかと。
テキストエリアとUp/Downを分けたいならNumericUpDownじゃなくてTextBoxとButtonにすれば。
0779デフォルトの名無しさん
2008/05/13(火) 16:52:26一応2.0は入ってるみたいだけど、Microsoft Updateしてみるといくつかパッチがあったから完全じゃないみたい。
DirectXはドライバの日付は4/14になってたけど、Managedは入っていないから、結局2008/03版を入れ直した。
0780デフォルトの名無しさん
2008/05/13(火) 17:05:02HFSLIPで.NET2.0SP1以降とかDirectXredist_Mar2008とかを好みに応じて統合すればいいじゃん。
0781デフォルトの名無しさん
2008/05/13(火) 17:37:19(できれば参考サイトをおしえてください)googleで検索しても
でないのでおねがいします。
0782デフォルトの名無しさん
2008/05/13(火) 17:38:54http://www.csharphelp.com/archives/archive251.html
0783デフォルトの名無しさん
2008/05/13(火) 17:43:260784デフォルトの名無しさん
2008/05/13(火) 17:45:510785デフォルトの名無しさん
2008/05/13(火) 17:46:28あきらめろ
0786777
2008/05/13(火) 18:09:26> UserControlにNumericUpDownコントロールとButtonを貼り付けて
> ButtonのClickイベントハンドラでNumericUpDownの値を最大/最小値に設定すればいいんじゃないかと。
やはりそれが一番なんでしょうね
もしNumericUpDownの継承先から作るとしたらどういう設計になりますかね
0787デフォルトの名無しさん
2008/05/13(火) 18:15:47キモイ設計になる。
考慮する価値は全くない。
0788デフォルトの名無しさん
2008/05/13(火) 19:13:25Windowを要素に持つコレクションを、ItemsSourceにしていて、
(1) Windowのタイトルをタブのヘッダに表示する。
(2) WindowのContentをタブに表示する。
というのを作りたいのですが、ItemTemplate、ContentTemplateをどのように記述すればよいのでしょうか。
0789デフォルトの名無しさん
2008/05/13(火) 19:59:09今ListBoxをオーナードローで使っていて,そのListBoxの内部にユーザコントロールを配置している.
で,そのListBoxのDrawItemイベントで内部のユーザーコントロールを適当な位置に配置しているんだが,
このときListBoxのSelectedChangeイベントやMouseMoveが内部のユーザーコントロールに握りつぶされてしまい,
ListBoxの項目の選択やマウスホバーによる項目の表示切替(浮き上がってみせるとか)ができない.
どなたかListBoxをオーナードローにして内部にコントロールを配置したとき,ListBoxまでイベントを上げる方法を教えてください
0790デフォルトの名無しさん
2008/05/13(火) 20:47:53分かりましたー
最後のやつチェック入れるのがポイントでしたー
みなさんthk
0791デフォルトの名無しさん
2008/05/13(火) 22:36:35そろそろ難しいプログラムに挑戦したいってことで、
データベースを使ったプログラムの計画は練ったんですが
データベースとの接続クラスってどうやって保持するのが一般的ですか?
DBConnectionってやつです。
C#とSQLServerを使って作る予定で
とりあえずはじめはWindowsFormとローカルのデータベース、
次にサーバーにデータベースを移動させて、
最終的にはASP(?)とかも使えるといいなーって感じです。
とりあえず今は起動用のvoid Mainが入ったexeをひとつ、
そこからログインフォームを呼び出して、
ログインが完了したらメインメニューとメイン画面を呼び出すつもりです。
データベースのコネクションって、
どこでインスタンス化して、どこに保存しておくのがベストですか?
初心者すぎる質問かも知れませんが、宜しくお願い致します。
0792デフォルトの名無しさん
2008/05/14(水) 00:10:590793デフォルトの名無しさん
2008/05/14(水) 00:19:48デスクトップ上のアイコンの場所を移動するのに、
C++だと、
//デスクトップのハンドルを取得
HWND hWnd;
hWnd = FindWindow("ProgMan",NULL);
hWnd = GetWindow(hWnd, GW_CHILD);
hWnd = GetWindow(hWnd, GW_CHILD);
if(!hWnd)
return false;
SendMessage(hWnd, LVM_SETITEMPOSITION, (WPARAM)0, (LPARAM) MAKELPARAM
((int)10, (int)10)); //set
でいけるようなんですが、
これをC#で書くにはどうすればいいのでしょうか??
0794デフォルトの名無しさん
2008/05/14(水) 00:32:300795デフォルトの名無しさん
2008/05/14(水) 00:45:01http://www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
0796デフォルトの名無しさん
2008/05/14(水) 05:54:39> (2) WindowのContentをタブに表示する。
これ無理
0797デフォルトの名無しさん
2008/05/14(水) 09:18:33WPFに行こうってことだよきっと
0798デフォルトの名無しさん
2008/05/14(水) 15:10:01やっぱりMSの陰謀だったか・・・
まぁとりあえず,ListBoxのイベントは起こらないことを前提に,ユーザコントロール側でゴニョゴニョすることにした
0799デフォルトの名無しさん
2008/05/14(水) 15:55:59って具体的にどうやるんだ?てか、どうやってる?
>>789から読み取れる情報から考えても、
「まさか、コントロールを重ねて配置とか馬鹿げたことをしてないよな?」
という疑念しか生まれなかったんだが
0800デフォルトの名無しさん
2008/05/14(水) 15:57:17ユーザコントロールをロードしてParentをListBoxにした後,DrawItemイベントで適切な位置に配置してる.
0801デフォルトの名無しさん
2008/05/14(水) 16:45:10ありがとうございます。
プロジェクトのプロパティからは選べるのですが、
プロジェクトを作るときに前選べたような気がしたのでできないかな〜と。
Express版です。
>>773
ありがとうございます。
どの画面ででしょうか?
0802デフォルトの名無しさん
2008/05/14(水) 17:36:31下のように書いてもできません。どうすればテキストボックス内に変数をいれられますか?
namespace _001
{
public partial class Form1 : Form
{
int test = 1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = test;
}
}
}
0803デフォルトの名無しさん
2008/05/14(水) 17:40:33(イベントハンドラにブレークポイントを仕掛けて確認)
いろいろ試してみたところ、ScrollViewerのFocusableをfalseにすると呼ばれるようになったのですが
どうしてそうなるのか理由がわかりません。
何故なんでしょうか?
<ScrollViewer Name="scrollViewer"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
MouseLeftButtonDown="scrollViewer_MouseLeftButtonDown"
MouseLeftButtonUp="scrollViewer_MouseLeftButtonUp"
MouseMove="scrollViewer_MouseMove">
<Image Name="image" Stretch="None" />
</ScrollViewer>
0804デフォルトの名無しさん
2008/05/14(水) 17:42:14できないとは、どうなるためにできないのか。
エラーならその内容も書くように。
textBox1.Text = test.toString();
とかは?
0805デフォルトの名無しさん
2008/05/14(水) 17:45:15ちなみに>>804さんの言ったようにやってもできませんでした。
ちなみにmicrosoftvisualC#をつかっています。
0806デフォルトの名無しさん
2008/05/14(水) 17:57:13>エラー内容は「型 'int' を型 'string' に暗黙的に変換できません。」です。
>>804のようにすればこのエラーは消えるよ。
それでもできないってことはまた別のエラーが出たって事なんだからそれも晒して。
toString()がToString()の間違いとかそんな事のような気はするけど。
0807デフォルトの名無しさん
2008/05/14(水) 17:58:35namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
int test = 1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = test.ToString();
}
}
}
0808デフォルトの名無しさん
2008/05/14(水) 18:00:08エラーメッセージはちゃんと読みましょう。
0809デフォルトの名無しさん
2008/05/14(水) 18:15:35そうですね
0810デフォルトの名無しさん
2008/05/14(水) 18:28:11ScrollView の中の要素がHandledにしたんだろう
0811デフォルトの名無しさん
2008/05/14(水) 19:28:470812デフォルトの名無しさん
2008/05/14(水) 19:33:000813デフォルトの名無しさん
2008/05/14(水) 19:52:240814デフォルトの名無しさん
2008/05/14(水) 20:20:25マジですか……地道にC#で書きます、ありがとうございました。
0815デフォルトの名無しさん
2008/05/14(水) 20:57:08無理ってのは、ほかの要素ツリーの下に入ってる要素を
そこから切り離さずにほかの要素ツリーの下に入れるのが無理ってことだぞ
Window.ContentはWindowの下にすでに入ってるからTabItemの要素ツリーには入れられない
0816デフォルトの名無しさん
2008/05/14(水) 21:04:45C/C++やJavaはいろいろ見るのに#は全然見かけない…
0817デフォルトの名無しさん
2008/05/14(水) 21:12:550818デフォルトの名無しさん
2008/05/14(水) 21:16:50c#からプログラミングを始めるとしたらどんな本ががいいの?
俺が知ってるのは
猫でも分かる・・・
独習C#
C#の絵本 くらいなんだが
0819デフォルトの名無しさん
2008/05/14(水) 21:24:03最近はどうか知らないけど、俺が本当の初心者の時はVisual C#.NET入門 基礎編って本がよかった。
かなり読みやすいよ。
0820デフォルトの名無しさん
2008/05/14(水) 21:47:13プログラミング自体が初めてだったら、猫でもかな
それ以外読んだことないけど
って言っても好き嫌いあるんで、立ち読みか図書館でも見てみたら
0821デフォルトの名無しさん
2008/05/14(水) 21:49:520822デフォルトの名無しさん
2008/05/14(水) 21:54:530823デフォルトの名無しさん
2008/05/14(水) 21:55:50何かと良いんじゃね?
0824デフォルトの名無しさん
2008/05/14(水) 22:03:290825デフォルトの名無しさん
2008/05/14(水) 22:05:47自分もはじめのうちはそれで勉強してたけどね
最近は本も読むようになったよ
0826デフォルトの名無しさん
2008/05/14(水) 22:08:30もともとプログラミングに向いてる人はそれでいける
が、不向きなのにやらなきゃいけない人もいるんだよ
0827デフォルトの名無しさん
2008/05/14(水) 22:08:49VBとは違ってMSDNにも初心者向けの言語解説記事が全く無い
0828デフォルトの名無しさん
2008/05/14(水) 22:10:430829デフォルトの名無しさん
2008/05/14(水) 22:12:240830デフォルトの名無しさん
2008/05/14(水) 22:12:46ルーティングイベントの仕組みを調べてみました。
ScrollViewerのフォーカス関連の処理でHandledにされたんだろうなぁ
ということで納得しました。
0831デフォルトの名無しさん
2008/05/14(水) 22:43:39いきなりオブジェクト指向の知識が必要だったり、巨大なライブラリから目的の関数を探し出したり。
俺は少しずつハードルが上がってったから苦労がわからないぜ。
0832デフォルトの名無しさん
2008/05/14(水) 22:51:58検索するだけでいきなり必要な知識が手に入るし、
OPコード表は暗記しなくて済むし、ハンドアセンブルしなくて済むし、
巨大なライブラリがあるから呼ぶだけで高度な処理ができるし。
掛け算ルーチンから作る苦労とかって分かってもらえないだろうな。
0833デフォルトの名無しさん
2008/05/14(水) 22:54:06\ いろいろやってみましたが動きません.どうすればいいですか? /
(^o^) xx調べれ
0834デフォルトの名無しさん
2008/05/14(水) 22:59:09C#関連はプログラミングC#って本を一冊だけ持ってるけど、殆ど開いてない。
ググって解決する方が遥かに多いw
0835デフォルトの名無しさん
2008/05/14(水) 22:59:56回答する人たちね。
0836デフォルトの名無しさん
2008/05/14(水) 22:59:58いきなり高度のことしようとするから。かといって検索の便利さ知ってるから
助言されても絶対頭からドキュメントを読もうとはしない。
0837デフォルトの名無しさん
2008/05/14(水) 23:02:07ググレカスだと糞の役にも立たんけど、xxでググレカスだと
それだけで解決しちゃう事も多いな。
0838デフォルトの名無しさん
2008/05/14(水) 23:04:030839デフォルトの名無しさん
2008/05/14(水) 23:04:07俺の場合プログラミングは本職じゃなくて趣味と研究の道具
学生の頃バイトしてた事はあるけど
0840デフォルトの名無しさん
2008/05/14(水) 23:18:59本一冊分くらいある価値ある一言だった。
あと、俺の中での最も役に立ったキング・オブ・ツンデレレスは
DxScanのソース嫁カスwwwwwwww
DirectShowが一気に理解できた。今でも神レスだと思ってるw
0841デフォルトの名無しさん
2008/05/15(木) 00:27:590842デフォルトの名無しさん
2008/05/15(木) 00:36:090843デフォルトの名無しさん
2008/05/15(木) 06:23:09こういうのがいるから
スレが荒れてゆくのか・・・
0844デフォルトの名無しさん
2008/05/15(木) 12:10:580845デフォルトの名無しさん
2008/05/15(木) 12:18:18不思議な感覚の持ち主だね。
0846デフォルトの名無しさん
2008/05/15(木) 13:27:00Source指定してPlay()してもエラーが出るわけでもなく、何も再生されない状態。
メディアプレイヤー10を入れたら直ったけど、どこかに動作環境書いてあるのかなあ。
0847デフォルトの名無しさん
2008/05/15(木) 13:32:40> MediaElement および MediaPlayer は、いずれもオーディオ、ビデオ、
> オーディオ コンテンツ付きビデオを提供します。
> どちらの種類も対話的に、またはクロックで制御でき、メディア再生用の
> Microsoft Windows Media Player 10 OCX への依存は最小限で済みます。
0848デフォルトの名無しさん
2008/05/15(木) 23:55:31ボタン1を押したときは、テキストが更新されますが
ボタン2の場合はテキストに何も表示されません
クラスを自作した場合に、フォームのコントロールは変更できないのでしょうか?
private void button1_Click(object sender, EventArgs e)
{
bb("button1");
}
public class test : Form1
{
public void aa( string str)
{
bb( str );
}
}
public void bb( string str )
{
textBox1.Text = str;
}
private void button2_Click(object sender, EventArgs e)
{
test a = new test();
a.aa("button2");
}
0849デフォルトの名無しさん
2008/05/16(金) 00:09:31下の余白に書かれたプログラムは一体なんのためにつけたの?
もちろん最初の質問とは無関係なのは分かってるが
0850デフォルトの名無しさん
2008/05/16(金) 00:58:22internalってアセンブリ内で使えるとあるんだけど、
アセンブリって具体的にどの範囲までなのかよくわかんないです。
DLL、EXEを作る単位ということは・・・・
プロジェクト内のソースって理解であってますか?
ちがってたら、どこ見れば、このクラスはアセンブリ内か外かわかるのだ?
0851デフォルトの名無しさん
2008/05/16(金) 01:19:47アセンブリよくわからん
でもそこまで話広げる必要はないんじゃないかと思われ
0852デフォルトの名無しさん
2008/05/16(金) 02:47:09でいいと思うけど
そうじゃないふうにも出来たはずだけど
0854デフォルトの名無しさん
2008/05/16(金) 14:21:32ウィンドウのResourcesにdouble型の配列を設定したいのですが、XAMLではどう書くのでしょうか?
VC#2008EE WPFアプリ
0855デフォルトの名無しさん
2008/05/16(金) 15:39:20xmlns:si="clr-namespace:System;assembly=mscorlib"
Type="{x:Type si:Double}">
<si:Double>1.1</si:Double>
<si:Double>2.2</si:Double>
<si:Double>3.3</si:Double>
</x:Array>
0856デフォルトの名無しさん
2008/05/16(金) 16:03:090857デフォルトの名無しさん
2008/05/16(金) 17:15:34それでできました。マークアップ拡張機能ってやつなんですね。
ありがとうございました。
0858802
2008/05/16(金) 17:16:48また質問ですがvisualC#で乱数をつかえません。下のようにすると
静的でないフィールド、メソッド、またはプロパティ 'System.Random.Next(int, int)' で、オブジェクト参照が必要です
とでます。理由をおしえてください
namespace _001
{
public partial class Form1 : Form
{
Random Random = new System.Random();
int coin = 100;
int check = 3;
int[] count = new int[] { 1,1,1 };
int[] koma = new int[] { Random.Next(1, 4), Random.Next(1, 4),Random.Next(1, 4),};
public Form1()
{
InitializeComponent();
}
private void start_Click(object sender, EventArgs e)
{
check = check - 3;
if (check == 0){
coin -= 3;
for (int i = 0; i <= 2; ++i)
{
count[i] -= 1;
}textcoin.Text = coin.ToString();
}}}}
0859デフォルトの名無しさん
2008/05/16(金) 17:18:40Random random = new Random();
にしてみ
0860デフォルトの名無しさん
2008/05/16(金) 18:33:30どこがおかしいのか調べるコツはコードを小さくにしていくことだよ。
0861デフォルトの名無しさん
2008/05/16(金) 18:37:34Bitmap[] _bmp0;
で宣言して
_bmp0[0] = new Bitmap(320, 240, PixelFormat.Format32bppArgb);
後からこれで定義すると
コンパイルはできるのですが 実行すると白地に赤×マークになり うまくいきません
配列のビットマップはどう書けばいいですか
0862デフォルトの名無しさん
2008/05/16(金) 19:03:18と先に入れ物を用意しとかないと
というかList<T>の方が使いやすいような
0863デフォルトの名無しさん
2008/05/16(金) 19:07:030864デフォルトの名無しさん
2008/05/16(金) 19:27:550865デフォルトの名無しさん
2008/05/16(金) 20:11:13System.Uri
0866デフォルトの名無しさん
2008/05/16(金) 20:39:40Very thanks!
期待通りでした。
0867デフォルトの名無しさん
2008/05/16(金) 21:26:30<ContextMenu>
<MenuItem Header="あああ" Command="c:Window1.MyCmd" />
</ContextMenu>
</Window.ContextMenu>
<Window.CommandBindings>
<CommandBinding Command="c:Window1.MyCmd" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Command="c:Window1.MyCmd" Gesture="Ctrl+Q" />
</Window.InputBindings>
public partial class Window1 : Window {
public static readonly RoutedCommand MyCmd = new RoutedCommand();
private void CommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) { MessageBox.Show("コマンド実行"); }
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; }
}
Ctrl+Qでコマンドは実行できるのですが、コンテキストメニューの項目が灰色で選択できない状態です。
e.CanExecuteを常にtrueにしているのに、何故コンテキストメニューの方は無効になってしまうのでしょうか?
0868デフォルトの名無しさん
2008/05/16(金) 22:07:34ttp://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2444182&SiteID=1
0869デフォルトの名無しさん
2008/05/16(金) 22:27:34バグっすか。こういうのって後でちゃんと修正されるのかな…
リンク先の通りやったら有効になりました。thx
0870858
2008/05/16(金) 22:28:19書き換えてみましたけど、なぜかできませんでした。
やはりvisualC#では乱数を使うことができないのでしょうか?
(そんなことないとは思うのですが・・・・・。)
0871デフォルトの名無しさん
2008/05/16(金) 22:34:10Random.Next(1, 4) の方も random.Next(1, 4) にした?
そもそもオブジェクトって考え方わかる?
C言語のrand関数みたいなのだと、複数の独立した乱数列作れないのよ。
C#だと、
Random rnd1 = new Random();
Random rnd2 = new Random();
みたいに複数の乱数列作れる。
rnd1.Next() みたいに使う。
0872デフォルトの名無しさん
2008/05/16(金) 22:35:35Random Randomとか宣言してるけど、これそもそもコンパイル通る?
Random randomとかしないと、コンパイラには型とインスタンス変数の
見分けつかないんじゃないかな?
0873デフォルトの名無しさん
2008/05/16(金) 22:44:59それが通るんだなあ
クラスと同じ名前のプロパティとかあるでしょ
0874デフォルトの名無しさん
2008/05/16(金) 22:56:47うそで〜とか思って試してみたら通ったΣ(´Д`; )
警告すら出ないとか、びっくりしたわw
今の今まで気づいてなかった俺もちょっとどうかと思うがorz
0875デフォルトの名無しさん
2008/05/16(金) 23:07:20Random random = new System.Random();
int[] koma;
private void Form1_Load(object sender, EventArgs e)
{
koma = new int[] { random.Next(1, 4), random.Next(1, 4), random.Next(1, 4), };
}
0876デフォルトの名無しさん
2008/05/17(土) 10:17:02「なぜかできませんでした」とかふざけてるの?
どうできなかったかくらい書けや。
0877デフォルトの名無しさん
2008/05/17(土) 15:05:290878858
2008/05/17(土) 16:04:49言うとおりやってみましたけど、エラー内容も同じで通りませんでした。
>>875
それを入力してみましたがコンパイルはとおりましたが、テキストボックスや
ボタンなどが表示されなくなりました。
0879デフォルトの名無しさん
2008/05/17(土) 17:22:560880デフォルトの名無しさん
2008/05/17(土) 17:25:36<ContextMenu>
<MenuItem Header="ほげ" Command="c:Window1.MyCmd"
CommandTarget="{Binding Path=PlacementTarget, RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}}" />
</ContextMenu>
</Window.ContextMenu>
public static readonly RoutedCommand MyCmd = new RoutedCommand("MyCmd", typeof(Window1),
new InputGestureCollection(new InputGesture[] { new KeyGesture(Key.A, ModifierKeys.Control) }));
コンテキストメニューに"ほげ Ctrl+A"と表示され、Ctrl+Aでコマンドも実行されることを確認しました。
試しに
MyCmd.InputGestures.Clear();
MyCmd.InputGestures.Add(new KeyGesture(Key.B, ModifierKeys.Control));
と動的にショートカットを変更する処理を入れてみたところ、動作自体はちゃんと変更されたのですが
コンテキストメニューの表示が"ほげ Ctrl+A"のままでした。
表示も更新させるにはどうやればいいのでしょうか?
0881デフォルトの名無しさん
2008/05/17(土) 18:37:25871の通りにやってみたらなぜかできました。
0882デフォルトの名無しさん
2008/05/17(土) 18:39:140883デフォルトの名無しさん
2008/05/17(土) 18:47:10コントロールが表示されなくなったってのは、一体どこまで書き換えてるんだという感じだな。
プログラミングの基本的なことも知らなさそうだから、
先ずは一通り入門書やってみた方がいいんじゃないか?
でないといつまで経っても、乱数を使うなんて超基本的なことも出来ないぞ。
0884デフォルトの名無しさん
2008/05/17(土) 20:32:26テキストエディッタによくある「指定文字列で改行」を実装したいのですが
どのような方法で実装していけばいいでしょうか
0885884
2008/05/17(土) 20:35:04「指定文字列で改行」でなく「指定文字数で改行」です。
よろしくお願いします。
0886デフォルトの名無しさん
2008/05/17(土) 23:40:55回数指定クラスを使った正規表現を思い付いた
0887デフォルトの名無しさん
2008/05/17(土) 23:54:35EM_SETWORDBREAKPROCEX でなんとかなるかな?
0888デフォルトの名無しさん
2008/05/18(日) 00:33:14123,
456
); <- ここのインデントを自動的に下げる機能はVC# Expressにはない?
0889858
2008/05/18(日) 00:52:59ありがとうございます、みたところ変なところまで書き換えてしまっていました。
もう一度冷静になってやってみたところ成功しました。
もうひとつ質問なのですが、さっき問題になっていたkoma
をテキストボックスに表示しようとしたのですが、実行してボタンを押すと
ハンドラされていない例外が発生しましたといわれました。おそらく
どこかを大きく間違っているとおもうのですがわからないのでおしえてください
namespace _001
{
public partial class Form1 : Form
{
Random random = new System.Random();
int coin = 100;
int check = 3;
int[] count = new int[] { 1, 1, 1 };
int[] koma;
public void Form1_Load(object sender, EventArgs e)
{
koma = new int[] { random.Next(1, 4), random.Next(1, 4), random.Next(1, 4), };
}
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = koma[0].ToString();
}}}
0890デフォルトの名無しさん
2008/05/18(日) 00:55:53もっかいプロジェクトを作り直してみたら?
0891858
2008/05/18(日) 00:59:090892デフォルトの名無しさん
2008/05/18(日) 01:04:35public void Form1_Load(object sender, EventArgs e)
this.Load += new System.EventHandler(this.mainForm_Load);
0893858
2008/05/18(日) 01:08:40それは書き換えって言うより追加ですよね?
0894デフォルトの名無しさん
2008/05/18(日) 01:10:24間違えて送信してしまった。
public void Form1_Load(object sender, EventArgs e)
の部分をそのままコピペしても実行されないよ。
とりあえずForm1_Loadを削除して、デザイナのイベントからLoadの所をダブルクリックする。
そうするとForm1_Loadがコードに追加されるからそこに↓を記述する。
koma = new int[] { random.Next(1, 4), random.Next(1, 4), random.Next(1, 4), };
0895デフォルトの名無しさん
2008/05/18(日) 01:14:27button2_Click の方だな。
0896858
2008/05/18(日) 01:16:47できました、見たところ記述する場所(?)がわるかったみたいですね。
ありがとうございました。まだまだプログラムはネットの入門サイトみて
やってるばかりなので一回入門書買って真剣に勉強したいとおもいます。
というわけでvisualC#の入門書で一番やさしいのはなんですか?
0897884
2008/05/18(日) 01:42:53回数指定クラスについてよくわからないのでググってみます。
>>887
RichTextBox以外の選択肢だとユーザー作成のコンポーネントということでしょうか?
今までに利用したことがないので調べてみたいと思います。
またEM_SETWORDBREAKPROCEXについて軽くググってみましたが
ちょっとややこしいみたいですね…。
こちらも後ほど詳しく調べてみたいと思います。
みなさまありがとうございました。
0898デフォルトの名無しさん
2008/05/18(日) 02:28:30RoutedCommand及びInputGestureCollectionのメンバ見れば分かるけど、ジェスチャの変更を通知する機構は存在していない。
MenuItem.Commandプロパティ自体を変更すればMenuItem.InputGestureTextも当然変わるのでこれをどうにかする。
例えばmyCmdって名前のリソースを考えて、
XAMLで
・MenuItem.CommandはmyCmdをDynamicResourceとして参照する
コードで
・Window.InitializeComponent直後にResources.Add("myCmd", MyCmd)する
・ジェスチャ更新時にはResources["myCmd"]に一旦nullを入れた後MyCmdを入れなおす
0899デフォルトの名無しさん
2008/05/18(日) 03:12:26入門書を買うのもいいけどもう少し入門サイトで
勉強してみるのもいいんじゃないかと思った。
最初の内は意味がわからないプログラムを右から左に
書き写していくうちにみえてくるものがあると思う。
もちろん手元に本をおいて勉強する方法も全然問題ないけど。
0900デフォルトの名無しさん
2008/05/18(日) 06:48:17猫でもわかるシリーズで一緒にやろうぜ
オモローそうだし
ググってみ?HPで遊んだあと、気に入ったら本書自腹で買う予感
0901デフォルトの名無しさん
2008/05/18(日) 06:51:330902デフォルトの名無しさん
2008/05/18(日) 08:54:47何も考えずに
static int a;
のように打ったら怒られました、、、
0903デフォルトの名無しさん
2008/05/18(日) 09:01:04メンバ関数内でstaticは使えない。メンバー変数として使用すること。
VBだと関数内で使えるのだが、メンバー変数で使うのと意味が違うので要注意。
0904デフォルトの名無しさん
2008/05/18(日) 09:04:19ファイルスコープの static は static private なメンバー変数に。
0905デフォルトの名無しさん
2008/05/18(日) 09:09:23ありがとうございました。分かりました。
0906858
2008/05/18(日) 13:39:15ありがとうございます、一応今のところ入門サイトを見て勉強していますが、
多少わかりにくい部分があるので本を買おうかとおもっています。
>>900
猫でも分かるシリーズみつけました、ここでも勉強してみようとおもいます。
皆様ありがとうございました。
0907デフォルトの名無しさん
2008/05/18(日) 15:13:11それでできました。ありがとう。
0908デフォルトの名無しさん
2008/05/18(日) 16:31:560909デフォルトの名無しさん
2008/05/18(日) 16:35:060910デフォルトの名無しさん
2008/05/18(日) 16:53:030911デフォルトの名無しさん
2008/05/18(日) 23:13:49以下のようにやったけどstring xはコピーであり、testFuncが終わるとなくなってしまいます。
private bool testFunc(string x)
{
x = x + "aaa";
return true;
}
private void button1_Click(object sender, System.EventArgs e)
{
string sss = "test";
testFunc(sss);
MessageBox.Show(sss, "testaaaになった");
}
0912デフォルトの名無しさん
2008/05/18(日) 23:20:07private bool testFunc(ref string x) で。
0913デフォルトの名無しさん
2008/05/18(日) 23:20:13今のままじゃstringはメソッドの中でしか使えないので
メソッドの外で宣言してグローバル変数にしないと
0914デフォルトの名無しさん
2008/05/18(日) 23:20:54変更する文字列にはStringBuilderをつかう
0915デフォルトの名無しさん
2008/05/18(日) 23:21:33呼び出し側もrefが必要か。
testFunc(ref sss);
0916デフォルトの名無しさん
2008/05/18(日) 23:24:35>>912
早速ためさせていただきました。でも
C:\Documents and Settings\xxxxx\My Documents\Visual Studio Projects\Test\Form1.cs(124): 'Test.Form1.testFunc(ref string)'
に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
ってなってしまいまする。
0917デフォルトの名無しさん
2008/05/18(日) 23:28:20>>915さんのご指摘のとおりにやったら出来ました。
そのほかの方々からのご意見も非常に気になるところですが。
(グローバル変数じゃなければいけない、StringBuilderを使う、などなど)
CやC++のポインタみたいなものがあればよいのですが。。
皆さんありがとうございました。
0918デフォルトの名無しさん
2008/05/18(日) 23:34:12{
return x + "aaa";
}
private void button1_Click(object sender, System.EventArgs e)
{
string sss = "test";
sss = testFunc(sss);
MessageBox.Show(sss, "testaaaになった");
}
これじゃ駄目か?
0919デフォルトの名無しさん
2008/05/18(日) 23:34:34ポインタ演算はできないけども
0920デフォルトの名無しさん
2008/05/18(日) 23:36:20>CやC++のポインタみたいなものがあればよいのですが。。
ref がまさにそれ。
0921デフォルトの名無しさん
2008/05/18(日) 23:38:42それでもいいかもしれんけど、TryParseみたいに、成功かどうかをリターン値で返して、
引数で結果を返すとかやりたいってこともあるしな。
0922デフォルトの名無しさん
2008/05/19(月) 00:10:48refって参照渡しではなくて、参照が変更可能な意味なんだよな。
0923デフォルトの名無しさん
2008/05/19(月) 00:15:36参照をrefで渡すと参照の参照になるんだろ
0924デフォルトの名無しさん
2008/05/19(月) 00:15:48まあ、そう。
参照型をrefすると2重ポインタ状態になる。
SomeType** p に対して p = new SomeType(); するような感覚。
値型に対するrefの場合普通にポインタと同じ感覚になる。
0925デフォルトの名無しさん
2008/05/19(月) 00:17:450926デフォルトの名無しさん
2008/05/19(月) 01:56:540927デフォルトの名無しさん
2008/05/19(月) 02:02:450928デフォルトの名無しさん
2008/05/19(月) 02:19:310929デフォルトの名無しさん
2008/05/19(月) 03:36:35DBはSQL Server 2005、ストアド自体はTransact-SQLで作成してます。
自分なりにググって見たんですが、ストアドプロシージャの作成方法ばかりで
C#からの呼び出しコード例が見当たりません。
0930デフォルトの名無しさん
2008/05/19(月) 05:07:390931デフォルトの名無しさん
2008/05/19(月) 08:46:36ポインタは、間違った操作も平気でできるのと、
用途がいっぱいあってどの用途で使ってるのかわからないのが問題。
C# でポインタがないのは誤操作をなくすとともに、
プログラマの意図がソースに残るように用途ごとの構文作った。
C# で ref と out が分かれてるのも、用途が分かるように。
0932デフォルトの名無しさん
2008/05/19(月) 09:47:10いちご
にんじん
さんしょ
と有ったとして、プログラムの起動時に読み込みます。
そのデータをフォーム上でいじって
いちご
にんじん(削除)
さんしょう(更新)
しいたけ(追加)
という編集をしたあと、元のデータをもう一度読み込みマージしたいのですが、
データベースを使わないでやるなら、どういう流れで処理するのがよいのでしょうか?
上には更新も書きましたが、基本的には削除と追加だけでやろうと思います。
0933デフォルトの名無しさん
2008/05/19(月) 09:50:020934932
2008/05/19(月) 10:57:48言葉が足りませんでした。
いちご, にんじん, さんしょ
と書いてあるテキストファイルを上の処理をすることで
いちご, さんしょう, しいたけ
に書き換えたいわけです。
普通に開いて全部書き込んでしまえばいいわけですが、
もし他の人も読み込んでいたら、他の人が編集する際に古いデータが上書きされてしまいます。
データベースを使うほどの内容でもないので、できればテキストファイルでやりたいなと思いました。
0935デフォルトの名無しさん
2008/05/19(月) 11:24:00普通に開いて全部書き込めばいいと思うよ
0936デフォルトの名無しさん
2008/05/19(月) 11:24:24ファイル名別にして保存するのが一番楽だと思うけど。
0937デフォルトの名無しさん
2008/05/19(月) 11:34:570938932
2008/05/19(月) 11:35:12まあ、冷静に考えてみればそれほど神経を使うくらいならデータベースを使う(mdbなんかも含めて)
方が早いかも知れませんね。
テキストファイルを開いて全部書き込むことにして、問題があったらDBを使う方向で考えることにします。
ありがとうございました。
0939デフォルトの名無しさん
2008/05/19(月) 11:37:25SQLiteってmdbよりもいいのかな?
C#から使うファイルベースのDBだったらmdbの方が手っ取り早そうだけど、
なんかmdbと比べて利点とかあるのかな?
0940デフォルトの名無しさん
2008/05/19(月) 11:41:25自分が更新したら編集はやめさせるのか?
0941932
2008/05/19(月) 13:07:34Aがテキストファイルを開いてプログラムに読み込む。
Bがテキストファイルを開いてプログラムに読み込む。
Aがプログラム上で編集して書き込む。
Bがプログラム上で編集して書き込む。
Bが書き込む時に、Aが編集した内容を反映しつつ追加と削除を行いたい。
ということを考えてました。
でも、ここで書き込んでいるうちに、テキストファイルを編集するときに読み書きすれば
いいのかなと思ったり、mdbなりSQLiteなりを使ってもいいかなと考え直しました。
0942デフォルトの名無しさん
2008/05/19(月) 13:25:370943デフォルトの名無しさん
2008/05/19(月) 13:27:03この辺のアルゴリズムはDBを使っても一緒。
自身が読み込んだときのデータを編集後も記憶しておく。
書き出す直前にもう一度読み出しを行い、自身と読み込んだときのデータと同じ状態であるか確認。
同じなら変更を書き出し。
違うなら書き出しを取りやめるか何らかのマージ操作を行う。
良くあるのは他から変更されたデータと自身が書き出そうとするデータを両方表示して、
どちらを優先させるか選ばせるか、さらに編集を加えるかの判断をUIでオペレータに任せる。
0944デフォルトの名無しさん
2008/05/19(月) 13:45:21Aが書き込んだときBはどうするの? Bにはどんな情報がいくの?
一番簡単な方法はAがファイルを開いてる時はBが開けないようにすることで
複数人で編集したいならAが編集を書き出したらBが即時に通知を受けて
Aの変更内容をBにつたえる
このときアプリはBの追加、削除した項目を全部覚えておいて
Aの編集した内容に対してその追加、削除を適用するか、
Bの編集した内容を破棄してAの書き出した内容に置き換えるか
といった選択肢があると思うけどどっちにしろ分かりにくい
とりあえずDBを使えばどうにかなるというような問題には見えない
0945デフォルトの名無しさん
2008/05/19(月) 15:21:58なんでもありません(T_T)
肝心なところでつかえねー
0946デフォルトの名無しさん
2008/05/19(月) 15:25:44いちぢく、にんじん、さんしょう、しいたけ
じゃなかったっけ?
いちぢく、にんじん、さんしょう、しいたけ、ごぼう…
次なんだっけ・・・・?ろ、ろ、ろ、ろっぽんぞー????
0947デフォルトの名無しさん
2008/05/19(月) 19:36:190948デフォルトの名無しさん
2008/05/19(月) 19:45:330949デフォルトの名無しさん
2008/05/19(月) 21:43:50とすると項目名が自動的に"開く"になりますが、この名前はどこから取ってきてるのでしょうか?
Nameプロパティとも違うようですし…
自分で作ったRoutedCommandでも同じことができるのでしょうか?
0950929
2008/05/19(月) 21:47:18ストアドプロシージャについて質問したものです。
リンク先の内容で理解できました。
良いサンプルを紹介してくださってありがとうございます。
0951デフォルトの名無しさん
2008/05/19(月) 23:55:42mdbはスレッドセーフじゃ無かったと思うぞ。
複数アクセスのあり得るケースで使うとひどい目に遭う。
0952デフォルトの名無しさん
2008/05/20(火) 00:05:53ブレイクポイント設定して中身見てみた感じ、
RoutedUICommand の Text プロパティではないかと。
VS 2008 SP1 β 入れると "Open" になっとる・・・
これのロケール設定ってどうなってるんだろう。
0953949
2008/05/20(火) 00:24:30あ、良く見たらRoutedUICommandなんですね。
素でRoutedCommandだと思ってた…
RoutedUICommandで調べれば一目瞭然でしたね。
お騒がせしました。
0954デフォルトの名無しさん
2008/05/20(火) 15:56:39アプリケーションの設定(Properties.Settings.Defaultのやつ)の保存場所を
任意の場所(exeのフォルダ等)に変更することはできるのでしょうか?
0955デフォルトの名無しさん
2008/05/20(火) 17:49:31その質問するとマイドキュメント論争に発展するお^^
0956デフォルトの名無しさん
2008/05/20(火) 21:18:21ツールバーの見た目を、Yahoo!ツールバーやGoogleツールバーのように
FlatなボタンでXPスタイル?のような感じにしたいのですが、うまく
いきません。どのようにすればいいでしょうか?教えてください。
0957デフォルトの名無しさん
2008/05/21(水) 00:41:05<MenuItem Header="ほげほげ" Command="〜">
<MenuItem.CommandParameter>
<sys:UInt32>777</sys:UInt32>
</MenuItem.CommandParameter>
</MenuItem>
現状これでCommandParameterにuintの値を設定できてるのですが
CommandParameter="〜"という風に、よりシンプルに書くことはできませんか?
0958956
2008/05/21(水) 02:51:12今はbandobjectの上にtoolBarをおいているのですが、
toolBarがはみだしてしまうので
bandobjectの上に直接?ボタンを並べたいのです。
toolBarのボタンはフラットにすることができましたが、
多分toolBarを置くのは間違っていると思いますので・・・
ご教授お願い致します。
0959デフォルトの名無しさん
2008/05/21(水) 09:43:52MarkupExtension書く?
0960デフォルトの名無しさん
2008/05/21(水) 17:28:452[tab]10.0 15.0 9.5
3[tab]8.7 6.5 9.8
[tab]はtabを押して作った空白です
上のようにかかれたtxtをよみこんで
float[,]などに格納するにはどのようなプログラムを打ち込めばよろしいのでしょうか?
0961デフォルトの名無しさん
2008/05/21(水) 17:44:18もうちょっと分からんところを絞り込め
とりあえず必要と思われる手順を並べてそれぞれ調べてみろ
0962デフォルトの名無しさん
2008/05/21(水) 21:31:07調べてみろ
お前は北方謙三かw
0963デフォルトの名無しさん
2008/05/21(水) 21:47:530964デフォルトの名無しさん
2008/05/21(水) 21:57:41次はどうすればいい?
0965デフォルトの名無しさん
2008/05/21(水) 21:58:100966デフォルトの名無しさん
2008/05/21(水) 21:59:331. ファイルから一行、文字列を読み込む ( StreamReader.ReadLine )
2. 文字列をタブ文字で分割する ( String.Split )
3. 分割した文字列配列を目的の変数に格納
4. 手順 1 〜 3 を、行が尽きるまで繰り返す
0967デフォルトの名無しさん
2008/05/21(水) 23:39:42tabや空白の分割はどうするのでしょうか?
うまくできません><
0968デフォルトの名無しさん
2008/05/21(水) 23:48:42or
string[] strs = str.split("\t ".ToCharArray());
0969956
2008/05/22(木) 00:10:34コントロールはtoolbarでよかったかも
AutoSizeとDividerをFalse、LockedをTrueにしたらそれなになりました。
ありがとうございました。
0970デフォルトの名無しさん
2008/05/22(木) 02:11:12ウィンドウはC#で作成したもので、タスクバーには表示させていません。
ウィンドウを表示していない時(NotifyIcon時)はCreateParamsをオーバーライドしたり
フォームプロパティを設定して消す事は出来ています。
0971デフォルトの名無しさん
2008/05/22(木) 21:36:280972デフォルトの名無しさん
2008/05/23(金) 22:00:400973デフォルトの名無しさん
2008/05/24(土) 03:41:16はじめてのC#
ではなくて
C#ではじめてのプログラミング
ってサイトありませんか?
0974デフォルトの名無しさん
2008/05/24(土) 08:03:470975デフォルトの名無しさん
2008/05/24(土) 09:26:04まんま、タイトルが C# によるプログラミング入門 なサイトあるぞ。
0976お尋ね
2008/05/24(土) 17:39:59データ送信部分だけをwebで作りたい
つまりリッチクライアントを趣味で作りたいのだけど、
いいサイトとか知ってたら、教えて下さい。
0977デフォルトの名無しさん
2008/05/24(土) 17:59:550978デフォルトの名無しさん
2008/05/24(土) 18:05:28鬼教官ですね。泣...
0979デフォルトの名無しさん
2008/05/24(土) 18:12:220980デフォルトの名無しさん
2008/05/24(土) 18:22:40いや、あなた様は、完全に、Sだと思われます。
ただ、私はMなので、ちょうど良い関係性です。
0981デフォルトの名無しさん
2008/05/24(土) 19:46:42たまにどっちかが不器用にSになるところがいい。
SとSは最悪。
0982デフォルトの名無しさん
2008/05/24(土) 20:04:520983デフォルトの名無しさん
2008/05/24(土) 20:19:50xmlwebサービスでぐぐりんさい
0984デフォルトの名無しさん
2008/05/25(日) 00:59:10yyy.xxx.Zenkaku(System.Windows.Forms.TextBox)
こんなクラスがあるんだけど、どう書けば使えるのでしょう
・・・こんな質問だけにエスパー求む
0985デフォルトの名無しさん
2008/05/25(日) 01:03:290986デフォルトの名無しさん
2008/05/25(日) 01:10:48どんな結果になるのかは知らんが
0987デフォルトの名無しさん
2008/05/25(日) 01:12:53「〜指定されたコンテキストが有効ではありません」と帰ってくる
ギブ寸前
0988デフォルトの名無しさん
2008/05/25(日) 01:17:44「〜指定されたコンテキストが有効ではありません」
だめだすた
0989デフォルトの名無しさん
2008/05/25(日) 01:20:00TextBox tb = new TextBox();
yyy.xxx.Zenkaku a = new yyy.xxx.Zenkaku(tb);
とか
0990デフォルトの名無しさん
2008/05/25(日) 01:20:03月曜 先輩に聞いてみますZzz
0991デフォルトの名無しさん
2008/05/25(日) 01:22:04とC#もってない奴がいってみる
0992デフォルトの名無しさん
2008/05/25(日) 01:26:56textboxをpublicにする とエスパーしてみる。
正解ならんなアホなもん使うなw
0993デフォルトの名無しさん
2008/05/25(日) 01:32:21あからさまにstring渡してるじゃん。
つかtextbox渡す意味が一体どこにあるのやら。
0994デフォルトの名無しさん
2008/05/25(日) 01:39:250995デフォルトの名無しさん
2008/05/25(日) 01:42:03転職サイトチョイスしてやってもいいと思うぞ。
0996デフォルトの名無しさん
2008/05/25(日) 02:34:03コンパイル通ったがボタン押すと
今度はアプリケーションランでひっ掛かりやがる
「ファイルまたはアセンブリ xxxx または依存関係の1つが読み込めません」
ここは自力でいきま
みんなありがとう
0997デフォルトの名無しさん
2008/05/25(日) 02:39:550998デフォルトの名無しさん
2008/05/25(日) 02:43:140999デフォルトの名無しさん
2008/05/25(日) 02:50:011000デフォルトの名無しさん
2008/05/25(日) 02:52:54いやっほい
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。