1 名前:デフォルトの名無しさん mailto:sage [2009/06/06(土) 12:30:18 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part40 pc12.2ch.net/test/read.cgi/tech/1239599317/
412 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 12:51:20 ] LAN内の別のマシン(実行マシン)で実行中の実行ファイル(exe)をバージョンアップするときに、開発マシンからコピーして上書きしたいのですが、実行中なのでロックされていてできません。 ロックせずに実行する実行ファイルを作ることってできるんでしょうか? あるいは、開発マシンからkillするのでもよいのですが、そんなことってできましたっけ? あまりC#とは関係ないかも…。
413 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:16:10 ] >>412 できない。Unixだと上書きだけならできるが(再起動はもちろん必要) で、基本常に実行し、必要なときに落としたりできるのがWindowsのサービスの仕組み。利用しない手はない。 リモートデスクトップで直接終了作業する手はどうだ?
414 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:32:18 ] なるほど。そこでリモートデスクトップですね。 なるほど〜。 サンクス。 いまも別のマシンが別の階の別の部屋にあって、デバッグしながらいったりきたりで、いい運動になってました。
415 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:35:05 ] >>405 これって、C++(?)のコードですよね? C#のコードor dll or exeはないですか?
416 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:37:33 ] かまわずWMIというかSystem.Management.Instrumentation使えばいい
417 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 14:05:49 ] Instrumentationいらないだろ
418 名前:417 mailto:sage [2009/06/12(金) 14:12:12 ] using System.Management; ManagementClass m = new ManagementClass("Win32_Process"); foreach (ManagementObject o in m.GetInstances()) { object c = o["CommandLine"]; if (c is string) { Console.WriteLine((string)c); } } こんなもんだろ。何か異議ある?
419 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 14:34:46 ] >>415 C#の相互運用機能を使ってC#に書き換えればいいじゃん >>405 にC++でしか実現できない点は1つもないよ それができいなら、おとなしくWMI使っとけ
420 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:30:48 ] >>418 ぜんぜん異議なし。 >>419 は〜い。おとなしく使ってます。 それはそれとして、相互運用機能なんてので、C++のコードをC#に書き換えられるんですか? 知らなかった…。 それって簡単?
421 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:41:16 ] >>405 のコード読めるならそんなに難しくはない そうでないなら諦めろ
422 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 18:17:03 ] >>411 アタッチについて少し調べたんですが、 スレッドのアタッチは出来そうだけど、プロセス?(たとえばWordなど)に アタッチって出来ます?
423 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:16:40 ] サンプルコードを読んでいたら、以下のような記述が出てきたんですけれど、 コンストラクタを呼んで、 { } で括って最後に;って何なのでしょうか? コンストラクタの内容に追記しているんでしょうか? 匿名関数とか記法の名前が分かればググれるんですけれど、 何と呼ばれる記述法何でしょうか? public ActionResult Create(int customerId) { AddressViewData addressViewData = new AddressViewData() { CustomerId = customerId }; return View(addressViewData); }
424 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:24:32 ] 勘でググってたらあったー オブジェクト初期化子ですかね。
425 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:27:47 ] うん
426 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:33:03 ] >>423 確かに、これはものすごい気持ちの悪い書き方だな。 ぱっと見ではなぜnew AddressViewData()のところにセミコロンがないのかが分からないし、 ブレースのあとでセミコロンがあるのかが分からない。 オレならまず間違いなく new AddressViewData() { ... }; にするだろうな。
427 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:36:58 ] 趣味の自慢か?
428 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:49:07 ] そういう宗教論争はこっちで頼むわ。 pc12.2ch.net/test/read.cgi/tech/1170599322/
429 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:07:07 ] Form2 frm2 = new Form2 とかやって、新しいフォーム作成したら Form2.csができちゃって Form1.csで作ったpublic変数とかが使えなくなっちゃうんだけど どうやったらForm1.csとForm2.csの変数や文字列を合体できる??
430 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:08:53 ] 引数にして渡せ
431 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:09:20 ] Form1.cs.Concat("Form2.cs")
432 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:52:51 ] 変数と文字列を同じ次元で語るなよ
433 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:11:28 ] >>429 > Form2 frm2 = new Form2 > とかやって、新しいフォーム作成したら > Form2.csができちゃって 面白い。新しいリフレクションだなw
434 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:46:29 ] >>429 まじめに勉強してこなかったツケがそれだよっ!
435 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:01:33 ] しばらくRubyやってて久々にOffice用のCOM参照DLL作ることになったんだけど インスタンスの作り方すら忘れてる俺涙目w
436 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:26:08 ] 日記帳
437 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:47:00 ] overrideって何のためにあるの?
438 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:50:00 ] >>437 明示しないとオーバーライドできなくするため。 オーバーライドするつもりなかったのにうっかりやっちゃったとかになると、 結構発見しずらいバグになる。
439 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:53:17 ] どうしてoverrideという概念があるかというレベルに見えるが
440 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:55:41 ] 継承はバグの温床だからな、安全装置は沢山あった方がいい
441 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 00:04:42 ] 現在のオブジェクト指向に関する理解から考えれば、overrideは要らない 仮想テーブルは自前でも作れる、ただ面倒臭いから言語の機能としてあれば便利だというレベルになっている。 また言語仕様で作られる仮想テーブルは書き換える事はできないが、そのような操作が必要になったら結局自前で作るわけだが、 それはStrategyパターンと呼ばれるデザインパターンでパターン化されている。
442 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 00:23:56 ] >>441 これ > 現在のオブジェクト指向に関する理解 と、これ > 仮想テーブル って、全然領域違う言葉だよね? 何で混ざってるの?
443 名前:デフォルトの名無しさん [2009/06/13(土) 01:13:12 ] 使う人間が完璧なら不要 実際Javaなんかで問題が出たから付けるようにしてるんだよ そのJavaですらoverrideを明示的に付けるようになった
444 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:59:00 ] 多数の変数を一気に同じ値にすることできねーの? int a; int b; int c; 〜〜 int z; a=2; b=2; とかじゃんく a,b,c,d,e=2; みたいな感じで。
445 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 03:04:23 ] >>444 カンマじゃなくて、イコールでつないでご覧。
446 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 04:30:26 ] File.WriteAllText(@"C:\Test.txt", "テスト書込。", sjisEnc); この、C\Test.textの前にある@マークは何の役割でしょうか?
447 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 04:31:37 ] @があると\でエスケープしない "C:\\Test.txt"とすべきところを@"C:\Test.txt"で済ます
448 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 04:34:31 ] >>447 ありがとう
449 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:19:43 ] >>442 >どうしてoverrideという概念があるかというレベルに見えるが に対しての見解なので
450 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:43:36 ] >>441 ん、んーん?
451 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:59:33 ] overrideがないと、関数名を考えるのが面倒じゃん MyFunction( ) MyFunction_int(int n) MyFunction_intint(int n, m) MyFunction_intstr(int n, string t) とか、どんどん増える
452 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 11:00:19 ] overloadと勘違いして奴がいる模様。
453 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:06:15 ] overloadと勘違いして奴がいる模様。
454 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:13:18 ] c#の入門用ページ、 どこもコンソールアプリケーションのことしか書いてないんだけど WIndowsプログラムのこと書いたページで良いとこない?
455 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:16:23 ] >>454 言語自体の入門ページだと、そりゃそんなもんだろ。 Windows Forms とか WPF でググりなおした方がいいんでは。 あと、コンソールアプリで入門記事書いてるページでも、 1ページくらいは GUI に記事さいてないか?
456 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:18:02 ] そりゃ、C#の入門であって、.NETでGUIプログラミングをするための入門では ないから、仕方ないのでは? 前者はもう充分だから、後者に移りたいというのが質問の趣旨? それとも、前者も後者もいっしょくたにしたいという話? いっしょくたはおすすめできないぞ。
457 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:29:13 ] GUIプログラミング=IDEの使い方だし、めんどくさいだろ?作るの。
458 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:38:46 ] 俺はClass personから継承してtaroをつくるとかどうでもいいことじゃなくて たとえばだが Form1のx=200,y=300のドットの色を取得して 画面を塗りつぶすとか そういうことやりたいんだが コンソールアプリじゃそういうことわからん。 IDEつくるのめんどくさいのか;;
459 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:42:42 ] >>458 どうでもいいけど > Class personから継承してtaroをつくる これは気持ち悪い taroっていう種族がいるのか…?
460 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:44:53 ] >>458 class Taro キモすww それは置いといて、 そういう話の場合、「入門」じゃなくて「サンプル」でググって、 説明読むんじゃなくてコード読む方がオススメ。
461 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 12:46:01 ] 別に居ても居なくてもどうでも良いな 3年を継承して山田を作るのに山田って組があるのか?とか マジでどうでも良い
462 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:11:29 ] ちょっと力ぬけよ
463 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 15:40:08 ] メモリの解放のタイミングについて教えてください。 フォーム上にDataGridViewとComboBox(DropDownListとして利用)、 Buttonがあるとします。 ButtonをクリックするとComboBoxのSelectedIndexによってDataGridViewの 内容が変わります。DataGridViewはReadonlyです。 現在、初期化としてフォームのコンストラクタのInitializeComponent()の後で、 それぞれDataTableを取得して、ComboBoxとDataGridViewにバインドしています。 DataGridViewはReadonlyなので、 using(DataTable dt = …) { // 処理 dataGridView1.DataSource = dt; } と閉じてしまっても問題ありませんが、ComboBoxの方はusingで囲むと値が 表示されません。 その場合、comboBox1.DataSourceにセットしたDataTableはどこでDisposeすれば 良いのでしょうか?
464 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:01:14 ] Disposeはメモリの解放じゃない DataSourceとして使用してる間にDisposeしちゃまずいだろDisposeの意味的に考えて そのDataTableを使わなくなるタイミングだから、大体フォームが閉じるときでいいんじゃね 実用上はDataTableならDisposeする必要もないけどな
465 名前:デフォルトの名無しさん [2009/06/13(土) 16:33:55 ] >>464 ぐぐって下記のページを見つけて読んできました。 ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=34497&forum=7 大体理解できました(と思います)。 リンク先もさらに読んできます。
466 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:54:15 ] 内容が等しいことを示すにはどうしたらいいでしょうか? class test{ int a; int b; } test x1=new test(); test x2=new test(); x1.a=10; x2.a=10; x1.b=20; x2.b=20; if(x1==x2) //等しいと表示 else //等しくないと表示 クラスは参照型なので等しくないって表示されちゃうことはわかるんだけど クラスの内容自体を比較するのはどうやんの?
467 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:55:46 ] IComparer
468 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 01:16:18 ] >>466 ==,!=オーバーライド
469 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 01:19:37 ] >>466 x1.a == x2.a && x1.b == x2.b というかそれ、public ないから普通にコンパイルエラーにならんか? そのクラスを値チックにしか使わないなら Equals とか GetHashCode とか オーバーライドして operator ==/!= 定義する。IEquatable は・・・この場合は まぁいいか
470 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 03:19:03 ] GetHashCodeはオーバーライドしとけ。
471 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 03:52:16 ] GetHashCodeってどんなときに呼ばれんの?
472 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 04:48:38 ] Hashtable Dictionary
473 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 04:48:54 ] Dictionaryにキーとして放り込む時とか
474 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:10:04 ] 列が100、行数が20というデータテーブルを作ってDataGridViewで表示してるんですが、 ボタンをクリックするとテーブルに対してColumns.Addで列数を増やすように作ったんだけど、 なぜか1列増やすごとに1秒ぐらいかかる。 ぐぐったら「Debugは遅い」って書いてあるのを見つけたんでReleaseに変えてみたけど、 それでも0.7秒ぐらいかかってるみたい。 ボタンをクリックしてから画面が更新されるまで、ちょっとタイムラグがあるのが気になるんだけど、 もっと高速に列数を増やす方法はないですか? マシンはPen4/2.8GHzにメモリ2GBで、極端にマシンが遅いわけでもないと思うんですが。 OSはXP SP3に無料のC#2008 NET3.5です。
475 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:11:11 ] あ、データテーブルの中身はintです。
476 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:20:18 ] 追加に時間がかかってるのか、再描画に時間がかかってるのか、 どっち?
477 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:59:15 ] どっちかわかりません。 追加すると自動的に再描画されてしまうと思うのですが、 どうやったら別々に調べることが出来ますか?
478 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:04:08 ] Stopwatchクラスで時間計ってみ
479 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:50:00 ] 画像を縦30横30に切り取りたいのですがどうすればいいのでしょうか?><
480 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:54:05 ] >>479 「C# 画像 切り取り」で検索すればすぐに出てくるんだけど
481 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:55:14 ] 縦30、横30でコピーすればOK
482 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:57:06 ] >>48 ありがとうです0
483 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 18:24:14 ] パネルに編集画面を描画(Direct3D)していて、 カメラ位置を移動させるためのスクロールバーを配置したいんだけど、 1発でばしっと縦横スロールバーがつけられるコントロールってありますか? やっぱり 親パネルの右に垂直スクロールバー配置、アンカーを上下右に設定、 親パネルの下に水平スクロールバー配置、アンカーを左右下に設定、 残った領域にスクロール操作の対象になるパネルを配置、アンカーで上下左右を設定 みたいにしないとダメ?
484 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:04:31 ] パネルってそもそも ScrollableControl 継承してなかったか?
485 名前:デフォルトの名無しさん [2009/06/14(日) 21:45:46 ] そりゃ中に大きなコントロール入れたらスクロールバー出るけど483の用途には全く適さない
486 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 05:17:28 ] 普通、インスタンス生成するときは Class名 名前=new Class名(); で生成できるのに Graphicsクラスのインスタンス生成する際 Graphics gr=new Graphics(); じゃ生成できないのはなんで? Graphics gr=CreateGraphics(); なら生成できるみたい
487 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 06:30:50 ] newさせたくないから。幼稚園児に油性マジック渡すようなもの。
488 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 06:50:13 ] 幼稚園児に油性マジック渡したら キャップし忘れてすぐだめにしちゃうよね
489 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 08:19:14 ] CreateGraphics()はthis.CreateGraphics()だから。
490 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 08:40:29 ] つまり、大人の事情でそう決まってるからとしか言いようがない。
491 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 08:54:31 ] 大人の事情っていうと、「仕方なくそうなってる」感じがするけど、 new Graphics() できないのは仕方なくじゃなくて、その方がいい設計だからだろ。
492 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 09:21:22 ] でもDispose()しないといけないのは何故
493 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 09:55:13 ] GDIの作法を知らない世代か。
494 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:01:20 ] newとDisposeは対になるものじゃないしね
495 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:33:09 ] Dispose()はC++からのクセだろ 別にしなくてもいいし
496 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:51:44 ] やんなくてもGCが回収してくれるけど、その間リソースを持ち続ける事になるからねぇ ファイル開こうとしたらいつまでもロックされてる とかよくある。 Closeすればいい?それならDisposeしちゃえよ。
497 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:58:16 ] >>495 ドキュメントにDispose()しろってんだからしろよ<
498 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:16:50 ] > しろよ< よろしくにみえた
499 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:16:34 ] private void Form1_Load(object sender, EventArgs e) ()内のobject sender, EventArgs eってなんですか?
500 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:20:21 ] イベントの発生元とイベントのパラメータ
501 名前:デフォルトの名無しさん [2009/06/15(月) 14:22:47 ] Loadイベントに限っていえば意味はない イベントハンドラの引数の形式を統一するためのダミー
502 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:32:36 ] Windowsアプリケーションを製作しております。 処理に必要なデータ(CSVファイル)を、利用者側から見られないようにしたいのですが なにか策はありますでしょうか?ご教授下さい。
503 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:37:10 ] System.Security.Cryptographyでも使って暗号化すれば 気休めだけどね
504 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:38:30 ] >>502 PC内に保存するなら簡単に見られるだろ。 見にくくしたいなら暗号化かな。 簡単な暗号でいいならxor暗号で。
505 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:45:17 ] >>502 web上に配置してsslとか
506 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:47:43 ] >>502 エロゲのセーブデータか?
507 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 14:50:33 ] 食いつき良いなお前ら。
508 名前:502 mailto:sage [2009/06/15(月) 14:52:46 ] >>503 ありがとうございます、調べてみます。 >>504 ありがとうございます。XOR暗号、調べてみます。 >>505 Web上への配置ですか、検討してみます。 >>502 いえ、そういうのではないのですが。 そのファイルを見られてしまうとプログラム内でなにをやっているかがわかってしまうのです。
509 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 15:05:58 ] ファイルなんか見なくても何してるか丸見えだけどな
510 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 15:21:35 ] ゲームとかでネタばれになるようなのは隠したいわな
511 名前:502 mailto:sage [2009/06/15(月) 15:25:55 ] Security.Cryptographyでやってみようと思います。 本当にありがとうございました。感謝します。
512 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 15:27:12 ] カジュアルハックを防ぐだけならそれでいいんじゃね。
513 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 15:54:28 ] 2次元のHashtableはつくれますか? hash["abc"]["def"]のような。
514 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:05:19 ] Hashtable<Hashtable<T>>
515 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:06:45 ] >>514 ただし2次元ではない もしくはそういう感じのを作ればおk
516 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:16:41 ] >>513 hasu["abcdef"]という値をキーにすれば良い
517 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:17:56 ] 商用なら間違いなく仕様バグで訴えられるな。
518 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:18:10 ] >>516 そうですね、ありがとうございました。
519 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:18:49 ] >>518 hash["a"]["bcdef"]との違いがわからなくね?
520 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:21:27 ] 実際は abc = 重複のない3桁の数字 def = 重複のある1〜2桁の数字 なので、>>513 さんの意見で大丈夫かなと思ったのですが。
521 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:22:45 ] すいません、>>513 ではなく>>516 でした
522 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:36:00 ] >>520 じゃあそれでいいんでね?
523 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:36:05 ] >>519 別に汎用でなくてもかまわない。 キーが取り得る値として辻褄が合うように適宜仕様変更すれば良いんだよ。
524 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:38:21 ] >>523 適宜仕様変更すると汎用になるんでないかい
525 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:38:51 ] てか、自分でハッシュ関数作ればいいじゃん
526 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:42:36 ] 目的に最適化されたハッシュか、汎用のハッシュか、どっちが高速かと言えば前者だな
527 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:47:04 ] hash[new {Fst = "abc", Snd = "def"}] ってできる?
528 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:49:45 ] >>527 試した?
529 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 16:50:14 ] >>528 試してない だって俺C#の文法知らないもん
530 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 17:03:22 ] はっはっは こやつめ
531 名前:デフォルトの名無しさん [2009/06/15(月) 17:13:00 ] new Dictionary {{"あ","A"},{"い","I"}}
532 名前:デフォルトの名無しさん [2009/06/15(月) 17:15:30 ] <string,string>追加
533 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 17:22:05 ] うわぁ的なことをした人がいる d.hatena.ne.jp/NyaRuRu/20071211/p3 var dict = Dictionary ( x => "foo", y => "bar", Hauhau => "gaogao" ); C#3.5以降のはず
534 名前:デフォルトの名無しさん [2009/06/15(月) 17:27:09 ] わざわざそんなキモいことしなくても531で正解なんだが
535 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 17:28:57 ] 一番軽いのはどーれだ
536 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 17:41:11 ] >>534 実現方法の一つで正解ってわけじゃないけど どうでもいいわ
537 名前:デフォルトの名無しさん [2009/06/15(月) 18:00:02 ] 言語に組み込むのは、手段を統一させるため 昔C#のコンセプトについてそんなコメントがあった気がする
538 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 19:48:35 ] VC#フォームデザイナでメニューを作ったとき、キャプションに 「上書き保存)(&S)」とか入力してからダブルクリックして メニューの Click イベントを書こうとすると private void 上書き保存SToolStripMenuItem_Click(object sender, EventArgs e) ってなるのが気持ち悪くてしょうがないんだけど、 みんなちゃんと飲み込めてるの?
539 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 20:09:18 ] お好きなようにどうぞ ・実害はないので気にしない ・リネームする ・英語キャプションでハンドラを生成して、後から日本語に変更 ・先にハンドラを用意する
540 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 20:35:12 ] >>513 public struct ComplexKey<X, Y> : IEquatable<ComplexKey<X, Y>> を作ってみるのは俺だけか?
541 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:28:02 ] is演算子、 as演算子って多用すべきでない?
542 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:50:50 ] キャストと比べても、パフォーマンス的には殆ど同じだから安心して使うといい。 キャストに失敗する可能性がある場合には必ずas,isを使うべき InvalidCastExceptionをtry-catchするような方法だと桁違いに遅い。
543 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:32:18 ] if (hoge is Foo) { Foo foo = (Foo)hoge; // ... } 個人的には、上よりは下の方がいいと思うとか、細かいことを挙げたらきりがないけどな。 Foo foo = hoge as Foo; if (foo != null) { // ... }
544 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:49:13 ] >>541 as演算子のほうがキャストより高速になる場合が多いらしい
545 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:55:46 ] まあそりゃチェックが2回になるからね。 でも、そんな差を気にしなければならないのはよほどタイトな処理の時くらいだし、 普通に書いた時変数のスコープが広がるというデメリットもあるから、 別にどっちでもいいレベルだと思うけどね。 なぜかやたらとここにこだわるやつがいて不思議。
546 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:55:48 ] 上は無駄な事をしてる感じなのが気に入らない 下は変数のスコープが気に入らない scalaのswitchが使えればいいんだけどなぁ
547 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 22:56:34 ] 質問です。 次のような配列があったとして、HighPriceの最大値を求めたいのですが、簡潔に書くにはどう書けばいいのでしょうか? hoge[0].HighPrice = 1000; hoge[1].HighPrice = 780; .(略) hoge[99].HighPrice = 300; 環境はVisual C# 2008です。よろしくお願いします。 自分で考えたのは、 「int maxにまず初期値1000を設定、あとはforループでまわしてmaxをこえていれば新たにそれをmaxに設定する」 というものですが、もっとスッキリさせられないものかと思ってます。 ちなみに、hoge[0].HighPriceは本日(0日前)の高値、hoge[1].HighPriceは1日前の高値・・・ といった設定。100日間の高値の中で最大値を求めたいんです。
548 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:02:07 ] >>547 LINQ使って int max = hoge.Max();
549 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:11:18 ] HighPrice メンバみたいだから int max = hoge.Select((x) => x.HighPrice).Max(); だな
550 名前:549 mailto:sage [2009/06/15(月) 23:15:05 ] あ、Max にはセレクタ指定できるのかごめん int max = hoge.Max((x) => x.HighPrice); かな
551 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:15:35 ] hoge.Max(x => x.HighPrice) みたいな?
552 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:16:33 ] あ、カッコいったか、普段あまり使わないから分からなくなるよ。
553 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 23:21:10 ] なくてもいいと思うよ。俺は見易さと統一性でいつもつけてる だけ。けど好みの問題だろうな。
554 名前:547 mailto:sage [2009/06/15(月) 23:27:57 ] みなさんレスありがとうございます。 >>550 さんので無事できました。 LINQだとだいぶ楽に書けていいですね。 手元のC#本は古いせいかLINQについては載ってないので新版を買ってくるとします。 ありがとうございました!
555 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:24:51 ] c#で class Test{ } という何もないTestクラスを作って Test test=new Test(); ってやって、 Label1.Text=test.ToString(); ってやったら宣言してないはずのTostring()が実行されるんだけど クラスって宣言しなくても勝手にObject型を継承するようになってんの?
556 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:25:46 ] msdn.microsoft.com/ja-jp/library/system.object.aspx
557 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:42:47 ] >>556 くそ真面目に継承階層にずらずら並べてるのがちょっと微笑ましい
558 名前:デフォルトの名無しさん [2009/06/16(火) 01:49:59 ] >>557 スクリプト切っててわからなかった これはひどい
559 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:50:21 ] 2,768個・・なぜ並べたww
560 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:50:58 ] >>555 クラスどころかC#ではありとあらゆる型がobject継承してる。
561 名前:542 mailto:sage [2009/06/16(火) 08:28:40 ] 安心して使うことにする。 みんなありがとう
562 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 13:07:53 ] >>556 クソワロタ
563 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:27:42 ] なんでわざわざ Program.csとForm.csに分割してるんだ Program.csは Main関数の中に Application.Run(new Form1) みたいな産業あるだけだし・・・ 意味不明
564 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:30:27 ] 意味などないんだよおおおおおおおおおおおお!!! うふっ
565 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:31:25 ] なるべくpublicなクラスは分割した方が管理しやすいから フォームみたいなのだとなおさらね 関係ないけどそれを追求した結果、Javaなんかは1ファイル1publicクラスみたいな潔癖な事になっている
566 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 15:33:29 ] 意味不明ってまじかよ。冗談はよせ。
567 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 16:47:11 ] foreach(item in arraylist) { if (削除条件(item)) { arraylist.Remove(item); } } てやっても大丈夫? ちゃんとインデックス使って for (int i=arraylist.Count; i>=0; --i) { if (削除条件(arraylist[i])) { arraylist.RemoveAt(i); } } ってやらなきゃだめ?
568 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 16:48:31 ] あ、arraylist の中身は重複しません
569 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 16:53:09 ] foreach中はコレクションを変更できない
570 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 17:08:36 ] RemoveAllで
571 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 18:53:50 ] 1個なら消せるよね
572 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:59:54 ] CheckedListBoxって、項目を選んでからチェックボックスをクリックしないと チェックできませんよね。 どの項目を選んでいるか関係なく、クリックしたら即チェックできるようにするにはどうすればいいですか?
573 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:05:32 ] CheckOnClick
574 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:07:00 ] 相談室の次スレ立てれんかったわ
575 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:10:16 ] 立ててやるよ
576 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:11:04 ] >>567 RemoveAll が普通だろうけど、ArrayList ってことは 1.0 縛りとか そういうの?
577 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:13:27 ] 立てたよ
578 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:14:25 ] >>577 GJ
579 名前:デフォルトの名無しさん [2009/06/16(火) 20:35:24 ] Visual C# 2008 Express Edition入れたんですけど、 ライセンス登録しないとどうなるんでしょうか? あんまパスワードとか作りたくないので、 できれば登録したくないです。 あと、どんな感じで勉強してったらいいでしょうか? javaを2年くらいやってます。あとC言語をちょびっとやってました。 くだらない質問と漠然とした質問ですみませんが 教えてもらえたらありがたいです。 お願いします。
580 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:42:13 ] 30日で使えなくなる それだけ Javaやってたなら簡単だと思うよ ここで聞くことも無いかもしれない
581 名前:デフォルトの名無しさん [2009/06/16(火) 20:43:06 ] 一ヶ月経ったら登録しないと起動しなくなる javaできるなら勉強しなくてもいきなり使えるはず 使いながら随時細かい違いを調べていけば十分 それができないならjavaもできてないってことだ
582 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:45:57 ] ...これだと項目を選択した瞬間にチェックがつけられてしまいますが、そうではなくて チェックボックスをクリックした瞬間とはならないでしょうか。 ちょうどチェックボックス付きの ListViewのような動作です。 それならListViewをつかえといわれそうですが、リサイズした場合に一番右側のヘッダの 右端が常にコントロール右端に一致するようにするやり方がわからないのです。
583 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:47:03 ] >>579 登録しなくても問題無くずっと使える 前は登録するとアイコンセットもらえるキャンペーンとかやってたけど リファレンスもユーザーサイトも充実してるしJavaとVB足したような言語だから たぶん難しくないよ
584 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:50:24 ] 堂々と嘘こいてんじゃねええええええええええええええええええええええ
585 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:52:49 ] 嘘を付く時は堂々とするとバレにくいよおおおおお
586 名前:デフォルトの名無しさん [2009/06/16(火) 20:53:16 ] DVDイメージ版は登録いらないんだっけ
587 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:53:40 ] 登録はWebインストール版の話
588 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:54:59 ] www.microsoft.com/japan/msdn/vstudio/2008/product/express/register.aspx Visual Studio 2008 Express Edition を Web インストールにて入手いただいたお客様は、ご使用に当たってライセンス認証が必要となります。 ライセンス認証キー発行の過程において Live ID によるユーザー登録をお願いしております。 無料のライセンス認証キーにより、Visual Studio 2008 Express Edition を、30 日間の期限を過ぎても使用できるようになります。
589 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:57:44 ] あほばっかりや
590 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:19:22 ] そもそもパスワードなんてあったか?
591 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:22:14 ] 製品登録する用LiveID取得するためにパスワードが必要 LiveID持ってれば製品登録してメール送られてくるだけ
592 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:26:19 ] 俺は登録した覚えないからなんのこっちゃと思いながらレス読んでたけど、 Webインストールだけなのね。DVDから入れたわ。
593 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:07:46 ] >>582 ならListViewでSizeChangedでColumnHeaderのWidthいじればいいんじゃね ダブルクリックとかスペースキーでチェック状態変更するときはどうすんのかね
594 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:22:15 ] LiveIDくらいは作っといてもいいと思うぞ。 既に持ってる人も多いだろうし。
595 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:37:01 ] >>582 マウスイベントでマウスポインタの位置を取得して ClickかSelectedIndexChangedあたりで選択されたインデックスの チェックボックスの領域がクリックされたらItemCheckみたいな方法しか ないんじゃないかね
596 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:45:33 ] static classって使い終わってもGCにコレクトされないの?
597 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:49:39 ] >>596 使い終わるってどういう状態のこと?
598 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:51:47 ] c#ってさ、スタドアロン(.Net Framework インストールしてなくても動くって意味で)な exe つくれる? なんていうか、DLL全部EXEに組み込むみたいな。
599 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:01:36 ] MONOはネイティブコンパイルできたと思うよ iPhoneでC#製プログラムを動かすだかって話の時に読んだ
600 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:13:20 ] >>599 aot オプション付けるだけみたい。
601 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:19:14 ] なんだ。じゃあ駄目だな
602 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:23:54 ] 数字を入力してその数字に見合った数だけの文字を表示するためのプログラムを組んでいるのですが 二重ループがうまくいっていないらしく希望の結果になりません、修正点を教えてください 希望のプログラム 5(ここは任意の数字を入力) * ** *** **** ***** このように任意の数字を入力しそれまでの間1づつ増加した*を並べたいです 組んだプログラム #include<stdio.h> int man() { int a,b,c; scanf("%d",&b); a=0; c=0; while(a<b) { while(c<=a) { printf("*") c++; } a++; printf("\n"); } }
603 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:24:44 ] 上記のプログラムで走らせると * * * * * となってしまいます、 * ** *** **** ***** とするにはどこを修正すればいいのでしょうか、よろしくお願いします
604 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:29:20 ] スレタイも読めないのか
605 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:31:51 ] 誤爆しました
606 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:34:27 ] >>604 ただ叩くだけじゃなくてちゃんと誘導してやろうぜ、一応初心者スレなんだから 自分は他人に教えられる、えらい存在だなんて思ってるなら出て行ってくれ >>603 それは違う言語だね、こっちのスレで質問したほうがいいと思います pc12.2ch.net/test/read.cgi/tech/1244942050/
607 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 04:45:27 ] ちなみに、C#としての解決法なら、 その数値にToString()をかけた上でその文字列の長さを見るところだろうな。 C++なら桁数を求める数値計算をさせるだろう。
608 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 07:41:51 ] えっ
609 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 08:11:58 ] >>607 c=0の位置間違えてる限り、何やってもw
610 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 08:13:11 ] 変数を初期化する場所が違うだけ
611 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 08:27:14 ] for(int a=1; a<=5; a++) Console.WriteLine(new String('*', a));
612 名前:474 mailto:sage [2009/06/17(水) 17:30:18 ] >>474 です。遅い原因がわかりました。 昔 ColumnHeaderHeightSizeMode = AutoSize 今 ColumnHeaderHeightSizeMode = DisableResizing プロパティ1つ変えたら10倍速くなりました。
613 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:48:37 ] へぇーすごいじゃん。
614 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:51:19 ] 特許でガッポガッポ
615 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 22:59:12 ] Tagプロパティって無い方がよくね?
616 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:02:36 ] == と != をオーバーライドしてたんですが、 やっぱりオーバーライドをやめることにしました。 ついては、オーバーライド してた演算子を全部検索して、 Equals に書き換える必要が生じたんですけど、 どこでオーバーライドされた演算子が使われているか検索する 方法はないでしょうか?
617 名前:デフォルトの名無しさん [2009/06/17(水) 23:04:39 ] 消してコンパイルしてみたら
618 名前:デフォルトの名無しさん [2009/06/17(水) 23:07:08 ] 参照型だと消してもコンパイル通るのか 右クリックで「すべての参照の検索」は?
619 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:11:36 ] プログラミング自体5ヶ月の経験の初心者です javaを2ヶ月勉強した後に、仕事で3ヶ月前からC#触っています いろいろな方から聞いたのですが、参照型の値の比較をするときはjavaの時はequalsを使うのは当たり前でしたが、 C#だと==で問題ないって方が多いのですが、これはどういうことなのでしょうか? C#はそもそも参照型の概念がjavaとは違うのですか? ==を使うとき、C#だと値自体の比較がされるということなのでしょうか?
620 名前:616 mailto:sage [2009/06/17(水) 23:15:25 ] >>617 すべての参照の検索だと拾ってくれないんですよ。 困った。
621 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:19:09 ] >>619 == をオーバーロードして値比較にすること「も」できる String とかだな 作法として == をオーバーロードする場合は Equals もオーバーライドして == と同等の動きをするようにする 必ず参照を比較したい場合は Object.ReferenceEquals を使う
622 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:23:06 ] >>619 java知らんけど参照型の比較は言い換えれば参照情報の比較なんだから ==で問題無いかどうかって問題か? 例えばあaとbに1を入れて比較しても参照位置が違えばfalseになるってだけ
623 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:31:50 ] >>616 オーバライドしたままで例外を投げるようにして実行する 例外が出なくなったらオーバライドやめる
624 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:34:59 ] >>619 JavaもC#も==とequals/Equalsの根底は同じ: ==は参照が同じか比較する。equals/Equalsも基本そうだが、オーバーライドして値の等価比較にもできる。 ところが、C#の場合、==演算子を直接、多重定義できる。 特にStringなんかでは型安全ということで、==演算子が推奨されている。 sonic64.com/2006-02-02.html しかし、そういう一部を除いてC#でも基本的にはEquals推奨だよ。 msdn.microsoft.com/ja-jp/library/bsc2ak47.aspx msdn.microsoft.com/ja-jp/library/ms173147.aspx
625 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:35:28 ] >>616 これがドンぴしゃだと思うけどどう? msdn.microsoft.com/ja-jp/library/system.obsoleteattribute.aspx コンパイル時警告になるはず。
626 名前:デフォルトの名無しさん [2009/06/17(水) 23:38:16 ] >>619 Stringのように値を変更できない型に限り、参照型でも==をオーバーロードしてよい
627 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:40:01 ] 演算子がオーバーロードできない言語は糞。
628 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:44:13 ] immutableなオブジェクトは、別々に代入されても、最適化によって 実体は同じになっている可能性が高い。Cの文字列リテラルがそもそも そういう傾向だったし。 s1 = "abc"; s2 = "abc"; と書いたときに、s1 == s2が 真かどうか分からないんじゃ使い物にならないので、内容が同じなら 同一オブジェクトかどうかは問わず真にしよう、という趣旨だと思う。 ただし、単に思いついただけなので、根拠はない。
629 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:45:54 ] 結構前にも同じような話したことあるようなないような
630 名前:デフォルトの名無しさん [2009/06/17(水) 23:46:41 ] あってるよ それを保証するために>>626 のガイドラインがある
631 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 00:05:37 ] >>628 > immutableなオブジェクトは、別々に代入されても、最適化によって > 実体は同じになっている可能性が高い。 ここに関してはimmutableなオブジェクトでなくリテラルの話だよね 動的に作られたimmutableなオブジェクトがそうなる可能性は高くないと思うよ そんな最適化はむしろ効率が悪そうだ
632 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 03:00:46 ] まさかのflyweightパターン全否定 関係ないけどさ
633 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 04:01:30 ] 関係なさ過ぎだろ
634 名前:616 mailto:sage [2009/06/18(木) 08:26:40 ] >>625 ビンゴ!Obsolateにこんな使い方があったとは。 勉強になりました。 ありがとう♥
635 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:36:53 ] >>623 ifとかcaseで滅多に実行されないレアケースがあるから いつまでも削除できない
636 名前:デフォルトの名無しさん [2009/06/18(木) 12:09:44 ] 質問いいですか? ウェブ上で画像をバイナリとしてデータベース上にアップして そのバイナリファイル(JPG画像)を response.binaryWrite(file.content)って呼び出してウェブ上(displayJPEG.aspx)に画像だけを 表示させたいんですけど、 どうやっても真っ白なバックグラウンドに、そのaspxファイルのURLしか表示されません。 しかもそのURLがJPG画像?みたいになってて、テキストじゃないんです。 何が何だか良く分からなくてお手上げ状態なんでアドバイスください・・・ 画像のアップロードの仕方に問題があるのでしょうか?
637 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 13:02:30 ] file.contentはバイト配列?
638 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 13:06:35 ] いったんファイルに出してみて、それを直接URLで読んだらどうなる? ヘッダとかだいじょうぶ?
639 名前:デフォルトの名無しさん [2009/06/18(木) 13:13:53 ] >>637 バイト配列です。 >>638 いったんファイルに出して直接URLで読むっていうのはどういう意味でしょうか・・・? 初心者すぎてすみません・・・ コードはこんな感じです。 public partial class displayThumb : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { projectFilesTableAdapter filesTableAdapter = new projectFilesTableAdapter(); ProjectDataSet.projectFilesDataTable files = filesTableAdapter.GetProjectWithContentByFileID(37); ProjectDataSet.projectFilesRow file = files[0]; Response.ContentType = "image/jpg"; Response.Write(file.projectContent); } }
640 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 13:17:59 ] Response.Write?
641 名前:デフォルトの名無しさん [2009/06/18(木) 13:21:53 ] >>640 すみません、binaryWriteです。 でもbinaryWriteでも表示されませんでした・・・ これってもしかしてデータが壊れてるとかそういうのが原因でしょうか? projectContentはデータタイプをbinary(7000)って設定したんですけど 2kb以上の画像をアップして表示させようとしてます。 これが原因だったりしますかね・・・
642 名前:デフォルトの名無しさん [2009/06/18(木) 13:26:44 ] >>641 すみません訂正です。2kbー>20kb以上 なんかもうテンパっててすみません
643 名前:デフォルトの名無しさん [2009/06/18(木) 13:44:07 ] すいません自己解決しました・・・
644 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 13:44:41 ] なんで7KB上限のに20KB入れようとするんだ
645 名前:デフォルトの名無しさん [2009/06/18(木) 13:51:03 ] 先生・・・デストラクタが恋しいです・・・ struct使うと簡単にDisposeの後処理できるのかなぁ
646 名前:デフォルトの名無しさん [2009/06/18(木) 13:51:56 ] C# 2008 express edition をインストールしたのですが ライセンス登録が出来なくて困っています Windows Live ID を作成し、登録画面にサインインできるのですが サインインした先で 画面が読み込み中(画面中央で点が丸く点滅)のまま止まっています 日付を変えて試みても結果は同じでした 解決方法があれば教えてください よろしくお願いします
647 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:07:15 ] >>646 ISOイメージ落としてCDに焼いて、CDからインストールすれば登録不要。
648 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:12:46 ] 火狐などの別ブラウザでやってみ
649 名前:デフォルトの名無しさん [2009/06/18(木) 14:25:46 ] >>644 そこが狙いだったんでしょうね。 今回はまんまと引っかかっちゃったって感じです・・・
650 名前:646 mailto:sage [2009/06/18(木) 14:40:26 ] >>647 >>648 様 ありがとうございました ブラウザにChromeを使っていたのが原因だったようです I.Eで無事に登録することができました
651 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:47:15 ] Chromeじゃあ仕方ないな
652 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 14:55:45 ] そりゃそうだ ハッハッハッ
653 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:29:58 ] 俺前やったときfirefoxでも止まったような気がする
654 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:30:28 ] Windows 7 DLしようとするとIEだと646のいう画面でリロード繰り返しの半無限ループ になってDLできないが、FFでやるとすんなりDLできた。
655 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 15:48:03 ] そりゃそうだ ハッハッハッ
656 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:11:03 ] リストボックスにファイルをリストして、ファイル名のみを表示したとき、 listbox.SelectedItemからそのファイルのあるフォルダを探すには、 再度検索しないとだめでしょうか? フルパスは捨てられちゃう?
657 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:15:58 ] 適当に作ったクラスにフルパスとプロパティ作って そのリストとか配列をDataSourceにするといいよ あとDisplayMemeber
658 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 16:17:24 ] ×フルパスとプロパティ ○フルパスと名前の2つのプロパティ
659 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:05:12 ] Visual Studioでプロジェクトのプロパティを開くとアイコンを登録できますが、 ここでは何ピクセル、何色のアイコンを用意するのがベターなのでしょう? また、OSが勝手に縮小や減色するのを避けるために、あらかじめ小さく作った 複数のアイコンを埋め込む方法も教えてください。
660 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:41:28 ] アイコンを複数入れる方法はなんとなくわかりました。 エクスプローラーで表示される可能性のあるアイコンの種類の一覧って どこかにありますか?
661 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:03:32 ] アプリケーションのメインフォームを取得する方法を教えていただきたい。
662 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:09:06 ] Application.Runする前に静的フィールドに保存しとけ、とか ApplicationContext 作って管理しろ、とか じゃない話?
663 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:26:16 ] ライブラリに組み込みたいのでRanに渡したフォームを簡単に 取得できるものがあればと思ったんですが、ApplicationContext を調べてみます。 ありがとう
664 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:54:45 ] >>660 一つのアイコンファイルに複数の大きさの画像が格納されててエクスプローラが自動選択で表示してるだけだから、 VSでどうこうするんじゃなくてそういうアイコンを作れ
665 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:02:21 ] 256x256,48x48,32x32,16x16が各8bit,32bitあれば事足りるらしい 事足りるっつーには多いが
666 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:33:46 ] >>645 struct使っても状況が良くなるとは思えないけど、 usingも慣れればそんなに悪くないよ。
667 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:27:18 ] >>664-665 わかりました。 アイコンが8個入ったファイルを作ることにします。
668 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:45:20 ] >>665 無い大きさで表示するときはどうなるの?
669 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:49:47 ] 小さいのを拡大するなり大きいのを縮小するなりするんだろ 96表示時は256のを縮小するらしいぞ
670 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 23:57:25 ] というか 256x256 は PNG 形式である必要があるはずなんだけど それ VS で作れたっけ? 駄目なら Vista 対応とか PNG 形式対応とかそんな感じのアイコン エディタ使わないといけないでふよたぶん。
671 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:28:41 ] >>670 PNGならmspaintでいいんじゃないか?
672 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:50:10 ] PNGそのものじゃなくて、icoファイルの中にPNG形式のを突っ込むのな
673 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 02:09:28 ] >>657 サンクス。やっぱり自分で保存しないと捨てられちゃうのね。
674 名前:デフォルトの名無しさん [2009/06/19(金) 03:39:28 ] 一つのボタンをクリックするごとに同じ場所に重ねてあるラベルを順々に最前面に表示させる方法を教えてください。 説明文を作ろうとしていて、ボタンを押すごとに説明文が次のものに切り替わるようにしたいです。
675 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 03:42:13 ] ラベルのText変更すりゃいいような気がするけど バインディングとか BringToFront
676 名前:デフォルトの名無しさん [2009/06/19(金) 04:12:17 ] >>675 ラベルを書き換えればいいんですね。 やってみます。
677 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:13:59 ] ソリューションエクスプローラで Form1csにForm1.Designer.csが付いてるようになってるけど、 自分で追加したClass1.csに他のソースファイルを付けるにはどうすればいいの? ドロップできないし、partialにしてもそうならないんですが
678 名前:デフォルトの名無しさん [2009/06/19(金) 05:29:13 ] コンボボックス内のアイテムを選択すると、指定したラベルが表示されるようにするにはどうしたらいでしょうか? コンボボックスはDropDownListで使います。
679 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:36:50 ] >>677 昔csprojファイルを直にいじったらできたような記憶がある たしかこれと同じようにすればよかったと思う <Compile Include="Form1.cs"> <SubType>Form</SubType> </Compile> <Compile Include="Form1.Designer.cs"> <DependentUpon>Form1.cs</DependentUpon> </Compile>
680 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:44:53 ] >>678 ラベルを配列かList<Label>にでも入れといて SelectedIndexChangedイベントが発生したら そのインデックスに対応するラベルを表示
681 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 05:58:23 ] >>679 <DependentUpon>で付けるみたいですね ありがとうございました
682 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:06:55 ] VS2008 SP1です。 INotifyPropertyChanged を実装したクラス「Sample」を ジェネリックの List<Sample> に2個ほど入れ、 DataGridView の DataSource に突っ込んだところ みごとにバインドされました。 しかし、コードでSampleクラスの値を変えても DataGridView のフォーカスのある行しか値が更新されません。 すべての行(この場合2行)が更新されるにはどうすればよろしいでしょうか?
683 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:08:12 ] >>682 のコードです。 class Sample : INotifyPropertyChanged { public Sample { } private bool _count; public bool Count { get { return _count; } } private DateTime _date; public DateTime Date { get { return _date; } } public void Update() { _count++; _date = DateTime.Now; if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs("Count")); PropertyChanged(this, new PropertyChangedEventArgs("Date")); } } #region INotifyPropertyChanged メンバ public event PropertyChangedEventHandler PropertyChanged; #endregion }
684 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:09:44 ] >>682 の実行コードです。 〜 // 2つほど入れる List<Sample> sampleList = new List<Sample>{ new Sample(), new Sample }; 〜 dataGridView1.DataSource = sampleList; 〜 // スレッドで定期的に更新する foreach (var item in sampleList) { item.Update(); }
685 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 09:56:41 ] IBindingListが必要なんでList<T>の代わりにBindingList<T>を あとスレッドでって言ってるけどInvoke/BeginInvokeは大丈夫か? データソースいじるときも同期が必要だぞ
686 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:35:28 ] >>685 BindingListに変更し、Invokeメソッドで実行してみましたが、 PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Count")); GUI上では DataGridView の現在選択中の行しか値は更新されませんでした orz
687 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:39:49 ] >>685 いえ、全部の行が更新されています! ありがとうございました!orz
688 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:42:53 ] どうでもいいがそのInvokeじゃないぞ Control.Invokeの方
689 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 10:53:33 ] >>688 手順としては 1.Sample クラスでプロパティの変更を感知 2.? 3.DataGridView または DataGridView の所属する Form で Control.Invoke(?) を呼び出す。 ということでしょうか?
690 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:01:42 ] Updateの呼び出しそのものをInvoke経由で バインディングされてるオブジェクトは扱いも慎重にしないとダメよ
691 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:16:33 ] C#でのスレッド間同期制御について教えて欲しいんだけど、先にソースを。 //C#での実装(失敗、デッドロックする) //※インデントに全角空白*2を使用 public class ThreadMain{ private EventWaitHandle lockObj; public ThreadMain(EventWaitHandle lockObj){ this.lockObj = lockObj; } public void run(){ lock(lockObj){ //ここには入れない Console.WriteLine("sub in sync"); lockObj.Set(); Console.WriteLine("sub out sync"); } } } public void test(){ EventWaitHandle lockObj = new EventWaitHandle(false, EventResetMode.AutoReset); ThreadMain tm = new ThreadMain(lockObj); Thread t = new Thread(tm.run); lock(lockObj){ t.Start(); Console.WriteLine("main in sync"); lockObj.WaitOne(); //ここで待機中の間だけlockObjを解放したい Console.WriteLine("main out sync"); } }
692 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:17:29 ] //javaでの実装(期待通りに動く) //※インデントに全角空白*2を使用 public class Test{ public static class ThreadMain implements Runnable{ private Object lockObj; public ThreadMain(Object lockObj){ this.lockObj = lockObj; } public void run(){ synchronized(lockObj){ System.out.println("sub in sync"); lockObj.notifyAll(); System.out.println("sub out sync"); } } } public static void main(String args[]) throws InterruptedException{ Object lockObj = new Object(); ThreadMain tm = new ThreadMain(lockObj); Thread t = new Thread(tm); synchronized(lockObj){ t.start(); System.out.println("main in sync"); lockObj.wait(); //待機中はlockObjのモニタは解放されている System.out.println("main out sync"); } } }
693 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:18:59 ] 上(>>691 )のプログラムで、 main in sync sub in sync sub out sync main out sync というシーケンスになるようにしたいんだけど、どうしたらいいだろう? 期待している動作は、メインスレッドがWaitOneに入るときlockObjのロックが解放されて、 サブスレッドがSet()して、さらにlock文から抜けた後、 mainがlockObjのロックを再獲得してWaitOneから復帰するようなイメージ。 Visual C# 2005 Express SP1 (.NET 2.0)
694 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:29:32 ] lockとEventWaitHandleは全然別物なんだからそりゃうまくいくわけないな lockはMonitorの糖衣構文だから、Monitor.WaitとMonitor.Pulseを使えば
695 名前:693 mailto:sage [2009/06/19(金) 11:29:40 ] あ、待機はスピンロックでなければ、EventWaitHandle,lock以外でも良いです
696 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:30:38 ] >>694 レスサンクス ちょっとやってみる
697 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:38:20 ] うほ出来た Monitorクラスはlock文用のEnterとExitしか無いと思い込んでた^q^ >>694 ありがとう (変更点) //EventWaitHandle lockObj Object lockObj //lockObj.Set(); Monitor.Pulse(lockObj); //lockObj.WaitOne(); Monitor.Wait(lockObj);
698 名前:デフォルトの名無しさん [2009/06/19(金) 13:30:18 ] VC++のCTreeCtrl(MFC) CTreeCtrl::GetEditControl に相当する処理を、 C#のTreeView で探しています(VS2005 .NET Framework 2)。 なんとかして、エディット コントロールのハンドルが欲しいんですが、 どうしたらいいか、わかる人おられませんか?
699 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:46:48 ] 道路標識みたいなアイコンのついたダイアログってどうやって出すんでしょう? フォームを自作しなくても、既製の部品があると読んだ覚えがあるんですが、 どうしても思い出せません。 こういうやつです。 ttp://f.hatena.ne.jp/images/fotolife/o/os0x/20080512/20080512223830.png
700 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:53:41 ] MessageBox.Show("text", "caption", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
701 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 14:54:07 ] MessageBoxIcon
702 名前:699 mailto:sage [2009/06/19(金) 15:03:01 ] ありがとうございます。助かりました。
703 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:10:51 ] INTもクラスなんだなー int x=new int(); x=12; ってやってもちゃんとできるね。
704 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:26:27 ] クラスじゃないです
705 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 16:58:00 ] とりあえずINTとIntとintは違う物なので きちんと書き分けないと話が通じなかったりするぞ
706 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:00:17 ] object i = 3; なんてこともできます。 実際はboxingでInt32に変換されてるだけですが。
707 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:04:58 ] Int32に変換? 「から」だろ?
708 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:11:03 ] class Program { static void Main(string[] args) { object i = 3; Console.WriteLine(i.GetType().FullName); } }
709 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:12:57 ] namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public void Func(ref int x){ x=10; } private void Form1_Load(object sender, EventArgs e) { int y; this.Func(ref y); } } } これコンパイルできない 引数に10を代入する関数Func作ったが this.Func(ref y)のyがグローバルとか意味輪からんことでてきてる どうすればなおせる?
710 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:15:32 ] エラー CS0165: 未割り当てのローカル変数 'y' が使用されました。
711 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:16:04 ] refじゃなくてout使っとけ それかyに初期値代入しとくか つかエラーメッセージぐらいちゃんと書け
712 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 17:45:54 ] 豆知識 ダイアログがアクティブな状態でCtrl+Cを押すと エラーメッセージがクリップボードに入るぞ
713 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 19:10:26 ] 常識だろjk
714 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 22:32:06 ] 練習として、例のごとくテキストエディタを作っているのですが、「切り取り」「コピー」「削除」の表示について質問です。 テキストが選択されている間のみ上記のメニューを選択できるようにしたいのですが、上手く表示されません。 具体的には、 TextBox内のテキストを選択している状態で編集メニューを開いても上記のメニューは選択できる状態にはならず、 右クリックでメニューを表示してから編集メニューを開くと上記のメニューが選択できる状態になります。 右クリックをした瞬間に何かを呼び出しているんでしょうか? ちょっとわかりにくいでしょうか・・ ご教授願います。
715 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:23:00 ] >>714 メニューを開かれるタイミングで調べるんじゃなくて、 TextBoxの選択が変わったときにメニューのプロパティを書き換えるんだ。
716 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 23:24:18 ] メニューってContextMenuStripなのかMenuStripなのか どっちにしろOpendイベントで判定すればいいと思うけど
717 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:06:17 ] string[] line = text.Split('\n'); string[] cell = line.Split('\t'); と書いたとき、 for (int i = 0; i < line.Length; i++) {textBox[i].Text = lineView[i];} みたいに行は書けるけど、[i]行目のcell[0]はなんて書けばいいのでしょうか?
718 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:08:21 ] >string[] line = text.Split('\n'); >string[] cell = line.Split('\t'); どうみてもエラーです
719 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:23:29 ] 列数が固定(widthとする)なら string[] cells = table.Split(new char[]{'\t','\n'},StringSplitOptions.None) ここでx列y行はcells[x+y*width]
720 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:53:38 ] なるほど。 cells[0] | cells[1] | cells[2] cells[3] | cells[4] | cells[5] と左から順番に設定するんですね! これはすごい。 サンクス!!!
721 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 01:58:09 ] あんまりアホなこと教えないであげてください
722 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:03:07 ] 微笑ましいじゃないか。
723 名前:714 mailto:sage [2009/06/20(土) 02:57:30 ] >>715 できました! ありがと〜 Opendイベントとやらも調べてみます
724 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 02:59:17 ] どういたしまして
725 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:09:50 ] スレチな質問なんですがどこで聞いたら良いのか分からないので ここで質問させてください。 Visual Studio 2008 StdのC#でGUIなアプリケーションを作成しているのですが、 ファイルを参照するボタンに画像を貼り付けたいと思います。 凝った画像ではなく、エクスプローラの「ファイルを開く」メニューに表示 されているようなアイコンで構わないのですが、どこかで配布されているの でしょうか? それとも皆さん毎回オリジナルの画像を作っているのですか?
726 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:18:13 ] 初心者スレなのでアホな質問にも回答するが、スレ違いはお断り
727 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:27:21 ] >>725 MDI親フォームのリソースファイルの画像を使うとか。
728 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:29:33 ] シェルアイコンに微妙なセンスのアイコンがいっぱいある。
729 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:34:12 ] >>726 すまんです。 >>727-728 Windowsのシステムアイコンを抜き出して使うと言うことでしょうか? アイコンの抜き出し方は知ってますが、やはりまずいですよね? ここで聞けというスレがあれば誘導していただけるとありがたいです・・・
730 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:36:04 ] スレ違いだってわかってるなら汎用質問スレいけよカス
731 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:39:24 ] c#とVB両方インスコしちゃったら ソリューションファイル開くときに VisualC#とVBどっちで開くか聞いてきてうざい VBけしたほうがいい?
732 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:45:03 ] >>731 >>726
733 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 03:57:11 ] >>725 インスコ先探せばVS2008ImageLibraryってのが多分どっかにある。無くても確かMSDNから落とせる。 >>731 .slnの関連付けを変えればいい。 まあ、無駄レス付けるくらいなら答え付けてもいいんじゃねってことで。 どこで聞いていいのか分らんなら汎用スレがある。次からこっち行ってね。 スレ立てるまでもない質問はここで pc12.2ch.net/test/read.cgi/tech/1240877154/
734 名前:727 mailto:sage [2009/06/20(土) 04:13:29 ] >>729 ソリューションの新しい項目を追加でMDI親フォームを追加すると アイコンついたボタンが最初からフォーム上にあるからその画像を使ったらって意味。 その画像の元はフォームのリソースファイルにある。
735 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 04:49:24 ] Visual Studio 2008 Part 17 pc12.2ch.net/test/read.cgi/tech/1245309571/ こっち行け
736 名前:デフォルトの名無しさん [2009/06/20(土) 06:11:38 ] >>730 お前もいい加減スルーを覚えろよクズ
737 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:19:20 ] VS2003しか知らんが確かアイコン集が入っていたはず。 Common7フォルダだったかな? 最近は付いてないのかな?
738 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 06:34:03 ] あるスレッドで設定した変数を他のスレッドでも使うにはどうしたらいいでしょうか? 具体的にはBackgroudWorkerで設定した変数をstaticの変数に入れたいのです 別のスレッドではstaticが共有されないみたいなので行き詰ってしまいました。お願いします
739 名前:デフォルトの名無しさん [2009/06/20(土) 06:45:42 ] silverlightでデータベース上に存在するバイナリファイルを呼び出してウェブ上で再生したいんですけど、どうすればいいのか分かりません。 誰かやり方or良いサイト知ってれば教えてください 英語でも構わないっす
740 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:07:50 ] >別のスレッドではstaticが共有されないみたい そんなわけがない。 もしくは何か勘違いしてる。
741 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:24:41 ] >>740 なにか言葉足らずだったかもしれません、すいません www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=37022&forum=7 ここに共有されないと載っていたので もう少しいろいろやってみます
742 名前:デフォルトの名無しさん [2009/06/20(土) 09:24:56 ] C#初心者です。 ConvertとかString.Formatとか、特にnewで作成してないのに 使用できるクラスのメソッドがありますが、自分でもそんなクラスを作りたいのですが どうすれば良いですか?
743 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:34:17 ] public int Method(int value){...} ↓ public static int Method(int value){...}
744 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:36:22 ] >>741 お、おまえは何を言っているのだ??
745 名前:デフォルトの名無しさん [2009/06/20(土) 09:42:21 ] 742 クラスがpublicでなかったようです。解決しました。
746 名前:デフォルトの名無しさん [2009/06/20(土) 09:45:00 ] >>743 ありがとうございます。メソッドをstaticにしてみます。
747 名前:738 mailto:sage [2009/06/20(土) 10:13:29 ] public class userData { static public int a; static public string b; } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { userData.a = 10; userData.b = "abc"; } private void button1_Click(object sender, EventArgs e) { backgroundWorker1.RunWorkerAsync(); MessageBox.Show("a : " + userData.a + ",b : " + userData.b); } わかりにくくてすいません こんな感じでaとbを表示させたいのですが、どこがいけないのでしょうか
748 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:19:36 ] >>747 backgroundWorker1のRunWorkerCompleted イベントを作って、 その中で MessageBox.Show() を叩けば幸せになれるお。
749 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:25:41 ] >>748 ありがとうございます 表示できましたが、このaとbをBackgroundWorker以外でも使いたいのですが、これだとだめですよね?
750 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:34:29 ] >>749 俺はそういうことをしないようにしてるから、大正解の方法が分らんw BackgroundWorkerの 「IsBusy プロパティが真の間は処理を待つ」とかかな?
751 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:35:57 ] >>750 そんなこと言ったらビジーループで待ってしまうじゃないか
752 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:39:25 ] >>750 の補足 というか、BackgroundWorkerの処理完了後の動作はRunWorkerCompleted内に書けば全て解決。 button1は別スレッドを始動させるためだけのボタンと考えればいいんじゃないかな >>751 本末転倒だなorzwww
753 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:55:32 ] そもそもバックグラウンドで処理するってのがどういうことか全然分かってないのかな?
754 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:06:57 ] 順番に処理したいんなら普通に関数として呼ぶよな
755 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:07:11 ] 一定時間ごとに前のBackgroundWorkerで設定したa,bを使ってまた処理させるみたいな感じなんですが、ちょっとやってみます >>753 別スレッドで処理するってことくらいしかわかりません
756 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:11:18 ] >>754 結構時間がかかる処理なのでBackgroundWorkerでやってます
757 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:18:25 ] お前のレベルだとちょっと危ないな。 共有データの更新タイミングの同期とか、 何も考えてないってか気をつけなきゃならないって事も 何も分かってないだろ?
758 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:22:21 ] 危ないだろうけど、でも必要ならやるしかない。 BackgroundWorkerの記事はネット上にあるはずだから、 自分で調べてどういうところに気をつければいいか勉強すればいいじゃない。
759 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:37:02 ] >>756 どんなに時間がかかろうと、結果が出るまで次に進めなくて、 ただ待ってるだけならバックグラウンドにする意味ナッシング。
760 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:50:14 ] >>747 public static volatile int a; public static volatile int b; a, b に volatile をつけると、あるスレッドで更新すれば別のスレッドに更新が伝わるようになる。 逆にvolatileのついていない変数では、あるスレッドで変更しても、その変更が別のスレッドにすぐに伝わるわけではない。
761 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:05:02 ] ここにあるはずのサンプルプログラムがほしいのですが、 ページの中に「ソースの表示」とか「ダウンロード」ボタンが見あたりません。 どうやって入手すればいいんでしょう? msdn.microsoft.com/ja-jp/library/ka7h9fze.aspx
762 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:23:23 ] >>759 進めなくても、キャンセルくらいはできて欲しい あと、処理中に描画が止まる糞設計もやめて欲しい
763 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:34:14 ] >>760 適当なこと書くな。 だいたいこの場合だとvolatileとかいう問題じゃないだろ。
764 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:35:41 ] >>761 なんでここに質問するの?バカなの?死ぬの?
765 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:47:08 ] >>763 知らないならだまってればいいのに。
766 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:50:09 ] >>726 だまってろよw
767 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:50:42 ] 単一のプロジェクト内で、特定の関数とかメソッドだけ バックグラウンドにするメリットってあるの? もちろん結果が出るまで待つ場合。 とりあえずバックグラウンドにするだけじゃ、 プロセスの優先順位は変わらないよね?
768 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 12:59:05 ] 今回のはvolatileとかいう問題じゃなくて、 aとbを同時に更新(あたかも)する必要がないか、 更新タイミングの同期はどうするのかって方向であって、 この例でvolatile云々言うのは大抵的外れ。
769 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:05:28 ] だいたい、実質的にvolatileが要るのはもうちょっと状況が限られるよ。 必要な場合はあるけど、volatileつけないと別スレッドから見えないかっていうとそんなことはない。 まあ言い方に色々誤弊はあるけどね。
770 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:09:48 ] >>761 ローカルのヘルプからたどればいいのに・・・ それにそこのリンクからもダウンロードできるじゃないか そこのリンク→方法 : サンプルを表示およびダウンロードする→Microsoft Download Center にアクセスします。
771 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:11:03 ] >>767 応答なしってタイトルバーに出たりするとユーザは不安になるもんだ ちっとも経過を報告しないプログレスバーが行ったり来たりしてる方がマシ キャンセルもできればなお良し
772 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:29:09 ] CLR2.0では暗黙に全ての書き込みがvolatile書き込みな件
773 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:44:36 ] double-checked lockingが使えるメモリモデルになってるって話か? それ以上の意味なら、ソースが欲しい
774 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:46:03 ] 初心者ネタじゃないからよそに行け
775 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:53:56 ] C#ではクラス名のあとに.をつけたら いろいろ候補でるよね Button1.って入力したら ClickとかTopとかずらずらって。 あの候補のことなんていうんだっけ?
776 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 21:56:25 ] 入力候補 インテリセンスの機能だな。
777 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 23:55:37 ] VS2008EEってセットアッププロジェクト作成機能ないの?
778 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 00:47:07 ] プロジェクトをすべて保存にしたら フォルダが binとobjにわかれていて それぞれにdebug releaseの二つに分かれてて 全部で4つの同じexeがあるんだが なんでこんなことしてんの? 20MBのexeを4つも作られたら容量圧迫してかなわん。 bin/obj debug release どのexeが正しいexeなの?
779 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 00:52:51 ] binが出力結果 objは中間ファイル置き場 DebugとReleaseは言わずもがな
780 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 01:53:10 ] 20MBもいくほうがおかしい。 容量圧迫ってどんだけきつきつでやってんだよ。
781 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:25:53 ] exeが20MBって時点で、C#じゃなくてMFCアプリかなんかじゃね?
782 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:53:12 ] ベクタライズ最適化という言い方は中途半端だったかもしれない。 gccにおけるauto-vectorazationのことで、一般的には自動ベクトル化と訳されているようだ。 gcc.gnu.org/projects/tree-ssa/vectorization.html 本質的にはループを展開して並列実行させることだからSIMDが無くても 複数のレジスタに分ける方法だってあるわけだが、 SIMDに対応してるならそれに越したことは無いだろうな。
783 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 03:55:19 ] 誤爆した。スマン。首吊ってくる。
784 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 09:27:29 ] WebBrowserコントロールのDocumentTextプロパティでWebページを表示させているのですが 読み込むときに鳴るカチッという音を消したい場合はどうしたらいいでしょうか
785 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 09:37:05 ] 消せないっぽい。
786 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:30:38 ] まじか。どもです
787 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:55:02 ] OpenNew して、Document.Write すればいいらしい。 試してないからよくわからんが。
788 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 11:41:24 ] >>787 そうするとページのURLが存在しないから、そのページはよくても ほかのページにジャンプするときはフルパスのリンクが必要だな。 で、そのときにカチッと音が出る。
789 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 11:58:52 ] >>787 さんの方法でできました。ありがとうございました
790 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:12:23 ] stringの扱いが分りません。 変更できないらしいことは分ったんですが、 文字列の受け方がよくわかりません。 こういう場合は、どうすればいいんですか >< sting param; if ( xxxx ) param = "THEN" else param = "ELSE"
791 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:13:45 ] それは変更してないじゃない。
792 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:17:06 ] それだけだと普通にコードとしても意図としても成立してるが
793 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:24:08 ] >>790 それでおk。 あとは string param = (xxx) ? "THEN" : "ELSE"; とも書ける。
794 名前:790 mailto:sage [2009/06/21(日) 15:56:06 ] レスありがとう よくわからないから、今度はこうしてみたんですけど、 whileの外で使うと値が入ってないんです。>< main(){ char [] param = null; while( xxxx ){ if ( xxxx ) then param = THENストリング.ToCharArray(); else param = ELSEストリング.ToCharArray(); } Console.WriteLine("Paramの中身", param); }
795 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 15:58:32 ] まずはデバッガの使い方覚えたほうがいい。
796 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 16:01:38 ] >>795 に同意 794は多分ループ内に入ってないんだろうなぁ
797 名前:デフォルトの名無しさん [2009/06/21(日) 16:03:20 ] 中途半端に隠さずに貼るなら全部貼れ そしてどういう結果を期待してるのか書け
798 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:24:23 ] > if ( xxxx ) then thenって?
799 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:44:45 ] webbrowserのリンクをクリックしたらデフォルトのブラウザで開かせたいのですが red-treasure.com/report/?p=100 上のサイトにあるようなややこしいことしないとできませんか?
800 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:48:55 ] この程度でややこしいってどんだけw
801 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:49:03 ] 何がどうややこしいのやら
802 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 17:59:14 ] >>799 「デフォルトのブラウザーが何か」ってのはOS上のユーザー設定を参照しないといけないことだからなぁ。 そこのサイトのコードだけでできるってのは、十分シンプルだと思う。
803 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:36:32 ] BeforeNavigate とかではダメなんか?
804 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:43:30 ] すでに自分を起動していたら、古いほうのウィンドウを閉じて新しいウィンドウで処理する、というのはどう書くものですか? Processで自分の名前を取得して終了メッセージを送ったら、(当然のように)自分も終了してしまいました…。 あたりまえか。 多重起動を禁止するのではなく、行いたいです。 アドバイスお願いします。
805 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 20:50:40 ] 基本的な考え方は多重起動禁止と同じだけどね Mutex の代わりに EventWaitHandle 使う 新しいプロセスはイベント通知するだけでその後は普通に進める 前のプロセスはイベントを受け取ったら終了処理
806 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:13:06 ] 俺はMutex取得できた奴がサーバとしてSetPropでWHDLをプロパティ設定。 取得できなかった奴はクライアントとしてGetPropで見つけたWHDLに WM_COPYDATAで起動パラメータの情報を送信して終了。 サーバはWM_COPYDATAで受け取った情報で処理。 って作ってた。1.1だったからなぁ。
807 名前:806 mailto:sage [2009/06/21(日) 21:17:10 ] あ、古いほうを終了か。間違えた。すまん。
808 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:17:33 ] 古い方を閉じるならもう少し複雑になる。 同時に何個も起動したときにおかしなことにならないようにしないといけないから。
809 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:25:25 ] WHDL ってなんだよ・・・ せめて hwnd とかだろ
810 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:27:17 ] 正直、古い方を閉じる理由ってなんなんだろ?
811 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:29:23 ] ごめん、変数名をなんでかそう書いてたんで、そのまま追いかけて読んで 書いちゃったw >>WHDL ・・・マジ、なんでWHDLとか書いてたんだ?自分。
812 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:42:07 ] 古い方を閉じるなんてめちゃくちゃなUXだな
813 名前:デフォルトの名無しさん [2009/06/21(日) 22:02:33 ] .NET や Java などでクラス複製のインターフェースの ICloneable がありますが ICloneable に対するコピーの実装って 慣例的に シャロウコピー と ディープコピー のどっちなんでしょうか? それとも特に決まってないのでしょうか? よろしくお願いします
814 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:12:56 ] 特に決まってないな。 どっちかっていうとシャロウコピーな感じもある。
815 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:16:13 ] てゆーかICloneableってまともに機能している場面って見たことねーんだが
816 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:22:20 ] >>813 Javaは知らんが.NETでは特に決まってない。 Cloneは同じ内容だけど別物として振る舞うようなクローンを返せば、なんでもいい。 別にメンバが同じ値であったりそのコピーである必要はない。
817 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 23:44:16 ] >>805 EventWaitHandleで、 dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=23906&rev=1&no=0&KLOG=2 のページを見つけて、そっくりおなじように実装してみたのですが、古い方は閉じるんだけど、新しいウィンドウも開かない状況です。 う〜む。なにがいけないんでしょう? >>810 ビューアーのアプリケーションで、表示を自動/手動でリフレッシュしたいのです。外部から手動でリフレッシュするのには、新しいウィンドウを開くのがいちばん楽かと。 >>812 そ…そうかな…。 こういう場合って、どんなふうに実装します? ところでUXってなに? User eXperience?
818 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 23:48:23 ] >>817 そのウィンドウに更新ボタンを付けるのが一番素直な実装だと思うんだが?
819 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:06:00 ] >>814-816 レスどうもです。 ICloneable について触れてるサイトを何度か見かけたのですが、 どれも MemberwiseClone をそのまま返却する実装をしてたので、 ちょいと気になってました。 ありがとうございました
820 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:32:00 ] 自分も更新ボタンがいいと思う。更新(R)、最新の情報に更新(R)・・・と一般的。 二つ目のアプリ実行っていったら、普通はMDIにドキュメント追加とかタブ追加 だから選択ミス。 いつも使ってる(だろう)アプリ見たら分かりそうだけどなぁ。 秀丸、サクラエディタ、VS、IE、Firefox、WinMerge・・・
821 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:53:49 ] >>818 、820 なるほど。更新ボタンですか…。 更新ボタンをつけたとして、外部のアプリケーションから手動で押す場合には、どういうメッセージを送ればよいんでしょう? 具体的にはコマンドラインから指示したいのです。 サーバー的なシステムで、アプリケーションの動いているマシンには、キーボードもポインティングデバイスもない(操作しにくい)ためです。 コマンドラインから開いているアプリケーションにメッセージを送ることってできるんですか? これまでは、コマンドラインからおなじアプリケーションを実行してそれにメッセージを送信させようとしてはまってました。 「コマンドラインから」という条件は必須です。 メッセージを送るためのアプリケーションをもうひとつ作るのも考えたのですが、それならおなじアプリケーションで多重起動を監視するほうがよいかな、と考えて現在に至っています。
822 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:59:12 ] >>821 質問する時は条件を後出しするなよ…
823 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:00:12 ] >>821 まて、それでどうやって二番目のプロセスを起動しようとしている・・・? どうやって コ マ ン ド ラ イ ン か ら 打 ち 込 む 気 だ。 ネット越しならポート開けて待ってて、誰かアクセスしてきたら更新しろ。
824 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:01:45 ] >>821 コントロールされる側も自作アプリなんだから、 外部(ネットやシリアルポートなど)から操作できるように作っとけばいいじゃん。 適当にポート開けとくとかして。
825 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:04:50 ] ボタン押すだけならハンドル取得してクリックイベントを送るだけ
826 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:08:15 ] 相手がWindowsマシンなのにマウスも何もついてなくて、 端末がコマンドラインオンリーてのもずいぶん時代錯誤なシステムだな 両方ともWindowsにしてリモートデスクトップでも使えば一発で解決する問題のような そもそもどうやってログインしてるんだ? 電源が落ちたらどうするんだ
827 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 01:51:47 ] >>826 っ MONO
828 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 02:09:48 ] >>822 すみません。 >>823 、824 ポート開けるなんてのは初心者なもので、まだ書けません…。 もうすこし勉強します。 >>825 時代錯誤かどうかはさておき、現実にそういうシステムなので。 ちなみに、次のようにして解決しました。 コマンドラインから起動するときに、 taskkill /im Program.exe Program.exe としました。 EventWaitHandleの使い方を覚えられなかったのは残念…。
829 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 05:46:05 ] プログラムいくつか作っていくと、流用できるクラスが増えて 次のソフト作るの楽になるんだろうなと思ってやってきたけど 結局毎回一から全部作るんだよね ファイル入出力関連何度作ったことか やっぱ最初はこんなもの?
830 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 05:50:56 ] 汎用性を持たせられてないからだな
831 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 06:09:35 ] 汎用性ってすごく難しいよね 細かい機能使えるようにすると、元々あるクラス使えってことになるし 簡単に使えるクラスにすると、他のプログラムだと機能がたりなかったり そもそも何をしているクラスなのかわからなかったりで
832 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:07:47 ] 16進数 1FF は 10進数 511なわけですが プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが こういうのを10進数511と変換するうまいやり方はないでしょうか?
833 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:10:02 ] char[]に変換して、foreachでstringに変換して連結。
834 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:37:32 ] byte[]に入れて、BitConverter.ToUInt16()
835 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:02:05 ] >>833 >>834 それだと逆順になったままなんですが FF01を511にする方法が知りたいんです
836 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:12:59 ] 良く分からんが、用意されてるメソッドで都合悪いなら自作すれば?
837 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:14:11 ] それがわからないから聞いているんだけど?
838 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:19:17 ] >>835 それ、普通に short で読み込んだら 511 にならない? Mono か何かでビッグエンディアンな CPU 上で実行してたりする?
839 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:24:03 ] 文字列の "FF01" とか?
840 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:32:04 ] >>835 普通逆順になるわけがないんだが、 お前いったいどんなプログラムで確認してる?
841 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:42:32 ] >>838 なるわけないし、ushortじゃないと範囲超える
842 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:46:43 ] >>840 どういう意味? あるアプリをバイナリ編集したいんだけど 数値の部分だけがFF01と反転している そのアプリのバイナリデータを取り込んで0x01FFつまり511とテキストボックスなんかに表示したいんだけど
843 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:47:01 ] >ushortじゃないと範囲超える くわしく
844 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:50:14 ] >>843 short=0xFF01; でやればわかる
845 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:53:40 ] で、同じようにDWORDの数値も本来の数値に変換したいんだけど 簡単な方法ありますか?
846 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:54:44 ] >>844 何言ってんだお前は。 今の値はそうじゃないだろw
847 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:55:38 ] >>842 byte[] data = {0xFF, 0x01}; Console.WriteLine(BitConverter.ToInt16(data, 0)); 512って出るだろ? 出たならお前の読み込むプログラムの方がおかしいってこった。
848 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 09:57:40 ] ちがう511のまちがい。 >>845 これで分かるだろ。
849 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:04:45 ] >>847 おおおおおおおおおすげーーーー なんで逆さまなのに511って出るんだ・・・
850 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:06:28 ] >>846 今の値がどうとかに関係なくWORDを読み込んで数値に変換するわけなんだからshortじゃだめでしょ
851 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:09:21 ] >>834 結局これだったわけねww ありがとう
852 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:15:19 ] 範囲外とか言い出すやつが何言っても無駄
853 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:17:55 ] >>850 そもそも今の会話からは符号付きかありかなんて読み取れないのに、 いきなり、>>841 とかいいだすお前がおかしいわ。
854 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:20:37 ] こういうのは「バイトオーダー」とかのキーワードを知ってればすぐ答が見つかるんだよな それを知らない時点で敗北決定
855 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:21:16 ] >>832 >プログラムのバイナリデータではFF01という風に逆順に並んでいるんですが ここでちゃんとWORDデータを変換すると言っているんだから できるひとは>>834 がすぐ出るでしょ WORDデータに対してshort持ってきちゃうなんて世間知らずもいいとこだ
856 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:22:42 ] なん…だと…
857 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:24:15 ] >ここでちゃんとWORDデータを変換すると言っているんだから どこだよっ >>832 をどう見ても符号付きか否かは不明。
858 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:26:57 ] どうかな。
859 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:30:36 ] バイナリデータ2バイト(FF01)=WORD=ushort
860 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:32:04 ] そもそも0xFF01はshortに収まらない 論破
861 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:37:24 ] >>831 それはまだ蓄積や経験が足りない。わからなくなるのは管理が悪い。 名前の付け方に統一ルールを作り、長くなってもいいからわかりやすさを最優先に考える。 使い方をソースファイルの頭などにちゃんと書いておく。 過去の自分は他人。他人が見て使用法が理解できないソースは未来の自分にも理解できない。 「いちいち書くのがめんどくさい」「書かなくてもわかってる、覚えてる」は禁句。 まあ、35歳ぐらいになれば記憶力も衰えてくるし、10年以上の蓄積ができてるはずだから 身にしみてわかるようになるよ。 大多数の人間は経験から学ぶ愚者だからね。
862 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:42:49 ] >>860 君おもしろいね
863 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:43:18 ] 大多数の回答者は本来のデータが0x01FFのリトルインディアンだと気づいているのに 見たまま0xFF01と解釈してるアホがいる バイナリファイルをバイナリエディタで開いてみたことないんだろうな
864 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:49:20 ] >>863 リトルインディアン?アメリカの子供に聞かせる歌でそんなのあったな バイナリから取り込むわけだから、元データがOxFFFFの場合もあるかもしれないと 想定して作らないとだめでしょ?何で符号無しと決め付けるわけ? 思い込みは危険だよ
865 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:52:01 ] リトルエンディアン 【little endian】 j-ken.com/category/all/data/637100/
866 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 10:57:27 ] 符号無しと決めつけてるのはushortじゃなきゃダメと主張してる人だな。 今の質問だとどっちか分からないから、shortではなくushortにしなきゃならない ってのは正しいかどうか確証はない。 shortじゃなきゃならない可能性もあるんだから。 符号に気をつけろだけなら異論はないが。
867 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:03:21 ] >>859 その解釈が、件のデータが符号付きか符号なしかという問題に対して何か意味を持つとは思えないな。
868 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:05:12 ] 何でそんなに符号に拘るの?そもそも符号って何よ・・・・ ushortじゃだめな理由なんてあるの?
869 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:16:18 ] 今北産業
870 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:18:20 ] >>868 同じバイナリで表現される整数値の意味が変わるからだ。 知らないならC言語の初級からやりなおせ。
871 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:28:18 ] >>870 なるほどそういうことか、難しいな
872 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:29:40 ] C言語は関係ないよ。
873 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:37:59 ] >>872 アホ
874 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:46:45 ] >>869 符号がどうとか 聞かれてもいないことに答えようとしている おせっかいがたくさん
875 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:51:34 ] なんでもこういう事言って満足してるアホがいるが、 普通に質問への答えに関わる事として重要なことだってのも分からんのか、 単に何か言いたいだけなのか、何なんだろうな。
876 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:55:46 ] ArrayListあるいは配列の中に入っているobjectを、 ToStringかけながらカンマ区切りで連結するのってどうやるんだろう? できれば区切り文字はあとから変更できる形が望ましい。 .NET 3.5以降ならLinq付随のジェネリックテンプレートが使えるんだけど、 サポートOS(2000以降)の関係で.NET 2.0でお願いします。
877 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 11:58:59 ] String配列生成 forでそれぞれToStringしながら配列に入れていく String.Join
878 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:01:56 ] ConvertAllだったかとString.Joinの組み合わせで。 あ、ConvertAllは配列にしてからじゃないとダメだったかな…
879 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:17:42 ] >>877 なるほど……。そんな感じでやってみようかと思ったらStringBuilderを見つけて、 そっちで書いてみたら簡単だったのでコード片を載せておく。 IronPython.Runtime.List python_result; var builder = new StringBuilder(); foreach(var e in python_result) { builder.Append(","+ e.ToString()); } Console.WriteLine(builder.ToString().Substring(1)); >>878 対象がIronPython.Runtime.ListなんでConvertAllは使えないっぽいね……。
880 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 12:47:10 ] パイソンは知らないんだが、ToArrayはないのかな? ToArrayしてConvertAllしてJoinに渡す。 ってまあ別にベタで書いても全然構わないんだけど。
881 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:00:37 ] IEnumeratorは返してくれるんだけど、ToArrayは無いのよね。 枯れたライブラリならともかく、 こんなホットなもの相手に中のコードはいじりたくない。 C#は巨大な.NETクラスライブラリの関係で 同じことをやるのに方法がたくさんあるから、最適な方法を探すのが大変ですね。
882 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 13:05:47 ] Listって名前なのにIEnumerableのみかよwww ……XmlNodeListもそうなんだよな
883 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:31:14 ] 提示された情報だけでは符号付きか符号無しか判断できないし 別に型が確定しなくても今回の質問には答えられる。 ちょっと注意書きを入れれば済むことだから両方書けばいいだけ。 BitConverter.ToUInt16() 符号無し BitConverter.ToInt16() 符号あり
884 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:35:02 ] DataGridViewの一番左の項目に1,2,3と番号振りたいんだけどどうすればいいですか? DataGridView.Rows[].Cells[0]のことではないです。
885 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:51:39 ] >>884 DataGridView.CellPaintingで
886 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 15:54:05 ] すいませんこれでいけました DataGridView1.Rows[0].HeaderCell.Value が、なぜか、マス目でいうと上から3つ目のところに表示されます 上から3つ目のマスが最初の行ということですか? だとしたら、その上の行はなんなのか?あとインデックスって-1になるということ? どうもよくわからない
887 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:00:27 ] ハァ? コーディングミスだろ。 www.dotup.org/uploda/www.dotup.org158297.png
888 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:08:24 ] dataGridView1.ColumnCount = 6; this.dataGridView1.Rows[0].HeaderCell.Value = "0"; Bthis.dataGridView1.Rows.Add("1","2","3","4","5","6"); やってるのはこれだけなんですが、行のヘッダは3マス目に0が入り Bのデータはなぜか2マス目の行にデータが収まります どうしてなんでしょうか?
889 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:24:38 ] 試しに新規プロジェクト作ってDataGridView貼り付けて そのコードだけを書いたやつ実行してみなよ。
890 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:25:07 ] >>888 人がわざわざ正しいやり方を示してくれているのに謝意も述べず、 自分勝手なやり方をしてそれがどういう結果をもたらすのか 自分で考えずに人に質問するような態度で、 答えを教えてもらえると思っているのか? ちなみに887≠オレ
891 名前:887 mailto:sage [2009/06/22(月) 16:26:25 ] 初心者スレの割にキビシイっすね
892 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 16:41:56 ] 愛の鞭です
893 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 17:36:29 ] 飴ちゃんちょうだい
894 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:19:42 ] バイトオーダー嫌って文字列で送った俺は勝ち組。
895 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:29:49 ] 数が少なく整数のみならそれが勝ちだね
896 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:01:33 ] エンコードが違って文字化け
897 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:36:57 ] コード以外の文字列はBASE64ヽ(´▽`)ノ検索無くてよかったよかった。
898 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:45:53 ] そんな私はwebで公開
899 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:28:34 ] byte[]に格納したバイナリデータをascii文字列にするにはどうすればいいですか?
900 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:33:02 ] Convert.ToBase64Stringが手軽で鼻血が出る
901 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:33:06 ] どんなバイナリをどんな文字列にしたいのさ
902 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:38:03 ] 31 30 30 25→100% みたいな感じです バイナリエディタのようなものを作ろうとしているので stirlingは左バイナリデータで右側にShift-Jis, ASCIIなどを表示してますよね? そういう感じのものを作りたい
903 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 03:48:11 ] charにキャスト
904 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 04:01:56 ] Encoding
905 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 04:04:34 ] >>899 dobon.net/vb/dotnet/string/getencoding.html
906 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 05:36:19 ] >>900 >>901 >>903 >>904 >>905 試してみますありがとう
907 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:47:01 ] なぜかBio100%を思い出した
908 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 10:02:41 ] どこからの連想か全く分からないが懐かしいな>Bio_100%
909 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:11:53 ] 俺がバイナリエディタを毎日のように使っていた時代と Bio_100%の全盛期が重なってね。で、>>902 から連想した。 あの頃はアセンブラが必須科目だったし、バイナリのデータ構造なんて 知ってて当たり前だった。ちょっと上の方で揉めてエンディアンの話とか。
910 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:16:26 ] >>909 > 知ってて当たり前だった。 の割にはあまり刊行物では取り上げられなかったけどな。
911 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:21:59 ] >>910 C/C++の入門書ならほぼ間違いなく取り上げてる話題なんだが、どうよ。
912 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:23:56 ] >>911 悪い、勘違いした。 バイナリの構造って、たとえばPEヘッダとかそういうのだと思った。
913 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:31:43 ] また話がそれかかってるので燃料投下する。 C#で作ったプログラムで他のモジュールを読み込む場合、 モジュールをサブディレクトリに置いた場合に アプリケーション設定ファイル(*.exe.config)に <probing privatePath="libs" /> といった形で検索パスを記入するが、他の方法はどういったものが挙げられるだろうか。 いいところ、悪いところなど教えてくれると助かる。
914 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:52:31 ] >>913 API
915 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 14:05:15 ] ttp://www.atmarkit.co.jp/fdotnet/technology/idnfw11_index/index.html を踏まえた上での話?
916 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 15:09:07 ] 確かにPEヘッダは資料が少なくて苦労した
917 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 15:18:16 ] そういうのって、Linkers & Loadersが出るまでは、断片的な情報しか 手に入らなかったような気がするけど。
918 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:58:25 ] 漠然とした質問ですが、 アセンブリ情報のGUIDってなんですか? なんのためにあるんでしょう。
919 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:23:06 ] 厳密名を定義するため
920 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:47:13 ] private void button1_Click(object sender, EventArgs e) { webBrowser1.Url = textBox1.Text; } エラー 1 型 'string' を型 'System.Uri' に暗黙的に変換できません。 webBrouserのURLプロパティに文字列を渡したいのですがどうすればできますか?
921 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:49:35 ] できません
922 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:52:30 ] string型をUri型に変換するメソッドを使うよ webBrowser1.Url = New Uri(textBox1.Text);
923 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:01:04 ] >>919 何さらっと嘘書いてんだっ
924 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:11:56 ] webBrowser1.Navigateでできました。 かなり前に使ったときは別の方法を取ったのですが… もうひとつ質問なのですがJaneの板一覧とスレ欄の間にある移動可能な敷居?はなんという名前でしょうか?
925 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:15:12 ] JaneはWinFormじゃないから同列には論じられないけどな .NET 2.0のWinFormならSplitContainer
926 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 19:18:09 ] >>925 ありがとう
927 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 23:35:14 ] 3週間経たずに埋まってしまいそうだな
928 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:33:30 ] LINQでfromが複数ある場合の挙動ってどうなるんでしょう。 情報を調べても見つけれず、実際の動作調べてはみたものの、 状況次第で動作が変わっているようなのでちょっとキモチワルイです。 var src = { "Hoge", "Hage", "Huge" }; var dist1 = from p in src from q in src // pから取得した値以外をqの情報源にすると... select new { P=p, Q=q }; // {Hoge,Hage,Huge}x{Hoge,Hage,Huge} 全組み合わせ9通りに展開される var dist2 = from p in src from q in p // pから取得した値をqの情報源にすると... select q; // 全pの中の全qの数だけ展開される。つまりH,o,g,e,H,a,g,e,H,u,g,eの12個 // {H,o,g,e,H,a,g,e,H,u,g,e} x {Hoge,Hage,Huge}の全組み合わせ36通りにはならない
929 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:46:24 ] それぞれfrom...inの代わりにforeachで列挙してみれば分かると思うよ
930 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:48:02 ] >>929 あぁ、なるほど、納得です。ありがとうございます。
931 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 03:31:23 ] メソッド構文で書くとこう var r1 = src.SelectMany(_ => src, (p, q) => new { p, q }); var r2 = src.SelectMany(p => p); こちらのほうが実際の動作イメージはつかみやすいと思う。
932 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 04:32:33 ] 会社でWindows 2000の縛りがあって いつまで経っても.NET 3.0〜3.5の世界に踏み込めないオレは Linqなどグッジョブなテクノロジーがうらやましいぜ!
933 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:32:51 ] こんな時間に起きている人ってプログラマーじゃないよね? ホビーグラマーだよね?
934 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:33:59 ] いつも5時に起きて23時に寝ていますよ
935 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:35:48 ] そんな健康的なプログラマーがいるのか
936 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:39:57 ] 個人事業主ですが
937 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 05:56:36 ] >>936 雇ってください。年収200万で何でもします
938 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:02:42 ] ふらっとC#プログラマ始めました(初心者用) Part1
939 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:28:20 ] >>937 個人投資家ですが、ほんとうに200万でいいですか?
940 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:34:06 ] 939はC#プログラマ(初心者)兼、個人付きメイドをゲットした。
941 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:36:54 ] メイド服も着れと言われれば着ます。男ですけど。 子供の時は女の子に間違われていたのでカツラも用意していただければたぶん・・・ プログラミングは最近始めたので余りお役にいは立てません
942 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:43:12 ] 住民税+来年度の予定納税で 250万を超えることになって、 すでに死にかけですよ・・・orz
943 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 06:45:30 ] 金融から200マン借りてる俺よりマシ
944 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:25:24 ] クラスは出来るだけ簡略化して多く作った方がいいとよく言われていますが そうなんですか? メソッドみたいな短い命令文をクラスにして大量に作るって感じでしょうか?
945 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 07:32:49 ] >>944 そうではなく、情報同士の依存性をなるべく減らすべき、ということ。 そして情報同士の関係性を形作る設計は、デザインパターンと呼ばれてカタログ化されている。 もっとも、.NET クラスライブラリみたいな巨大なツールセットが最初からあるから、 そもそもそのような複雑なことを考えるまでも無くかなりのことができてしまうわけだが。
946 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:31:18 ] >>944 問題は大きさとか数じゃなくて、ちゃん整理されているかどうかだよ。 どちらかと言えば簡略化すべきはクラスじゃなくてメソッドだな。 単純で確実に動くメソッドは再利用もしやすい。
947 名前:デフォルトの名無しさん [2009/06/24(水) 11:42:44 ] Linqについてうまいことまとまってるサイトや書籍はないですか? 概論や入門レベルの情報はたくさん見つかるんですが、応用というか 「こういう事もできますよ」といった感じの
948 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:43:38 ] >>945 >>946 なんか奥が深そうですね 話は変わるけどプログラムする人は頭良さそうだけど よくテレビでやってる能力テスト(知識を必要とするクイズとかじゃなくて)などはいい点取れるの? 関連のある図形を選びなさいとかの問題だとすぐ解けそうだね
949 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:48:16 ] 気のせいだ
950 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:57:53 ] 昔IBMのプログラマー適性検査みたいなの受けたが まさにその図形を選んだりする、子供の時やった知能テストみたいなやつだったな。
951 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:10:54 ] すいませんC#で作ったソフトは、別途ランタイムが必要ですか?
952 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:18:43 ] >>951 いるいる VISTA以降ならいらない
953 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:28:46 ] 将来 .NetFrameWork6.7b以降が必要 なんてプログラムがでてきても Vistaなら・・・Vistaならなんとかしてくれる!
954 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:30:05 ] >>952−953 ご丁寧にありがとうございます Cの勉強で頑張ってみたいと思います
955 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:30:24 ] byte[] data=new byte[5000]; BitConverter.ToInt16(data,0); これでバイナリデータを数値に変換できたんですけど data[6]〜data[7] だけを数値にしたい場合良い方法はないでしょうか? 必要なだけ空の配列に代入しながらするのは大変なのです こんな感じでかなりの数があるので data[8]〜data[10] data[200]〜data[204] data[1200]〜data[1204] 今はこんな感じで代入してます num[0] = data[0x80]; num[1] = data[0x81];
956 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:32:54 ] >>955 同じような処理は関数化すればいいでそ
957 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:35:22 ] BitConverter.ToInt16(data, 6); BitConverter.ToInt16(data, 8); BitConverter.ToInt16(data, 200); BitConverter.ToInt16(data, 1200);
958 名前:デフォルトの名無しさん [2009/06/24(水) 12:36:17 ] Bufferクラス
959 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:36:23 ] >>952 ウソ言うなやボケ。 XPであっても、VISTAであっても、7であってもランタイムは必要。 VISTAには2.0と3.0のランタイムがすでに入っているが1.1や3.5,4.0のランタイムは含まれていないので 別途インストールしないとだめ。
960 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 12:41:53 ] >>956 private byte[] byteSpliter(byte[] data, int startIdx , int length) なるほど、こんな感じかな? >>957 これでいけましたw それ以降全部数字に変換されると思ってました ありがとうございます
961 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:02:51 ] 職業プログラマーの適性は協調性があること、 コミュニケーションができること。 あとは腰痛などの持病がないこと。
962 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:05:26 ] プログラマは協調性が無く、女にモテなさそうだから就職しなかった
963 名前:デフォルトの名無しさん [2009/06/24(水) 13:11:25 ] 職業の性質上、元々問題がある奴が多いからそんな当たり前のことが言われてるだけだろ
964 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:15:02 ] 未経験でプログラミングのお仕事がやりたいんですけどどのスレで助言を頂けますか?
965 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:15:30 ] 助言を与える服がない
966 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:04:14 ] うちはプログラマの1/4はバイトからスタート。 2年ぐらいやってもらって見込みがあれば社員にスカウト。 あとの3/4は新卒か転職組。 いきなり未経験でプログラマーの正社員は無理じゃね?
967 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:07:24 ] マ板でやれ
968 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:07:53 ] バイトでよければ情報誌にいろいろ出てる うちも求人出してるし
969 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:10:05 ] 板違い
970 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:20:12 ] スカウトとか言ってる企業はブラック間違いなし。
971 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:42:49 ] 35でプログラマ目指している俺がきましたよ
972 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 14:47:00 ] 帰れ
973 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:35:18 ] ifを使って変数を比較したら何クロックぐらいですか?
974 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:38:05 ] >>973 ケースバイケース
975 名前:973 mailto:sage [2009/06/24(水) 16:44:53 ] 変数の型によって等の条件によって違ってくるような気がしますが 平均的にはいくつぐらいになるのでしょうか 数十くらいですか?
976 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:45:03 ] >>973 はツンデレ保守わかる
977 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:45:04 ] 知らないなら黙っててください
978 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:46:34 ] CPUのクロックを測定するスレがあるからそっちで聞いてみたら? 昔と違って並列で動作したり、C#レベルだとJITでの最適化などで 単純に測定できないことが分かると思うから。
979 名前:973 mailto:sage [2009/06/24(水) 16:48:24 ] >>978 そうしてみます。 ありがとうございます。
980 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:50:21 ] >>975 本気で聞いているの? 全体集合(比較可能な型の全ての集合)もわからないのに,平均ってなんぞい? 正確なクロック数はわからないけど,Step by Stepの利いていないCPUでWindows環境なら 数百万回くらい比較を行うループの実行時間とQueryPerformaceFrequencyからクロック時間が割り出せそう もちろんスレッドのコンテキストスイッチなど目にも留まらぬ速さの場合
981 名前:973 mailto:sage [2009/06/24(水) 17:05:22 ] 本気で聞いています。 厳密なクロック数が知りたい訳ではなく 数十なのか、数百なのか、数千なのか、 そのぐらいのレベルで知りたいんですが。
982 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:10:49 ] 980の言うように回数こなして実測が一番現実的だと思うがね。 CPUの命令レベルだったらだったら0〜2クロック。 分岐予測を失敗したらストールで数十クロックとか。意味ないっしょ。 cmp EAX, EBX jne LABEL1 それからJITで特定の方向にしか分岐しないなら分岐命令自体が削除されることもある。
983 名前:973 mailto:sage [2009/06/24(水) 17:13:18 ] すいません。 ありがとうございました。
984 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:13:54 ] >>981 今のCPUはパイプラインだし多重キャッシュだし投機だし、正確に計るのは無理というか、 前提条件が足りなさすぎ。 とりあえずコードが最適化されてて変数の内容が32bit以下の整数値なら レジスタに入ってるはずだからifは単純にCMP reg,reg、JE xxxxあたりに置き換えられて 合計で1.0クロック。 スレッドの遷移はifの数百倍以上のコストがかかるから外部から調べるのは困難。 詳しいことは、ここにCPUのマニュアルがあるから嫁。 INSTRUCTION LATENCY AND THROUGHPUTのところ www.intel.com/products/processor/manuals/index.htm
985 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:24:53 ] 誰か実際にやってみれ 1億回ぐらいループ回して平均 該当部分の逆汗も頼むぜ
986 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:28:07 ] なんか難しい話してるね 俺からしたら宇宙語だわ
987 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:28:53 ] 初心者スレでやるこっちゃないわな
988 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:29:14 ] >>985 言い出しっぺの法則
989 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:29:49 ] 誰か次スレ立ててくれ うちはずっと規制中で手も足も出ん
990 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:31:12 ] [>>1 ]>>980 を踏んだ人は新スレを建てて下さい。 C#, C♯, C#相談室 Part53 pc12.2ch.net/test/read.cgi/tech/1245150671/ WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part4 pc12.2ch.net/test/read.cgi/tech/1245384489/
991 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 17:41:47 ] 構造って作った後から重複をまとめて基本クラスにするのを繰り返すのが普通なんですか? それとも最初から基本クラスから考えて派生を作っていくんですか? 最低でも書く前にこれはベースにまとめていくのがいいと思って構造を作っていって、出来あがってからコード化するのが限界だと思うんですが 最初からベースクラスから考えられる人っているんですか?いるとしたら日本語から英語を勉強した人が頭で考えるのが英語になるぐらいすごいんですが
992 名前:デフォルトの名無しさん [2009/06/24(水) 17:55:24 ] いや基本的にそういう継承の使い方は間違い
993 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:12:14 ] >>991 3行目から下、いらないと思うぞ。何が聞きたいのかポイントがボケる。 最初から継承ありきで考えるのは、大抵の場合、間違いのもと。
994 名前:デフォルトの名無しさん [2009/06/24(水) 18:18:31 ] ある機能が重複するなら、その機能をクラスに括り出してそのクラスのインスタンスをそれぞれが持つようにする。継承は不要。 最近は継承よりもそういうやり方の方が良いとされてる。
995 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:26:20 ] 基本的には同じ動作だけど、個性を持たせたいとか オセロ作るときに初級AI、中級AIのために必要だなって思ったよ でも、継承しなくてもできることはできるんだよねー このときは継承じゃなきゃだめだってのがよくわからない
996 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:29:22 ] 単純に同じ配列、リストに入れたいときくらいかなあ
997 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:35:47 ] つinterface
998 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:37:45 ] うめ
999 名前:デフォルトの名無しさん [2009/06/24(水) 18:38:59 ] ポリモルフィズム使いたいときだけだな 実装の継承はまさに>>991 のような難しさがあるから避けられる そりゃControlみたいに完璧な設計ができるというならやればいい
1000 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 18:39:36 ] 継承は最後の手段って、あれは誰の言葉だっけ。マーティンファウラー?
1001 名前:1001 [Over 1000 Thread] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。