1 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:01:47 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part42 pc12.2ch.net/test/read.cgi/tech/1245836827/
802 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:38:44 ] スレ違いだから
803 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:48:06 ] >>799 n = WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, StringBuilder, SPI_SENDWININICHANGE); ですか?
804 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:51:50 ] やってみたらエラーになるだろよ・・・
805 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 22:58:59 ] エラーが3つも出てます…。 'System.Text.StringBuilder' は '型' ですが、'変数' のように使用されています。 'WindowsFormsApplication1.Form1.WinAPI.SystemParametersInfo(int, int, string, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 引数 '3': 'System.Text.StringBuilder' から 'string' に変換できません。
806 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:03:37 ] >>805 少しは自分の頭で考えてみろよ
807 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:03:39 ] >>805 この辺でも読め msdn.microsoft.com/ja-jp/library/aa288468%28VS.71%29.aspx www.atmarkit.co.jp/fdotnet/dotnettips/024w32api/w32api.html
808 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:32:09 ] StringBudlderの使い方はなんとなくわかりました。 System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < 1000; i++) {sb.Append("abc");} とか。 で、第3引数になにとなにをStringBuilderにすればいいんでしょう?
809 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:33:51 ] 駄目だコリア
810 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:35:31 ] ふざけてるのか??
811 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:38:20 ] ふざけてないです。 初心者なのでお手柔らかにお願いします。
812 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 23:58:30 ] MSDNのプラットフォーム呼び出しの項目読めよ
813 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:24:01 ] お前には無理だ。
814 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 00:37:32 ] 黙れ糞やるお
815 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 02:11:08 ] >>811 貴方が今の700倍優秀でも教えてもらえないです。 能力の問題ではないんです。姿勢の問題です。 自分で努力したというものが伝わってこないのです。 私達の目には楽をして答えを得ようとしているようにうつるのです。 貴方は聞きグセが付き始めています。 このクセがつくとプログラマーとしてあらゆるスタートが遅れます。 先輩方にウザがられるので、チームとしても支障が出ます。 このままでは貴方はダメになります。ゴミです。永遠の初心者です。 現時点で最良の選択は>>812 ではないかと思います。 貴方の成長を心より応援ゴミです。大事な事なので二度言いました。
816 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:22:21 ] Panelのドッキングなんですが、DockでTopを選んで、アプリを拡大縮小した時に、下の余白の長さは固定にしたいんですが、どうすればいいんでしょうか TopでDockした方のPanelは縦の長さが固定なんですが、固定部分を余白と逆にしたいんです。 いろいろ組み合わせて試したんですがだめなんです。教えてください。
817 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:26:51 ] PanelはDock.Fillにして、余白とやらをControlにでもしてそれをDock.Bottomにすれ つかAnchorの方がその場合楽な気がする
818 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 03:40:26 ] すごいできました!ありがとうございました
819 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:32:13 ] 正規表現を使って、s = "hoge0" と言う文字列に対して Regex r = new Regex("hoge([0-9])"); Match m = r.Match(s); とすればグループ値 m.Group[] が取得出来ますが、この逆のことを行うメソッドは ありますでしょうか?つまり "0" と "hoge([0-9])" の2つの文字列から "hoge0" を導き出しのです。
820 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:39:41 ] >>819 m.Valueかな?
821 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:49:20 ] Formで自分のウィンドウクラス名を取得するにはどうしたらいいんでしょうか? this.CreateParams.ClassNameだとnullが返ってきましたorz
822 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:52:31 ] GetClassName関数
823 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 13:59:31 ] >>822 おーーー!thxです!
824 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 14:32:59 ] >>820 お前、アフォだろ?
825 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 17:39:32 ] Visual Studio 2008 Express Editionでキーボードマクロを使いたいのですが、メニューを探しても 項目が見つからず、Ctrl + Shift + Rを押しても何も起きません。 Express Editionだと使えないのでしょうか?
826 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:00:40 ] >>819 Matchの反対ならReplaceでいいかな?
827 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 21:43:44 ] えっ?
828 名前:デフォルトの名無しさん [2009/08/24(月) 21:56:17 ] すみません。とてつもなく初歩的な質問をします。 C#でゲームを作っているのですが、Playsound()を使ってBGMと効果音を同時に演奏しようとし場合、 BGMが停止してしまいます。 効果音を演奏するときにBGMが停止しないようにするにはどうすればいいんでしょうか。
829 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:03:52 ] あああsage忘れたすみません
830 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:08:12 ] SND_ASYNC で。
831 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:19:10 ] PlaySoundは同時に一つしか再生できんはず 手軽なのはmciSendStringかなー
832 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:43:24 ] 自分でミキシング
833 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:50:33 ] 時間がかかる処理をバックグラウンドでやるにはどうすればいいですか? Visual C#でプロジェクト全体を検索すると、一定時間が経つとダイアログが表示されて 中止できるように、途中で処理を中止できるようにしたいんです。処理が行われている間も GUIが応答するようにしたいです。
834 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:53:57 ] ばっくぐらうんどわーかー
835 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 22:57:54 ] そんなもん使わず、自分でスレッド起動した方がずっと分かりやすいよ。
836 名前:833 mailto:sage [2009/08/24(月) 23:05:53 ] じゃあスレッドを使うことにします ありがとうございました。 OpenGL使う予定なのでスレッドが絡むとちょっとややこしそうですが、仕方ないですね
837 名前:デフォルトの名無しさん mailto:sage [2009/08/24(月) 23:27:36 ] >>828 OpenALは?
838 名前:デフォルトの名無しさん [2009/08/25(火) 08:03:24 ] 4階層のtreeviewを作成し、ノード検索ボックスも設けましたが、 treeが全て収縮している状態で検索をかけると、検索したいノード名のルートだけではなく、検索したいノードの同レベルにある他ノードまで展開されてしまいます。 ルートだけ表示させることはできないでしょうか。
839 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 09:21:23 ] 初心者スレに変なのが沸いてるな。 煽りや荒らし以外はもう一度>>1 まぁVBスレやAPIスレにいた荒らしだろうけど
840 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 09:38:01 ] >>838 展開しなければ良いんではないだろうか どうやって検索してるんかしらんけど つーかTreeViewってWinFormにもWebにもWPFにもあるしなー > ルートだけ表示させることはできないでしょうか。 ルートって普通rootのこと指すから、こういう使い方しない方が良い
841 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:39:22 ] あほか
842 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:50:45 ] ポカーン
843 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 10:54:48 ] ∧∧ ヽ(・ω・)/ ズコー \(.\ ノ 、ハ,,、  ̄  ̄
844 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:13:10 ] Staticとかそういう明示的なことをしない場合、 C#でインスタンス化したメソッドは抜けているのに メモリが確保されたままっていうことはありますか? フォルダ内の数千ファイルを読み込んで 内容をDBに登録するだけのプログラムなんですが 30分ほど放っておくとメモリがタスクマネージャ上で2Gとかになっています(起動時50MB程度) ファイル読み込みループ内でファイルのIOクラスとデータベース登録クラスをインスタンス化しているので, 新しいファイルを読み込むたびに前回までのメモリが解放されているイメージなのですが, この認識って間違っていますでしょうか?
845 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:13:45 ] > ルートって普通rootのこと指すから そんなこと無いと思うけど。 ttp://e-words.jp/w/E383ABE383BCE38388E38387E382A3E383ACE382AFE38388E383AA.html
846 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:34:18 ] >>845 きみは何が言いたいのか?
847 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:37:59 ] >>841-843 こいつらは誰に対していってんのか
848 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:46:09 ] >>847 どうみても>>840 でしょ。 >>840 がいってることは正しい。 馬鹿(>>841-843 )はスルーしたほうがいいよ。
849 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:46:41 ] >>846 >>840 の文脈から理解出来ないの?説明するつもりはない
850 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:49:15 ] 空気悪いね
851 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:51:06 ] 昨日VSスレに居た荒しがこっちに流れてきたか?
852 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 11:59:51 ] rootはルートだろ 838が言ってるのはそりゃ「経路」だ
853 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:01:27 ] >>846 じゃないが >そんなこと無いと思うけど。 といっているのに、リンク先の内容は > ルートって普通rootのこと指すから と同じことが書かれていると思われるんだが。
854 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:04:20 ] route root
855 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:22:11 ] TreeViewでrouteという単語は一切使用されていない。
856 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:30:51 ] わざわざ調べたのか…。
857 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 12:32:00 ] >>844 C#の世界では通常メソッドはインスタンス化されない。クラスはされるけどな。 ファイルを読み込むってことは、Stream関係のオブジェクトが開放されてないんじゃないの? アンマネージドなデータを含んでるオブジェクトは明示的にDispose()してやる必要があるよ。 もしくはusing構文を使うかだ。
858 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 15:06:04 ] >>838 「ノードAが展開されている」というのは、簡単に言うと「ノードAの子ノードが見える状態」であって、 「ノードAが見える状態」ではない。 このことは理解してる? 因みに、理解していて>>838 の質問なら>>840 (前半)に帰結する。
859 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:37:41 ] >857 ストリームをCloseしてるだけでDisposeしていませんでした. メモリ使用量は気持ち減った感じですが, まだ上がり続けているので,もうちょっとソース見てみます ありがとうございました
860 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 16:53:03 ] DataTable SrcTable = チョメチョメ; DataTable NewTable = SrcTable.Clone(); foreach( DataRow Target in SrcTable.Select( "ColName < 1" ) ) NewTable.ImportRow( Target ); チョメチョメ = NewTable; これをLinqはどのように書くのでしょうか?
861 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:37:17 ] 一応managedだからこのスレでいいのだろうと思うので MFCでDLLを作ってそれをC++/CLIでラップしました 次にそれをC#やVB.netから呼び出したいのだけど文字列ですね const char *みたいなものにSystem.Stringのデータが渡せないって怒られます どうやって変換すればいいんでしょう? 配布するものなんで言語環境に依存しない形で呼び出せるようにしたいのですが
862 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:44:18 ] >>861 よくねえよ。C++/CLIスレがあるからそっちいけ String^で受けてmarshal_as<std::string>
863 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 17:58:19 ] >>860 DataViewでFilterとToTable使った方が楽だと思うけど なぜあえてLINQ?
864 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 18:47:38 ] >>863 LINQを使う(覚える)のが目的でした。 LINQ使えばこの手の処理がかなり簡素にできるのかなと。 構造体のlistならサンプルでなんとなくわかった(ような気がする) のですがDataTableの場合、項目名をどう書けばよいのかわか りませんでした。
865 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:00:44 ] >>859 StreamはCloseだけでも大丈夫だよ。 正確には大丈夫ではないが、今回の現象に関しては。 ※もちろんusingなどを使って確実にDisposeするのが正しい。 DBアクセス用のクラスの方の、接続とかの管理(Close)は大丈夫なのか?
866 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:02:16 ] ただ、普通に考えて2G使うってのはちょっとおかしいな。 Disposeとかだけの問題でもなさそうな気がするな。
867 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:12:57 ] >>864 型付きかどうかで変わるけど、 var table = (from row in table.AsEnumerable() where row.Field<int>("ColName") > 15 select row).CopyToDataTable(); ただのDataTableならこんな感じ AllowDBNullならnullチェックが必要になるが
868 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 20:41:19 ] >865-866 レスありがとうございます プロジェクト全体に「Stream」で検索掛けて関係ありそうなのは全部Close Disposeかけました (StreamReaderなども) DBに関しては DbConnection,DbTransactionのClose Dispose DbCommandのDispose を徹底しました でもまだ使用率が上がってます 現在1G使用率を上げるのに2時間かかるかんじです (ファイルサイズがバラバラなので変化には誤差があるのでしょうが) もうちょいでしょうか...w
869 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:02:09 ] >>862 ツンデレどうもw とりあえず文字はいけました
870 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:06:28 ] >>868 んー、usingの使い方知ってる?
871 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 21:48:32 ] あちこち弄る前にプロファイラで現状を把握すべき
872 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:01:02 ] まあ多分プロファイラよりもコードレビューしてもらうのが先なレベルの気もする。 別にプロファイラで見るのもいいんだけど。
873 名前:デフォルトの名無しさん [2009/08/25(火) 23:21:10 ] SQLでビューを作成し、できたSQLをC♯内にコーディングしました。 これって、linqだと簡単にできるの?
874 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:28:29 ] いや特に
875 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 23:46:01 ] LINQに対して夢を抱きすぎじゃねえのか
876 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:12:20 ] LINQ悪くないんだけど遅いんだよな。
877 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 00:31:17 ] 鯖で使うんでなければ大した問題にはならないでしょ 鯖で使うのは微妙
878 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:02:57 ] LINQって糖衣構文なだけじゃないの? 展開すると最適化のきかない冗長なコードになるのかな?
879 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:14:19 ] >>878 デリゲート呼び出し分のコストはかかるんで、全部インライン展開した場合と比べると5%くらい遅いことはある。 まあ、あと、変なクエリを ToArray() せずに使うと毎回クエリしなおしで遅くなることもあるけど。
880 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 01:39:12 ] 5%が「鯖で使うのは微妙」なくらい遅いの? 一部の人はどこかのブログとかををうのみにして先入観持ってる気がする
881 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:48:01 ] >>870-872 usingの使い方は知っていますが、接続を切るタイミングは動的にしないといけない事情がありましたので使ってません。 あとメモリリークの原因分かりました support.microsoft.com/kb/418376/ja ファイルがXMLでかつ XSL、DTDの指定があったとき WebBrowserで読み込んでInnerTextを拾ってくる使用でした. プロファイラで見たときにWebBrowserのメモリがガンガン上昇していったので気付きました。 XMLDocumentで同じようなことができないか試してみます。
882 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 09:57:26 ] | 回避策 | WebBrowser コントロールを利用しているアプリケーションを定期的に終了させて下さい。 うわお >>881 乙
883 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:18:14 ] 844からWebBrowserは想像できねーよw
884 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 10:53:13 ] >>883 たぶん、紙にでもならない限りむりだろうなw。
885 名前:844 mailto:sage [2009/08/26(水) 10:54:27 ] >883-884 すみませんw まさかここで引っかかってると思いもしなかったので
886 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 12:32:13 ] >>885 >すみませんw なんだよ最後の草はバカにしてるのか
887 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 13:01:17 ] 牛乳飲め
888 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:01:37 ] C++みたいに、引数で渡したオブジェクトの中身は触らないよ!みたいな指定って出来ませんか?
889 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:02:11 ] void FuncA() { Console.WriteLine("A"); } void FuncB() { Console.WriteLine("B"); } void FuncC() { Console.WriteLine("C"); } Action x; Action y; x += FuncA; x += FuncB; x += FuncC; y = x; x -= FuncB; // FuncAとFuncCが残る y -= x; // FuncBだけ残るはず y(); Bだけ表示されると思ったのですが、A, B, C全て表示されました。 x -= FuncAやx -= FuncCにした場合は、ちゃんとAだけCだけ表示されます。 なぜでしょうか?
890 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:34:38 ] delegate の -= はコンパイル時に Delegate.Remove に解決される。 で、Delegate.Remove の解説はこれ。 > value の呼び出しリストが source 呼び出しリスト内の隣接している一連の要素と一致する場合は、 > source の呼び出しリスト内に value の呼び出しリストが含まれていると見なされます。 > value の呼び出しリストが source の呼び出しリスト内に複数回出現する場合は、 > 最後に出現した呼び出しリストが削除されます。 x -= FuncB すると x には FuncA, FuncC というリストが残る。 y は FuncA, FuncB, FuncC というリストだから、 「リスト内の隣接している一連の要素」に一致しなくなる。
891 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 14:47:11 ] >>888 必要とされる理由がないので無い
892 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 15:00:03 ] >>888 俺もそれ欲しいんだけどなあ。 Dictionaryとか参照だけさせたいときは読み取り専用ラッパで包むしかないんだろうか。
893 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 16:28:23 ] >>867 ありがとう。参考にさせてもらいます。 思ったより長くなるんですね
894 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:22:34 ] >>891 このメソッドに渡すこのインスタンスは中身が変更されるんだろうか? って気になることあるじゃんか サマリーに明記するしかないのかね 例外なんかはサマリーにかけるよね
895 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:39:42 ] そういう場合インスタンス渡さないから気にならないなあ。
896 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 17:59:29 ] 何でもかんでもListとか要求する関数とか書いてそうだな>>892 、>>894
897 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:33:51 ] C++でconstを活用してない人は疑問に思わないんだろうな
898 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:39:25 ] 次はフレンドクラス作れるようにしろとでも言い出すのかよ バカか
899 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:42:19 ] 馬鹿ですけど何か文句あるか?
900 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:45:45 ] >>896 で、こういう場合C#ではどうするの?
901 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:46:37 ] >>897 学習能力衰えた脳筋はC++から出てくんなハゲ。
902 名前:デフォルトの名無しさん mailto:sage [2009/08/26(水) 18:49:24 ] >>900 例となるメソッドとクラスを提示してくれよ。