1 名前:デフォルトの名無しさん [2012/03/21(水) 13:47:38.31 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からない場合など、勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 なお、テンプレ2行目が読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっとC#,C♯,C#(初心者用) Part87 toro.2ch.net/test/read.cgi/tech/1330881286/ ■関連スレ C#, C♯, C#相談室 Part70 toro.2ch.net/test/read.cgi/tech/1327570969/ ミスターサタンのC#相談室 hibari.2ch.net/test/read.cgi/tech/1092656075/ VB.NET質問スレ(Part38) toro.2ch.net/test/read.cgi/tech/1325083428/ くだすれC++/CLI(初心者用)part2 hibari.2ch.net/test/read.cgi/tech/1268613679/
552 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:05:17.07 ] どうでもいいけどIDつけてくれよ
553 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:08:09.30 ] 549 自分:デフォルトの名無しさん[sage] 投稿日:2012/03/27(火) 14:57:25.62 >>547-548 アンカつけろや2ちゃん初心者 550 返信:デフォルトの名無しさん[sage] 投稿日:2012/03/27(火) 14:59:31.79 >>549 ふぁびょってんじゃねーよ2ちゃん初心者 14:57:25.62 14:59:31.79 wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
554 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:15:11.74 ] 猿から進化したばかりの人間初心者が騒ぐな
555 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:18:53.71 ] マ板でやれ
556 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:55:45.46 ] 荒れているので私の疑問書かせて頂きます プログラムの部品としてAPIってのが提供されていますが C#はAPIを利用しなくても描画したりファイルを扱ったりできますよね。 最初、C#も裏ではAPIを利用しているのかと勘違いしてました なぜ似たような機能が提供されているのですか?
557 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 15:58:01.95 ] c#も裏でAPIを利用していからです。
558 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 16:06:15.24 ] な、なんですと!
559 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 16:18:02.67 ] いから?
560 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:20:47.05 ] DataTimeをconstするとエラーになるんだけど どうすりゃいい?
561 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:22:15.66 ] constじゃなくてstatic readonlyにしたまえ
562 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:32:54.76 ] そんな型は知らん
563 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:33:39.58 ] お前の都合など知ったことかァーッ!
564 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:45:32.02 ] 変更されたくないならプロパティにしてgetだけ公開とか
565 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:50:17.82 ] msdn.microsoft.com/ja-jp/library/ms173119.aspx const として宣言できるのは、C# 組み込み型 (System.Object を除く) だけです。 クラス、構造体、または配列を作成するには、readonly 修飾子を使用します。
566 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:56:15.12 ] Windowsフォームアプリケーションを作成しています 下記のように、各クリックイベントの後に共通してFuncA()とFuncB()を呼び出しているのですが、 これを上手く省略する書き方があれば教えてください private void button1(object sender, EventArgs e){ i = 1; FuncA(); FuncB(); } private void button2(object sender, EventArgs e){ i = 2; FuncA(); FuncB(); } private void button3(object sender, EventArgs e){ i = 3; FuncA(); FuncB(); }
567 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:56:20.69 ] 分ける意味が分からんね
568 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 18:58:22.96 ] 別な所でFuncAとFuncBを分けて使いたいんだろ
569 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:00:07.75 ] ボールを投げたときの軌道を計算したいのですが こういうのを計算してくれるライブラリってありませんか?
570 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:01:20.32 ] 以前SpeechとかいうクラスあったけどなんでそんなどうでもいいのはあるのにPOPとかIMAPとか標準クラスにねぇんだよ SMTPはあるのに・・・
571 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:02:40.77 ] private void buttons_Click(object sender, EventArgs e){ int i = 0; if( sender == this.button1 ) { i = 1; } else if( sender == this.button2 ) { ... } else ... { } FuncA(); FuncB(); }
572 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:05:21.62 ] private void buttons_Click(object sender, EventArgs e){ int i = 0; switch(sender) { case this.button1:i=1; break; case this.button2:i=3; break; case this.button3:i=3; break; } FuncA(); FuncB(); }
573 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:07:05.83 ] >>572 コンパイルできません
574 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:08:23.63 ] private void button1(object sender, EventArgs e){ FuncC(1); } private void button1(object sender, EventArgs e){ FuncC(2); } private void button1(object sender, EventArgs e){ FuncC(3); } private void FuncC(val value){ i=value; FuncA(); FuncB(); }
575 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:12:49.40 ] Form fm = new Form(); fm.Text = "ようこそC#へ"; Label lb = new Label(); lb.Text = "C#をはじめましょう"; lb.Parent = fm; Application.Run(fm); で、Formに「C#をはじめましょう」が出るのですが、 lb.Textに長めの文字を入れると改行されてしまいます。 改行されない方法はありますか?
576 名前:566 mailto:sage [2012/03/27(火) 19:13:21.28 ] なるほど、なんで思いつかなかったんだろうってくらい色々やり方ありますね 参考になりました
577 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:16:32.25 ] >>575 Label.AutoSizeをtrueにしたらいいんじゃね
578 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:18:14.04 ] >>569 ライブラリが作成されるほどボールを投げた時の計算に困る人がいるとは思えませんので 自力でどうぞ
579 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:25:25.64 ] <base_time>1332582300</base_time> これから○○年△△日 □□時☆☆分◇◇秒にするにはどうすればいい?
580 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:30:54.78 ] >>577 lb.AutoSize = true; にしたらOKになりました。ありがとうございます。
581 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:31:31.83 ] >>576 よし。 いまさらだが。 ButtonのTagに1,2,3を入れてやってから Clickイベントを同じメソッドに割り当てて private void hogebutton_Click(object sender, EventArgs e) { Control c = (Control)sender; int i = int.Parse(c.Tag.ToString()); FuncA(); FuncB(); }
582 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:33:28.98 ] >>579 基準は何なんだよ エポックからのミリ秒か?
583 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:36:54.08 ] Tag使うのは最終手段だからButton継承して iを持ってるもの作るかな 10秒でできるし
584 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:47:51.22 ] むしろ継承の方が最終手段だろ
585 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 19:51:37.56 ] とにかく完成が最優先
586 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:02:51.12 ] 〜こうして新たなスパゲティコードが生まれた〜
587 名前:デフォルトの名無しさん [2012/03/27(火) 20:13:18.93 ] ただ、Tagは何でも突っ込めるObject型だから、文字列の”1”じゃなくてintの数字突っ込んでおくべきだとは思う
588 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:17:08.64 ] 文字列でいいならName使えよ
589 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:21:55.88 ] Tagに突っ込むとかNameに突っ込むとかする程度の作成物なら >>566 のように直書きするわ
590 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:23:35.70 ] ttp://www.atmarkit.co.jp/fdotnet/dotnettips/698scrollpic/scrollpic.html ここを参考に、 Panelの中にPictureBoxを入れてAutoScrollで画像をスクロールバーでスクロールできるようにしたいのですが、 Panel外に出た画像が消えてしまいます。 ではPanelのScrollイベントなどで再描画してやればいいのかと思いましたが、端の部分だけ表示されなかったりとうまくいきません。どこがおかしいのでしょうか?
591 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:31:57.47 ] PictureBoxのGraphicだけに描画してるわけじゃないんだよね 普通に描画されるはずだけど
592 名前:デフォルトの名無しさん [2012/03/27(火) 20:32:57.26 ] >>590 dobon.net/vb/dotnet/control/refreshupdateinvalidate.html
593 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:33:27.15 ] >>578 計算方法をおしえて
594 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 20:37:09.65 ] これ マクロのアプリを作りたい とか言ってた人じゃね?ww
595 名前:デフォルトの名無しさん [2012/03/27(火) 20:37:22.53 ] >>593 ベクトルの計算だけじゃないの? ・手?から離れた瞬間のベクトル ・その後常に受ける重力 ・空気抵抗による減速係数 ライブラリは必要ないよ
596 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:00:11.55 ] 必要ないってか需要がないライブラリなんて作られるわけないじゃん
597 名前:590 mailto:sage [2012/03/27(火) 21:00:59.52 ] >>591 >>592 this.Refresh();で綺麗に描画できました、感謝です
598 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:22:01.63 ] >>593 無重力で真空の空間でベクトル(1, -1)の方向にボールを投げたときの計算をしたよ ついでに描画しといたよ Formに張り付けて使ってね PointF vector = new PointF( 1, 1 ); protected override void OnPaint( PaintEventArgs e ) { base.OnPaint( e ); for( int x = 0; x < this.Width; x++ ) { float y = ( vector.X / vector.Y ) * x; e.Graphics.DrawRectangle( Pens.Black, x, y, 1, 1 ); } }
599 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:23:55.36 ] float y = ( vector.Y / vector.X ) * x; だね 間違えてごめんね
600 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:33:48.72 ] 放物線の軌道なら中学高校数学を勉強しなおすべき 応用効かなくなるぞ なーに関数書くだけだ
601 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:48:12.21 ] 単純に時間の関数で位置が求まるだけの運動なら空気抵抗を無視すれば そう複雑でもないと思うけど、任意のタイミングで衝突や加速が加わることを 想定にいれるなら、加速度と速度から数値積分的に位置を求めることになるわけで それなりに面倒そうだね。 2Dか3Dか知らんけど、とりあえず位置を表すクラスを作って、それを派生して 速度、加速度のクラスを作るところから始めるのかな。
602 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 21:55:22.75 ] 閉じた系で厳密にシミュレートするなら関数記述だろうけど 物理エンジンに初期値与えてあとは丸投げというのもあり Unreal engineなんか使えるようになるとすごい
603 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 22:14:45.55 ] 今月の日経ソフトウェアにちょうどそのお題があるよ
604 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 22:36:56.07 ] >>595 なるほど ベクトルか
605 名前:デフォルトの名無しさん mailto:sage [2012/03/27(火) 22:37:32.64 ] >>598-599 ありがとう
606 名前:デフォルトの名無しさん [2012/03/28(水) 13:13:25.24 ] 教えてください。 複数チェック処理を行うクラスを作ります。 チェック結果はboolで返して欲しいのですが、 falseの場合、チェック内容によって数値も返して欲しいのです。 処理1で引っかかったら01、処理2なら02、みたいに。 どうしたらよいですか?
607 名前:デフォルトの名無しさん [2012/03/28(水) 13:22:53.47 ] >>606 ufcpp.net/study/csharp/sp_ref.html コレ読んで ref って奴勉強してね
608 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 13:32:30.55 ] 面倒ならグローバル変数で解決!
609 名前:デフォルトの名無しさん [2012/03/28(水) 13:36:44.20 ] 面倒だからintにしろよw
610 名前:デフォルトの名無しさん [2012/03/28(水) 13:50:34.75 ] >>607-609 みなさんありがとうございます。 一応書き込む前に調べはしましたけど、どの方法が適切(?)なのか 判断つかなかったのです。 もらったアドバイスのいずれかにしようと思います。
611 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:05:47.92 ] C#で作ったプログラムAがあります プログラムAから起動した外部プログラム(メモ帳とか)があるとして プログラムAを閉じたら、起動した外部プログラムも全部閉じる処理はどうやるのでしょうか?
612 名前:デフォルトの名無しさん [2012/03/28(水) 14:18:59.58 ] 数万、数十万件のファイルを読み込むとフリーズします。 UIをフリーズさせないように非同期で処理しているんですがフリーズしちゃいます。 IEnumerable<string> files = Directory.EnumerateFiles(source);やTaskで非同期しているはずなんですがUIがフリーズしちゃいます。 どうすれば重い処理のときにUIをフリーズさせずにすむのでしょうか アドバイスお願いします。
613 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:20:10.37 ] ソースだせって
614 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:23:21.98 ] 数十万件も画面に表示しようとしたら重いだろうな
615 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:25:52.90 ] 読み込む処理を別スレッドにすればOK。
616 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:38:07.62 ] LoadでStartPosition = FormStartPosition.CenterScreen; って書いても画面の中央にフォームが表示されません
617 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 14:40:18.92 ] Loadじゃもう遅くないか?
618 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:07:39.86 ] >>612 ディスクアクセスのせいでシステム全体が重くなってんじゃないの?
619 名前:デフォルトの名無しさん [2012/03/28(水) 15:13:44.32 ] >>612 実際やらなかったが、スレッドじゃなくてプロセスを分けてWCFで通信するってのを検討したな もし、同時に動いている関係ないプログラムが普通に動くなら回避できる可能性はあると思う 俺はWPFからWinformsに変更したら解決できた
620 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:15:17.62 ] お前らソースなしでよく話できるな
621 名前:デフォルトの名無しさん [2012/03/28(水) 15:20:05.11 ] >>616 ideone.com/GZmum
622 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:23:47.10 ] textBoxのAcceptsTabをtrueにしたのにtab押してもタブが入力できないのは何故ですか?
623 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:25:28.09 ] 自演に釣られまくり
624 名前:デフォルトの名無しさん [2012/03/28(水) 15:28:08.85 ] >>622 Multiline = true じゃないとだめぽいね
625 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:31:53.92 ] ボタンなどをデザイナから貼り付けて、これをスタティックやグローバルに変更したらデザイナから消えた。 他のアイテムを削除した際にこのボタンに関するコードも一緒に削除されてエラーの嵐になっちゃうんだけどなんとかならん?
626 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:34:55.65 ] >>624 Multilineをtrueにしたらできました
627 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:42:09.07 ] dobon.net/vb/dotnet/control/tbtacwidth.html みながら ideone.com/xyATU てやったんですけどタブの幅が変わりません どこかまちがってますか?
628 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 15:53:37.62 ] 627 自己解決 入力した後に呼び出さないとダメでした
629 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:00:11.96 ] >>625 デザイナが生成したコードはいじらずに自分で宣言した変数に代入でどうか
630 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:22:41.33 ] ああ、その手があったか。それならデザイナから消えないからみためもそのままだし コードを各位置をごっそり移動するより綺麗だね
631 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:34:15.86 ] Form落としたら一緒にDisposeされちゃうからそこだけ気をつけて
632 名前:デフォルトの名無しさん [2012/03/28(水) 20:38:15.28 ] >>618 そうなんです、調べたところディスクの速度に制限されることをIO Boundと言うみたいですね。 これはプログラムでは解決しようがないんでしょうか
633 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:40:48.33 ] いやお前の場合なんか別の要因だと思うぞ ソースコード見せる気無いようだから深く詮索しないが
634 名前:デフォルトの名無しさん [2012/03/28(水) 20:41:21.30 ] >>632 ファイルの内容にもよるんじゃないの? たとえばテキストファイルで1行1レコードを1レコード単位で読み込んでるとからな 改善の余地はあると思うけど
635 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:44:33.06 ] >>612 メモリが足りないとか、HDDの空き容量が足りないとか
636 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:52:00.73 ] いくらIO待ちになっても、スレッド分けてるならタイムスライスが全く回ってこないほど固まらないだろ スレッドが分かれてるようで分かれてないだけのような気がする 他に考えられるのは、Taskはスレッドプールで動いてるので あまり長時間占有し続けるタスクをガンガン作ると スレッドプールが長蛇の列になってUIが動いてないように見える こうなるとスレッドプールが拡張されるまでカックンカックンする
637 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:53:04.59 ] >>631 ボタン型A = ボタン型Bでもやろうとか思ったけどこれだと参照渡しになっちゃうよね。まあなんとかなると思うが
638 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 20:58:05.25 ] 単にスワップしまくりだったりしてな
639 名前:デフォルトの名無しさん [2012/03/28(水) 21:11:17.61 ] www.dotup.org/uploda/www.dotup.org2804378.txt.html >>633 テキストでアップロードしました、稚拙ですがご指導ください 76行目からファイルおよび単一ディレクトリまたはサブディレクトリを含む、指定の拡張子のファイルパスを全て読み込むだけなんですが、数万件を超えるとフリーズしてしまいます
640 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:14:22.97 ] まず瞬間的に気づいたが Directory.EnumerateFiles使っても次の行でToListしたら意味ねえだろ
641 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:16:39.84 ] Everythingとかどうやってるんだろうな 最初多少の時間かかってもいいから超高速にファイル検索してパス取得したい
642 名前:デフォルトの名無しさん [2012/03/28(水) 21:19:10.39 ] >>639 >>2 を使えとあれほど
643 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:22:20.71 ] 数十万とか読み込むなよ
644 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:28:02.93 ] var(笑)がたくさんあったからてっきりJavaScriptかとおもた
645 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:30:05.37 ] あと胡散臭いところとして、リパースポイント含んでたりしないかってのが気がかり
646 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:36:01.96 ] >>643 どんな種類のデータなんだろうね。 データ自体を作り出すのも大変な労力だわ。
647 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:36:33.94 ] あとDataTableって読み取りロックのようなものは掛かるのかな MSDNみると全ての読み取り操作に対して安全ですって書いてあるけど 安全っての微妙な言い回しだよね 中途半端な状態を読み取らないという意味としても、セルレベルなのか行レベルなのか列レベルなのか良く分からない これがダーティーリードみたいな事が起きないって意味ならロックしてるよね その辺の競合も気になるな
648 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:38:39.77 ] 私からは以上
649 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:44:30.63 ] でも列挙がボトルネックになっているとは考えにくい 10万ファイルで試したけど2秒弱しか掛からん そもそもMFT読めば済む話でデータ全部なめるわけじゃあるまいし
650 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:47:36.63 ] >>639 デバッグの一時停止するとどこで止まるんだこれ
651 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:49:57.36 ] Worker.RunWorkerAsync(null);をやったあとに Worker.DoWork += (sender, e)とかやっても呼ばれるんだな・・・。
652 名前:デフォルトの名無しさん mailto:sage [2012/03/28(水) 21:52:07.17 ] ゔぁあ