1 名前:デフォルトの名無しさん [2008/02/27(水) 18:24:40 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part24 pc11.2ch.net/test/read.cgi/tech/1202028267/
655 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:40:02 ] >>651 ちなみに、強制的にイベントを発生させるということを厳密に行いたいのであれば、 monthCalendarを継承したカスタムクラスで、イベントデリゲートを呼び出してくれるようなメソッドを公開する。 public PerformDataSelected(object sender, DateRangeEventArgs e){ if(this.DataSelected != null) this.DataSelected(sender, e); } ほんで外からそのメソッドを呼び出せばいい...と思う。 もしかしたら俺が何か勘違いしてるかもしれん。 興味あったら試してみて。
656 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:40:52 ] >>655 OnDataSelectedを呼ぶべき
657 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:40:59 ] 最初は動けば良いのではないかと、そういうものは楽しさの中から築きあげて行けば良いし。
658 名前:655 mailto:sage [2008/03/12(水) 18:41:32 ] さっそくミス発見。 public void PerformDataSelected(object sender, DateRangeEventArgs e){ if(this.DataSelected != null) this.DataSelected(sender, e); } voidが抜けてたわ
659 名前:655 mailto:sage [2008/03/12(水) 18:42:43 ] >>656 ほうほう。 実はmouthCalendarというものを使ったことがないもんでなw 勉強になりますw >>651 だそうです。
660 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:47:04 ] MonthCalendarとか関係なくイベントはクラス外から直接呼べない だから派生クラスから呼び出す手段としてOn**メソッドを用意する
661 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:50:17 ] >>650 趣味の問題、か。 議論の余地なく間違ってると思うよ。 こういう人は「抽象化」の意味と意義がわかってないんじゃないの。
662 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:00:45 ] 「状況に応じて適切に判断」かな 好みじゃなくて使い分けるもの
663 名前:655 mailto:sage [2008/03/12(水) 19:08:09 ] >>660 あらま、やはり勘違いしてたみたいね。 派生クラスからでもイベントは呼べないのか。 失礼しました。 >>655 はスルーして下され。
664 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:15:39 ] そもそもイベントって「呼ぶ」ものじゃないでしょw 英語だとInvokeとかRaiseだから「起こす」とでも言うのが正解じゃないの?
665 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:19:08 ] >>621 = >>661 だと思うけど反論あるなら具体例を示すべきだと思うよ
666 名前:643 mailto:sage [2008/03/12(水) 19:34:45 ] >>644 >>645 そのままでは "=>" が上手く行かなかったのですが、 string[] fileListText = Array.FindAll( fileListAll, delegate (string item) { return ( System.IO.Path.GetExtension(item).ToLower() == ".txt" ); } ); でいけました。 ありがとうございました。
667 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:43:21 ] 匿名メソッドほんとに冗長だな 設計時から経過措置として認識されてて,後で捨てても影響が出ないように 明示的すぎる書き方になってるのかな
668 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 19:46:02 ] >>665 ええっと、反論ってのは具体例を挙げて行うものなんでしょうか? それとも理由を添えろって言いたいの? まあいいやまず>>661 で言いたかったことをはっきりしておくと、要するに >>649 の前者のコードは議論の余地なく×で、これは趣味の問題なんかではないということ。 後者のコードは普通は△だが、確かにこのように書いた方がわかりやすい場合も 稀にあるかもしれないことは認める。 通常は>>650 の書き方を選択すべき。 >>649 の前者がダメなのは、 (1) button1_Click()が羊頭狗肉になってる。 (2) だからbutton2_Click()の処理内容が把握しづらい。
669 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 20:21:11 ] >>668 シグネチャが違うイベントの場合を示せよ。
670 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 20:28:45 ] だから,好みの問題じゃないってことだろ 判断基準は人それぞれとしても,場合によって適切に使い分けるもの
671 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 20:33:14 ] なんだよ示せよって偉そうにw なんでこういう日本語も満足に使えないたわけってのは例外なく口調が偉そうなのかね。 シグネチャが違うってどういうこと? >>668 に「通常は」と書いたつもりだけど。 EventHandler<T>と違うシグネチャのイベントを扱うのって通常かな。
672 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:02:39 ] >>655 >>663 OnDateSelected使えって指摘は既出の通りで、 引数として渡すイベントソース・データを外部から取るのはだめ ソースはthis固定、データはコンストラクタの引数だけ外部から取って自前で生成 その例だとこんな感じ public PerformDateSelected(DateTime start, DateTime end) { OnDateSelected(this, new DateRangeEventArgs(start,end)); }
673 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 22:50:08 ] >>670 >判断基準は人それぞれとしても,場合によって適切に使い分けるもの それこそが、まさしく好みとか趣味という言葉の指し示すものである。
674 名前:655 mailto:sage [2008/03/12(水) 23:08:50 ] >>672 なるほど、勉強になった。Thx
675 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:15:51 ] >>671 普通にあるでしょ。 例えばbutton1が押された時と、textbox1上でエンターキーが押された時に同じ処理をしたい時とか。 この場合は private void button1_Click(object sender, EventArgs e) {foo();} private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) {foo;} } のように>>649 の後者の書き方になるんじゃない?
676 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:17:25 ] あほ
677 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:30:09 ] ばか
678 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:38:10 ] 分布図
679 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 11:59:03 ] delegate int Hoge(); Hoge hoge; hoge += foo1; hoge += foo2; hoge(); とするとfoo1, foo2と呼ばれfoo2の返り値だけが返りますが hogeに登録されているものを個々に呼び出し それらの返り値を得たいのですが、どうやるのでしょうか?
680 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 12:03:34 ] >>679 GetInvocationListでDelegate[]を取得するとか。
681 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 12:09:24 ] >>679 素直にrefまたはoutで渡せばいいじゃん。
682 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 12:28:19 ] >>680 thx Delegateクラスのメンバ一覧見てたのに全然気が付かなかった・・・
683 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:31:24 ] 属性の書き方なんですが、下記の2つに違いはあるのでしょうか? [Description("ほげほげ"), DefaultValue(false)] public bool HogeHoge {〜} [Description("ほげほげ")] [DefaultValue(false)] public bool HogeHoge {〜}
684 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 16:42:07 ] ない
685 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:14:17 ] Hoge hoge = new Hoge(); // 1 hoge = new Hoge(); // 2 hoge = new Hoge(); // 3 hoge = new Hoge(); // 4 hoge = new Hoge(); // 5 とやったときに1~4までのインスタンス解放を気にする必要が無いってのが ガーベジコレクト機能を持つ言語の利点という理解でよろしいでしょうか?
686 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:18:05 ] YES
687 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 01:48:14 ] >>671 早く答えろよ
688 名前:685 mailto:sage [2008/03/14(金) 01:53:09 ] >>686 ありがとうございました。
689 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 02:19:53 ] なんからのネイティブリソースを確保してたらアウトだけどね
690 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 04:06:28 ] private void Performed(object sender, EventArgs e) { 処理; } でいいじゃない。 やらないけど。
691 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:30:07 ] あほ
692 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:32:10 ] なんであほなのか詳しく
693 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 08:54:51 ] テキストを画像に変換したいのですが、 どのように処理したらいいでしょうか? また、変換後の画像の大きさ(高さ・幅)は取得できるでしょうか? 低レベルですみませんがよろしくお願い致します。
694 名前:デフォルトの名無しさん [2008/03/14(金) 09:06:28 ] >>693 > テキストを画像に変換したいのですが、 意味がわからん
695 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:12:38 ] GDI+
696 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:17:15 ] >>694 例えば「abcde」と入力したら、 abcdeと書かれた画像を生成することです
697 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:22:29 ] System.Drawing
698 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:24:50 ] >>697 ありがとうございます 生成後のBitmapのサイズは取得できますか?
699 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 09:40:29 ] お前には無理。
700 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:05:18 ] >>698 TextRendere.MeasureTextとかで。
701 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:09:41 ] >>700 ありがとうございます! 本当に助かりました!
702 名前:デフォルトの名無しさん [2008/03/14(金) 10:14:34 ] マイクロソフトがC#用ネイティブコンパイラの製作を発表 これでC#は事実上最強言語になったわけだ an.to/?microsoft01news
703 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:24:23 ] 皆さん、>>702 はクリックしないようにね。
704 名前:デフォルトの名無しさん [2008/03/14(金) 10:27:37 ] >>702 ただの釣り 開くとビルゲイツの若かりしころの写真が出てくるだけ
705 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:32:03 ] ウィルスバスター2008役にたたねぇorz
706 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:36:19 ] これって何? ググってみたらan.to/?で始まるのがあちこちに張りまくられてるみたいだけど。
707 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:51:51 ] >>704 写真が出てくるだけじゃないんだが、 telnetつかってごにょごにょっしようとする。
708 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:54:09 ] >>706 「これ」が何を指しているのか分かりかねるが、 URLのことなら書いてる通りの転送サービスじゃないのか 内容のことなら見てないので知らない
709 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:29:51 ] ProcessStartInfoのArgumentsにスペースを含むファイルを指定しようとしましたが出来ません...
710 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:54:44 ] ""で囲め
711 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:04:00 ] どうもありがとうございました。
712 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:20:18 ] GDI+で放射状にグラデーションをかける方法はありますか? WPFのRadialGradientBrushみたいなことがしたいのですが
713 名前:712 mailto:sage [2008/03/14(金) 12:28:37 ] 自己解決 using (GraphicsPath path = new GraphicsPath()) { path.AddEllipse(0, 0, width, height); using (PathGradientBrush brush = new PathGradientBrush(path)) { brush.CenterColor = Color.White; brush.SurroundColors = new Color[] { Color.Red }; g.FillEllipse(brush, 0, 0, width, height); } }
714 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 12:50:20 ] たびたびの質問申し訳ありません。 SendKeysでスペースキーを送信したいのですがどのようにすればよいのでしょうか。 よろしくお願いします。
715 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:08:58 ] >>714 半角スペースをSendすればいい予感がしました
716 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:13:59 ] >>715 10回連続で送信したく思い、 SendKeys.SendWait("{ 10}"); のそうにやってみたわけですが出来ないのでここに書き込みました。
717 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:18:52 ] >>716 10回forを回すとか10個の半角スペースをSendすればいい予感がしました
718 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:19:33 ] >>717 それ以外に方法が無いのならばそれでしますが...
719 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:24:04 ] それ以外に方法がないんだが。
720 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:26:37 ] どうもありがとうございました。
721 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:25:46 ] このスレの流れを見てるとなんか面白い
722 名前:sage [2008/03/15(土) 00:46:41 ] くだらない質問ですが、ゲームをつくりたいとおもって とりあえずC#でゲームをつくりたいとおもうのですが、 どのようにして習得(勉強)したほうがよいのでしょうか? ネットでしらべるとC#の手引きのようなものがのってますが、 そういうものでいいのでしょうか? おしえてください。
723 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:48:38 ] >>722 諦める マジオヌヌメ
724 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:50:25 ] >>722 そういうものでいいのです。
725 名前:722 [2008/03/15(土) 01:56:50 ] >>724 わかりました。とりあえずそこで勉強してみます。 一応参考までに聞きたいのですが皆さんはどうやってC#を習得したのですか? できればおしえてください
726 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 02:08:48 ] >>725 ふつーに本を読んで。
727 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:41:30 ] すいません質問です。 現在forが入れ子で4段になっているのですが、 一番内側の場所から一気に1段目や2段目のforまでbreakするにはどうすればいいのでしょうか?
728 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:42:19 ] goto
729 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:46:39 ] あー!! 忘れてました、そうですね。C#には普通にありましたねgoto
730 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 03:59:29 ] >>725 C# 入門 でググレ。 俺はそのサイトと@ITとMSDNとぐぐる大先生だけで独学で習得したぞ。 細かいところとかは.NET関連の質問スレとかをROMったりしても勉強になった。 本なんぞ別に買わんでもネットで十分OOPはマスターできる。
731 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 05:57:25 ] 本買うよりネットで勉強したほうが効率いいですか?
732 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 06:45:38 ] ネットの長所・短所、書籍の長所・短所がわかってればおのずと答えは出るよね
733 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 07:49:39 ] 一度は本を通して読んだ方が近道だと思うが
734 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 07:57:59 ] まあどっちにしても、C#とかオブジェクト指向とかの知識はどうにでもなるだろ。 どんなゲームを作りたいのかにもよるんだろうけど、 その先に「画面の描画」って大きなハードルがある気がするなあ。
735 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:02:37 ] string.Format()で、文字列をn桁の左寄せで表示するにはどうすればいいでしょうか? printf("%10s %s",first, second); と同じようなことをしたいのです。 例えば、 aaa xxxxx bbbbb yyyy cc zzzzzzzzzzz のような文字列を表示するときに、 左の項目を最低10文字分とるようにしたいのです よろしくお願い致します。
736 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:20:34 ] PadLeft
737 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:23:22 ] >>735 string.Format("{0,-10} {1}", first, second)
738 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:28:22 ] >>737 ありがとうございます カンマで区切るのですか MSDNにも載ってないので助かりました
739 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:33:18 ] >>738 載ってるよ? 複合書式設定
740 名前:デフォルトの名無しさん [2008/03/15(土) 09:43:25 ] 複数のwavを繋げて1つにするプログラムを作りたいのですが、どうすればいいでしょうか? 何かライブラリDLLはあるでしょうか?よろしくお願いします。
741 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:46:14 ] class TreeEx : TreeView { public TreeEx() { this.Nodes.Add("ほげ"); } } こんなクラスをフォームに貼り付けて実行してみたら "ほげ"というルートノードが2つ作られました。 おかしいと思ってInitializeComponent()を見てみたら "ほげ"ノードを追加する処理が生成されてました。 勝手に追加されると困るのですが、これを止めることってできないんですか?
742 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 09:58:20 ] >>741 デザイナが自動生成しないようにするやり方はわからないけど、 とりあえずDesignModeなら追加しないってやれば回避できると思う。 デザイナで見れなくなるけど。
743 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 10:06:53 ] あと、試してないし出来るかどうかもわかんないけど、 Nodesプロパティをoverrideして、[Browsable(false)]つけてみるとか。
744 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:21:17 ] ShouldSerializeなんたらだったかのメソッド書いたらいいんじゃね?
745 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:50:40 ] ttp://dobon.net/vb/dotnet/control/lvitemsort.html にあるclass ListViewItemComparerを 引数をつけて呼び出して使おうとしているのですがエラーになったりちゃんと動作したりします。 エラーの内容から考えるとどうもe.Columnと_columnの数字が異なる事があるらしく 比較に失敗してしまうようなのですが、どうしてでしょうか?
746 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 11:55:59 ] >>742-744 Browsable属性ではできなかったので public bool ShouldSerializeNodes() { return false; } public new TreeNodeCollection Nodes { get { return base.Nodes; } } を書いたら望み通りになりました。 高機能なのはいいんだけどいろいろメンドクサイデスネ
747 名前:745 mailto:sage [2008/03/15(土) 12:09:07 ] '4' の InvalidArgument=Value は 'index' に対して有効ではありません。 パラメータ名: index だからインデックスではなくてそのlistviewitemのsubtime[4]が見つからないのですね。 でも、何で動いたり動かなかったりするのでしょう?。
748 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 12:11:54 ] 引数に渡ってきた値ぐらい確認しろよ
749 名前:745 mailto:sage [2008/03/15(土) 12:25:57 ] サブアイテムは20以上あるのですが何故動いたり動かなかったりするのかわかりません。 IComparer.Compare(object x, object y)のオブジェクトは何処から来ているのでしょうか?。 e.Column から __column にインデックスが入ってそれを基準にオブジェクトが返ってきて いるのだと思うのですがIComparer.Compareの内容はどうやったら見れますか?。
750 名前:745 mailto:sage [2008/03/15(土) 12:34:18 ] あぁ、お騒がせしましたorz。たぶん、わかりました。 IDEって凄く便利ですね。デバッグ字に変数にカーソルを合わせると内容まで表示してくれるとは 今まで気付きませんでした。
751 名前:デフォルトの名無しさん [2008/03/15(土) 13:34:22 ] このスレの住人なら知っていますね、あの糞開発ツールのことを ・自分のプログラムのバグなのかコンパイラのバグなのかわからない ・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している ・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている 糞だけど、政治的な理由で無理やり使わされているんですよね もういい加減、我慢するのはやめませんか? ・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。 ・あの糞開発ツール提供会社には「糞開発ツールは話にならない」と突き放しましょう。 バグレポートなどしてはいけません。改善要求などもってのほかです。 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。 ・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」 なんて話が出たら力強く机を叩き、会議室を出ましょう。 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。 糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。
752 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:47:19 ] リッチテキストボックスまたはテキストボックスのオーナードローってできますか?
753 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 13:51:36 ] 俺ならできる
754 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 14:56:23 ] >>753 君ならできる。やればできるさ!
755 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 16:33:15 ] 俺にもできる?
756 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:18:42 ] 無理
757 名前:デフォルトの名無しさん [2008/03/15(土) 17:24:14 ] 質問です。 Microsoft Visual C# 2008をつかっていいるのですが、 ビルドして実行すると一瞬だけ(入力まちがあるとき以外)表示されて すぐにきえるのですが、どうすればきえなくなりますか? おしえてください
758 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:25:37 ] ブレークポイント
759 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:26:48 ] 消えないようにするオプションとかなかったっけ?
760 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:27:43 ] 無いらしい
761 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:34:57 ] Console.ReadLine();でも入れれば
762 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:35:44 ] それだったらブレイクポイントのほうが。
763 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:37:28 ] #if DEBUGでいいじゃない
764 名前:デフォルトの名無しさん [2008/03/15(土) 19:01:46 ] >>757 コマンドプロンプトからexeを起動しろ
765 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:10:31 ] マルチスレッドのサンプルでは、よくマルチスレッドにするメソッドには staticをつけてるけど、 ttp://msdn2.microsoft.com/ja-jp/library/ms171728.aspx を見るとつけてない。 つけるのとつけないのとではどう違うの?
766 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:12:48 ] マルチスレッドかどうかとstaticかどうかは関係ない
767 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:14:05 ] static つけるとマルチスレッドでより扱いにくくなると思うんだが。
768 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:17:40 ] >>767 そのメソッド自体を同時にひとつしか動かさないなら、別に変わらないと思うけど。
769 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:19:35 ] オブジェクトの状態に依存しないメソッドを意識したらstaticが多くなるんじゃね
770 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:25:42 ] >>757 キーアサイン変えてるからキーわからないけど、ステップオーバー押していって実行すれば?
771 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:26:10 ] >>768 そういう保証が必要な時点で 扱いにくくなってるということだろう?
772 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:34:51 ] >>757 VS上なら「デバッグ開始」じゃなくて「デバッグなしで開始」だと終了後にpauseしてくれる
773 名前:765 mailto:sage [2008/03/15(土) 19:35:47 ] まあ別に気にしないでいいってことなんだな。 ありがとう。
774 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 21:39:03 ] >>773 気にしないでいいというより気にするべきところが違うという話では。
775 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:19:41 ] System.Windows.Forms.TextBoxを拡張して、 入力できる文字を制限したテキストボックスを作りたいのですが、 どのメソッドをオーバーライドするのが適切ですか? TextChangedだとテキストが変わってから戻すことになりそうだし、 KeyPressだとコピペに対応できなさそうなイメージがあって、 msdnみてもよくわかりません。 教えて。
776 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:22:13 ] >>775 俺も知りたい。 入力中に入力値を評価するのはどうやるんだろうな。
777 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:28:23 ] >>775 wndproc
778 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:37:22 ] >>775 コピペ対応はあきらめて(ShortcutsEnabled = falseと、コンテクストメニューにダミーをかます) OnKeyPressで純粋にキー入力にだけ対応するのが一番簡単。 コピペにも対応させたいのならTextChanedで二重にチェックするのが一番簡単で確実じゃないかな。
779 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 00:51:55 ] ペースト対応って難しいの? onPasteあたりをオーバーライドすればいいんじゃないの?
780 名前:デフォルトの名無しさん [2008/03/16(日) 02:14:43 ] Detail表示のListViewで、列ヘッダを押下したときにアイテムをソートさせたいです。 このとき、アイテム内文字列の比較モードを変更できますか? 具体的には、文字列"9"、"88"、"56"をソートした場合 "88","56","9"の順番にならんでほしいのですが、 "9","88","56"の順番になってしまいます。
781 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 02:18:33 ] ListView.ListViewItemSorter プロパティ
782 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:31:14 ] >>777 >>778 ありがとうございます。 早速実装してみます。
783 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:46:17 ] 継承Controlを作成するときに Controlがフォーカスされたときのイベントってどこに書くんですか? OnClickかとも思ったのですが、これだとTabキーで移動してきたときには動きませんし・・・
784 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 10:57:00 ] Enter/OnEnter
785 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 11:06:56 ] >>784 それかー。 ありがとーございます。
786 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 12:10:23 ] もっと低レベルなのは OnGotFocus/OnLostFocus
787 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:03:34 ] PerlとかRubyでゆーWWW::MechanizeみたいなスクレイパってC#に存在する? それとDB使ったツールを作って配布したいんだけど、PerlとかRubyだと一般ユーザに使ってもらえないので…
788 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:11:53 ] rubyならexerbつかってexeにすりゃいいじゃん。 スレチだけど
789 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 15:39:20 ] >>778 ここ2日くらいexerbとかrubyscript2exeやってみてたんだけどどうもうまくいかんのだ
790 名前:デフォルトの名無しさん [2008/03/16(日) 17:10:36 ] 質問です。以下のコードをビルドするとエラーがおきますが、原因がわかりません。 (bool型とdouble型が〜とでるのですが自分にはわかりませんでした。) どなたかおしえてくださいませ。 using System; class IfSample { public static void Main(){ Console.Write("身長(cm)を入力してください"); double n = double.Parse(Console.ReadLine()); Console.Write("体重を入力してください"); double m = double.Parse(Console.ReadLine()); Console.Write("BMIは{0}です", m / ((n / 100) * (n / 100))); bool bmi = m / ((n / 100) * (n / 100)); switch(bmi) { case (bmi<19.8): Console.Write("痩せ型です"); break; case (19.8<=bmi<24.2): Console.Write("普通です"); break; case (24.2<=bmi<26.4): Console.Write("やや肥満です"); break; case (26.4<=bmi<35.0): Console.Write("肥満です"); break; default: Console.Write("高度な肥満です"); break; } } }
791 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:13:53 ] エラーメッセージは完全な状態でこぴぺしろ
792 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:15:13 ] >>790 > bool bmi = m / ((n / 100) * (n / 100)); ここかな? double bmi = ・・・ みたいにしてみれば?
793 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:17:46 ] caseには定数式以外は使えない
794 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 17:19:33 ] if (bmi < 19.8) { Console.Write("痩せ型です"); } else if (bmi < 24.2) { Console.Write("普通です"); } else if (bmi < 26.4) { Console.Write("やや肥満です"); } else if (bmi < 35.0) { Console.Write("肥満です"); } else { Console.Write("高度な肥満です"); }
795 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:04:38 ] enum型の要素に自動的に割り当てられる値は、 [Flags]属性をつけようがつけまいが同じなのでしょうか? どこかで0,1,2,4になるようなことを読んだような記憶があるのですが、それは勘違いで、 自分で明示的に割り当てなければいけない。というのが正解なのでしょうか?
796 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:07:23 ] はい。勘違いです
797 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:55:31 ] >>795 俺もそんな話をどっかで読んだな。 どういう属性をつけるかとか、ぜんぜん覚えてないけど。
798 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:57:17 ] [Flags]付けるとビットフィールドになるんだろ。
799 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:00:40 ] 逆 ビットフィールドには[Flags]を付ける「お約束」
800 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:20:11 ] 実際に試したほうが早いし正確なのに
801 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:22:13 ] 聞いた方が早い。
802 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:23:41 ] ググってみたけど、Flagsでいいんじゃね? www.melma.com/backnumber_120830_2325135/ ↑C/C++の世界では、これは「ビットフィールド」とは言わんと思うけど。C#の世界では知らんけど。
803 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:49 ] >>802 の続き よく見たら、自動で割り当てるわけじゃなくて、自分で書かないといけないのか。
804 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:25:53 ] そのページは大嘘過ぎるな
805 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:27:16 ] [Flags]を付けないと、3とか5の値をとれない。
806 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:28:21 ] ハァ?
807 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 22:32:49 ] [Flags] public enum ABC { Z = 0, A = 1, B = 2, C = 4} [Flags]を付けないと ABC ab = A|B; でエラーになる。
808 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:00:19 ] ならないよ エラーになるような違いが出るんだったら属性じゃなくて言語に直接組み込まれてるだろ
809 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:09:29 ] (ABC.A | ABC.B).ToString()で違いが出るね やっぱりコンパイラの動作とは直接関係なくてMSとのお約束なんじゃね
810 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:17:53 ] そもそもそのためのFlagsAttributeなんじゃないんでしょうかw
811 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:35:39 ] どこが面白いのかわからない
812 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:40:54 ] まあさすがに自動でビットフィールドにしてくれるんだったら 属性じゃなくて flags enum ABC { … } みたいにするわな
813 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:02:24 ] Form1を閉じても、スレッド2が動いたままなので、 Form1を閉じたら、スレッド2を終了したいのですが、どのようにすれば良いのでしょうか?
814 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:32:05 ] Form1を閉じる動作のときスレッド2を終わらせる
815 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 04:54:36 ] >>814 それの書き方が分からないよ><
816 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 05:27:37 ] >>815 Form のイベント全て試す
817 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:19:34 ] スレッド2はループ中なんか?
818 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:35:03 ] form1.Closed += (obj,e) => thread.Abort(); こんなんじゃないか?
819 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:09:07 ] いちいちそんなんでラムダ式使うなカス
820 名前:デフォルトの名無しさん [2008/03/17(月) 16:16:57 ] smallint型のデータをSqlDataReaderを使って取得し、 int型変数へ入れるにはどうすればよいですか? List<int>へループで入れたいが 一部smallint型が ある場合に上手く出来なくて困ってます。
821 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:52:46 ] >>819 むしろそんなんだからラムダ式使うんじゃないかと。
822 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 17:59:52 ] >>817 そうです。break;の条件を、Form1が閉じたときとやりたいのですが、うまく行きません。 static int close1 = 0; public void Form1_Closed(object sender, System.EventArgs e) { close1 = 1; } while (close1 == 0) { //////////////時計 long tick = DateTime.Now.Ticks; DateTime d = new DateTime(tick); Console.WriteLine(d.ToString()); label8.Text = (d.ToString()); Thread.Sleep(1000); }
823 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:33:40 ] >>822 >label8.Text = (d.ToString()); GUIスレッド以外からフォームにアクセスしちゃダメ。 close1をvolatileにするか読み書き時にlockする。 BackgroundWorkerの使用をすすめる。
824 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:47:22 ] そもそもTimerじゃいかんのかと思ってしまうサンプルだ
825 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:11:01 ] >>821 ぶわぁか、こんなんでC#3.0にしてどうする。 せめて匿名メソッドだうんこ。
826 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:12:46 ] >>825 匿名メソッドは面倒だよ。 なげーもん。ラムダ式使ったら2.0には戻れんね。
827 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:14:33 ] C#やめてRuby(笑)でもやってろモルモン。
828 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:17:24 ] 言語の進化についていけない落伍者か Cでもやってりゃいいのに
829 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:26:29 ] C++から来てるとλ式とかは読みにくいな
830 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:40:15 ] 僕はくもん式上がりなのでλ式は余裕です。
831 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:43:04 ] C++もそっちの方向でしょ
832 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:44:34 ] C++にラムダ式が加えられても落伍者達はわからんわからんとぼやくんだろうな
833 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:59:52 ] すみませんλって言いたいだけみたいなのですぐに回収します λ......
834 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:01:55 ] λ式は書けても高階関数は書けないんでしょ?
835 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:05:56 ] 書けるに決まってるだろ
836 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:08:03 ] Enumerableクラスなんか高階関数のお花畑
837 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:28:33 ] >>829 俺、C#よりC++をよく使うが、ラムダ式が羨ましくて仕方ないんだが。
838 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:37:26 ] ここ1年ずっとC#使ってきたらC++書くのがきつくなった・・・
839 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:39:29 ] すみません、質問いいですか? FileSystemWatcherってありますよね? あれ凄くイヴェントを取り逃がすような気がするんですけど皆さんどうですか? 使い方がおかしいんでしょうけど、どうおかしいのかすら判りません。 例えばDeletedイベントハンドラってPathで指定したディレクトリ内の Filter指定したファイルが消されると発生するんですよね?
840 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:41:06 ] っていうか、ラムダ式って所詮、匿名デリゲートの焼き直しなのに何をそんなに目くじらたてるんだろう。 おまけで式木に変換される機能がついたけど、普通に使う分には匿名デリゲートにしかならない。 今思えば匿名デリゲートの記法を delegate(...){...} にしたのが失敗で、 先にラムダ式を導入していたらこの記法は絶対導入しなかったって中の人も言ってるくらいなのに。
841 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:41:50 ] イヴェント
842 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:45:54 ] 1.匿名メソッドを理解、使えるようになる 2.ラムダ式の便利さに気づく 3.ラムダ式は式木でも書けることに気づく 4.もっと複雑な式木を書きたくなる 5.某カッコだらけの言語の存在を知る 6.某カッコだらけの言語の奥深さを知る 7.某カッコだらけの言語で悟りを開く
843 名前:デフォルトの名無しさん [2008/03/17(月) 20:50:17 ] C#である変数を宣言するときに、アドレスを指定するにはどうすれば いいですか? また、アドレスから値を得るにはどうすればいいですか?
844 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:55:07 ] アドレスを指定するって何だよ 変数のエイリアスはつくれねえぞ
845 名前:デフォルトの名無しさん [2008/03/17(月) 20:58:40 ] すいません。。。 質問しなおします。 ある変数Aのアドレスが分かっているとしたとき、アドレスから変数A の値を取得するにはどうすればいいでしょうか?
846 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 20:59:40 ] >>840 >>825 >>839 InternalBufferSizeを増やす。
847 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:25:22 ] >>845 アドレスってどういう意味で言ってんの? *(int*)address まさかこういうことじゃないよね
848 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:27:32 ] >>845 unsafeでぐぐれ
849 名前:845 [2008/03/17(月) 21:39:03 ] >847-848 アドバイスありがとうございます。 変数につけられたメモリ上での番号のことを言っています。 簡単なコードを示していただけませんか? 例えば、メモリアドレス1000の値を取得したり、代入する場合など。。。 お願いします。
850 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:39:20 ] >839 explorerでけすと、ごみ箱へのMoveだから見逃す、というオチじゃないの?
851 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:39:39 ] unsafeつけるとCと変わらない書き方ができる
852 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:46:21 ] >>849 int a = 123; int addr = (int)&a; int aValue = *(int*)addr; こういうこと? 超危険なだけで何の意味もないからせめて普通にポインタ使えよ
853 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 21:57:22 ] 1つ値を読み取りたいだけなら、Mashal.Read*メソッドがお手軽かもしれない。
854 名前:845 [2008/03/17(月) 22:02:57 ] >>852 アドバイスありがとうございます。 示していただいたコードで、変数のアドレスを取得することができました。 しかし、アドレス1000に対しての代入?についてはまだ疑問が残ります。。。 849の繰り返しになりますが、例えばメモリアドレス1000に格納されている データを取得するにはどうすればいいでしょうか? また、メモリアドレス1000に値を格納するにはどうすればいいでしょうか?
855 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:10:11 ] 釣りだろjk そんなことをする必要はないし する必要があるならC#を使うはずがない
856 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:11:06 ] >>854 実際にこんなことやろうとしても、 割り当てられていないメモリを読み書きしようとしたとして、 OSに止められるだけだからな。 int* p = (int*)10000; int x = *p; *p = 666; int x = Marshal.ReadInt32((IntPtr)10000); Marshal.WriteInt32((IntPtr)10000, 666);
857 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:13:37 ] どうせ構造体のポインタが欲しいだけとエスパー
858 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:16:57 ] >>852 見て>>856 が思いつかないならポインタなんか触るべきじゃない
859 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:18:32 ] つかC#でポインタ使うとこってどこ?
860 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:25:08 ] Interopとか画像処理とか構造体の配列触るときによっぽどパフォーマンスが大事なときとか
861 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 23:56:57 ] >>854 勘違いしてない? ここはC♯(シーシャープ)という言語のスレだぞ。 もしかして学校の宿題なら、それは、CとかC++という言語じゃなかったか?
862 名前:822 mailto:sage [2008/03/18(火) 00:38:27 ] >>818 ,823-824 レスサンクス 明日試してみる。
863 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:36:23 ] 多次元配列は使いそうだけど、ジャグ配列って使わないよな? 覚えるのめんどくさいんだが・・・
864 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:40:27 ] >>863 Cから来たら無意識にジャグの方を使う。
865 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:42:29 ] >>864 ・・・まじかよ、じゃあ素直に勉強するわ d
866 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 02:46:24 ] いや勉強するもなにも 宣言と要素アクセスのやり方だけ知ってりゃいいんじゃん ジャグのほうは単なる配列を要素とする配列ってだけの話だし 無意識に使われるジャグ配列って「ジャグ」じゃなくね?
867 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:09:39 ] List<int[]> lst = new List<int[]>(); //動的に配列を追加していくループ for(...){ lst.Add(....); } int[][] jag = lst.ToArray(); 格納される配列の要素数が動的に変化するような場合とかもあるし、 ジャグのが柔軟。
868 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 03:56:09 ] 普通ジャグにしね? ジャグじゃないとN次元配列が書けんし
869 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 04:30:05 ] そんなことはない。
870 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 06:30:03 ] ジャグ配列ってすごく使いにくいぞ
871 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 07:46:45 ] パフォーマンスはジャグの方が全然良いけどな。
872 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:16:17 ] 使いにくさで言うと断然多次元配列だと思うけど Sortメソッドも使えない
873 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:24:21 ] 多次元配列よりジャグの方が直感的なんだよな。気がついたらジャグで作ってることが多い気がする。 初期化するときも使用するときも、機械的にいつも似たようなfor文で処理できるし。 >>871 すごく初耳。
874 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 09:50:02 ] >>873 rectangular の方は a[i, j] → *(a + i *WIDTH + j) jagged の方は a[i][j] → *(*(a + i) + j) 相当で、一見 rectangular の方が早そう(間接参照よりは掛け算の方が軽い)だけど、 1次元配列の参照は IL が専用命令持ってるけど、 多次元配列参照命令がない関係で jagged の方が早いって聞く。 jagged 配列の方が柔軟だけど、new しまくらないといけないのが面倒なときもあるのよね。
875 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 11:40:01 ] ジャグ配列の方が速いのは一番右の添え字が連続したアクセスの場合だけだったような
876 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:44:04 ] メインフォームにおいて、文字キー T とか Y のkeyPressイベントを起こすにはどうしたらいいんですか? private void MainForm_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { } の中に記述してもイベントそれ自体が発生しないんですが・・・
877 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:07:50 ] フォーカスがないだけだろ
878 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:08:47 ] >>876 そのイベントハンドラはちゃんとイベントにバインドしてあるのか
879 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:23:40 ] KeyPreview
880 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 16:56:20 ] get,setの利点が不明(C#2.0) public string Hoge{ get{ return this.hoge; }} こう書くと public string getHoge{ return this.hoge; } と書くのに比べて何が幸せなんだぜ?
881 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:12:21 ] Console.WriteLine(Hoge); Console.WriteLine(getHoge()); あと,リフレクションとの相性
882 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:14:58 ] しりあらいず
883 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:22:10 ] リフレクションというかコンポーネントモデルやな。PropertyDescriptor。 …ヘジは1.0からこの辺のものを第一言語要素にする点こそ重要って 言ってた気がするがスルーされっぷりが可哀想というか
884 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:26:51 ] getHogeがメソッドでないから、きっと記述方法のことを言ってるんだとエスパー 括弧なしのgetHogeでHogeプロパティ作れと プロパティとアスセサ(メソッド)の違いについてならそういう風に書くだろうし
885 名前:デフォルトの名無しさん [2008/03/18(火) 17:35:12 ] iPod touchみたいな慣性付きスムーズスクロールはどうやるのでしょうか? そもそも普通のスムーズスクロールはどうやるのでしょうか
886 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:40:07 ] 以下のプログラムから出力される数字を、 wavファイルにするにはどうすればいいでしょうか。 #include <iostream> #include <math.h> using namespace std; const int rate=44100; int p(double q, int f, int t) { const double pi=3.1415; double x; x=sin(2*pi*f/rate*q); cout << int(x*127+128+0.4999); cout << "\n"; if (f<t) p(q,f+1,t); return 0; } int main(void) { p(440.0 , 0, rate); return 0; }
887 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 17:44:02 ] ごめ。 c++スレかと思った・・忘れてください
888 名前:デフォルトの名無しさん [2008/03/18(火) 19:03:44 ] PictureBoxを使って、 Font font = new Font(fontName, size); g.DrawString(code, font, Brushes.White, 0, 0); で、1文字描画します。 この時描画した文字の幅を求める手段を教えてください。
889 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 19:07:52 ] MeasureString
890 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 21:09:56 ] WebColorConverterのインスタンスを取得するにはどうするのが正しいの? MSDNにはTypeConverterのインスタンスは直接作らずにTypeDescriptorを使えと書いてあるけど TypeDesctiptor.GetConverter(typeof(Color))だとColorConverterが返ってきてしまう
891 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:07:38 ] 今でも>>886 のことが忘れられない…
892 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:24:13 ] 宇宙仮面のC#プログラミングってサイトの、ED が点滅するボタンのページ >次に、ツールバーのカスタマイズにより、コンパイルしたアセンブリーをツールバーに登録します。 ってどういうこと? ツールバーのユーザー設定? コンパイルしたアセンブリーって項目があるってこと?
893 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 22:33:46 ] 事故解決しましたごめんなさい
894 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:02:56 ] class A<T> { ・・・ } とあるとき、Tの型をAのクラスの外から調べて使っていく便利な方法があったら教えてください。 リフレクションを使えばなんでもできますが、できれば使用したくないです。 C++ では class A<T> { typedef T ElementType ; } とできたので話は簡単だったんですが・・・ #VBのLinq to XMLが便利すぎ〜〜〜〜ぐはぁぁぁぁ #ヘジたぁぁぁん
895 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:05:32 ] dateTimePickerをパースして1日追加して表示しようとしているのですがなりません 何か勘違いしているのでしょうか? DateTime dt = DateTime.Parse(dateTimePicker.Text); dt.AddDays(1); lvi.SubItems.Add(dt.ToShortDateString());
896 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:38 ] >>894 なにがしたいのかわからんけど class A<T> { public Type ElementType = typeof(T); } こんなんじゃだめなの?
897 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:11:49 ] >>895 勘違いでーす DateTime dt = DateTime.Parse(dateTimePicker.Text); dt=dt.AddDays(1); lvi.SubItems.Add(dt.ToShortDateString());
898 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:13:29 ] >>896 それだと、 A.ElementType inst = new A.ElementType(); とかできなくて不便なんですよ。
899 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:19:26 ] >>898 じゃあ void Method<T>(A<T> a) where T : new(){ T item = new T(); } こうじゃねえの
900 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:24:16 ] >>898 A<T>にこんなメソッド追加すれば public T CreateElement() { return new T(); }
901 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:27:08 ] >>899 それもちょっとなんですよね、全部のメソッドについてやらないといけなくて、場当たり感が・・・ C#に移ってみたもののC++とは勝手が違って難しいです、逆にC#では意外とあっさりできる物なども多いのですが。
902 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:28:39 ] >>897 ありがとうございます。 盲目でした・・・。
903 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:48:06 ] >>895 なんで DateTime dt = dateTimePicker.Value.Date.AddDays(1); じゃだめなの?
904 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 08:51:20 ] どうでもいいところに反論したがる奴がいるなw
905 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:10:16 ] 903じゃないがどうでもいいかぁ? カスタムフォーマットとかで元のコード落ちたりしないだろうか
906 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:15:29 ] 大体TをnewするよりA<T>を使う側がそのものずばりをnewする方がうまくいくと思うがなあ
907 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:16:47 ] >>906 だよね 使う側はTがなにか知ってるんだし
908 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:31:56 ] てか、いろんなA<T>に対して同様の処理をしたいなら それこそ、その関数なりクラスなりをジェネリックにすべきだと思うが
909 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 09:37:48 ] 独り言キモイ
910 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:41:47 ] 馬鹿ってのはどうして自分のことばを自分に適用できないのかねw 統合失調なんじゃないのチミ
911 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 12:59:40 ] >>910 因果関係が逆な気もするぞ。 そういう人間のことを馬鹿というのでは。
912 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:10:00 ] VB.NET質問スレ(Part25) pc11.2ch.net/test/read.cgi/tech/1203650042/294 294 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/14(金) 20:29:48 ふーん偉そうに他人を「偉そうだ」と言うのは偉そうじゃないんだ。 本当馬鹿ってのはどうしていつでも自分自身の言葉を自分に適用できないんざんしょ不思議。 まあ基本であることに全然異議はないんだけど、その基本すら理解できない御仁がいらっしゃるから 「偉そうに」貴殿はまちがっておられるぞよ、と進言差し上げたしだいなんでございますがね。 345 名前:デフォルトの名無しさん[sage] 投稿日:2008/03/17(月) 21:08:14 多分「俺」に否定的な言葉を投げる奴はみんな「(また)お前」なんだよw 冗談抜きで最近こういう統合失調一歩手前って人間増えてる気がするね またお前か。 ふらっとスレだけは荒らさないでくれよな。
913 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 15:38:20 ] どう見てもビョーキだなwww
914 名前:デフォルトの名無しさん [2008/03/19(水) 16:04:07 ] 統合失調好きだなあ
915 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:03:12 ] >>912 言ってるそばから自分棚上げかよw 本当馬鹿ってのはどうして自分自身の吐いてる言葉を自分に適用できんの? それから「荒れて」いるのはスレじゃなくてお前さん自身の脆弱な心、でしょ?w 馬鹿で心が弱いお前さんの感情が刺激されること=スレが荒れること、ではないよ。
916 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 19:11:08 ] マ板でやれ
917 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 00:39:48 ] Webbrowserコントロールがjavascript周りでエラーを吐きまくるのでオフにしたいんですが、 サンプルコードが載ったページをご存じないですか? いくつか類似のページはありますが(www.divakk.co.jp/aoyagi/csharp_tips_wbzone.html )、 旧.Net用でVS2005/2008では使用できませんでした。 ページを読み込む前にDLしたページキャッシュを読んで書き換えて無効化する方法も考えましたが、 読み込みをキャンセルさせる方法が分からず、汎用性もないため諦めました
918 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:00:45 ] USBカメラを単純にプレビューするだけのサンプルってないですかね? 色々探してみたんだけど、どれも複雑で。。。
919 名前:デフォルトの名無しさん [2008/03/20(木) 03:01:04 ] >>917 WebBrowser.ScriptErrorsSuppressed = true;
920 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:15:31 ] なんでVBのサンプルがC#より上にあるんだよ
921 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:18:37 ] アルファベット順だろうな
922 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:29:42 ] じゃあCの方が上だろ
923 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 08:32:49 ] ゲイツがBASIC世代だから?
924 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 09:06:52 ] xmlでnode名とvalueを指定して 特定箇所のvalueを更新する方法は ありますか? ファイル丸ごと読み込んで書き出す方法しか 知らないので教えて下さい
925 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:06:39 ] >>922 Visual BasicとVisual C#とVisual C++だったらVBが先だろ。
926 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 10:49:55 ] >>924 1) 一気に読み込んで、DOMを使って編集する。 2) XmlReaderで少しずつ読みながら、XmlWriterで書き出す。
927 名前:デフォルトの名無しさん [2008/03/21(金) 14:02:14 ] Linqを使い始めたら、yield を使った即席の IEnumerable ができると便利だと思ったのですが・・・ static System.Collections.Generic.IEnumerable<int> CreateInt100() { for (int i = 0; i < 100; ++i) yield return i; } private void button2_Click(object sender, EventArgs e) { System.Collections.Generic.IEnumerable<int> collection = CreateInt100(); foreach (var element in collection) System.Console.WriteLine(element); } 上のメソッド CreateInt100() を毎回作るのは面倒くさいですし、名前空間を汚すので匿名メソッドにしてみようかと考えました。 private void button2_Click(object sender, EventArgs e) { System.Func<System.Collections.Generic.IEnumerable<int>> lanbda = () => { for (int i = 0; i < 100; ++i) yield return i; }; System.Collections.Generic.IEnumerable<int> collection = lanbda(); foreach (var element in collection) System.Console.WriteLine(element); } 残念ながらエラーになってしまうのですが、何か良い方法をご存知の方がおられましたら教えてください。
928 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:08:54 ] Enumerable.Range
929 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:23:33 ] >>928 すまみせん、int のシーケンスは例であって、int のシーケンスを作りたい訳ではないです。 手際よく yield を含むコードを書き下したいのです。
930 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:25:27 ] できないなあ
931 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:32:03 ] ツリーコンテナの列挙をするときには便利な機能と割り切ってそれ以上深く考える事をしなかったんですが・・・ yield 便利だね、なんでもかんでもコレで書いてしまいたくなる衝動に駆られます。
932 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:33:50 ] それはするべきじゃないだろう
933 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:36:43 ] Haskellの無限リストより書き方が直観的で良いです
934 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:53:32 ] クラスの比較をするときに、比較したいメンバを片っ端から .Eulals 等で比較するメソッドを 片っ端から書きまくって、Eulals , GetHashCode …とこれまた片っ端から書きまくって 比較対照数×比較系メソッド数分の条件判断を書くという、ちょっと間違えれば書き損じ出まくりです yield を使って列挙する側は、列挙する側、比較する側は比較する側とバシッと分けて書いてみると…なかなか気持ちいいです。
935 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 14:58:46 ] >>934 よくわかんない コードで頼む
936 名前:デフォルトの名無しさん [2008/03/21(金) 15:11:35 ] 余りに気持ちいいので、ちょっと紹介しておきます。 クラス C の Equals GetHashCode のオーバーライドが、メンバーの変更によって変更しなくても済みやすくなっています。 using System.Collections.Generic; using System.Linq; public class C { public int Field1; public int Field2; public string Field3; public override bool Equals(object obj) { C tmp = obj as C; if (tmp == null) return false; IEnumerable<object> x = this.CreateFieldEnumerable(); IEnumerable<object> y = tmp.CreateFieldEnumerable(); return x.SequenceEqual(y); } public override int GetHashCode() { return CreateFieldEnumerable().Sum((a0) => a0.GetHashCode()); } IEnumerable<object> CreateFieldEnumerable() { yield return Field1; yield return Field2; yield return Field3; } };
937 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:23:32 ] 文字がアルファベットかどうか判定したいんだけど、 Char.IsLetter('あ'); の結果がtrueを返してくる。 ほかにいい方法ありますか?
938 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:34:09 ] >>936 GetHashCode()に和を使うのはどうかと
939 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:35:08 ] >>937 ( ゚д゚)つ正規表現
940 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:15 ] a<= x && x <= z || A <= x && x <= Z
941 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:36:35 ] >>938 そんなの問題があるならテキトーに替えてくださいよ(汗
942 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:39:04 ] >>937 「アルファベット」の定義は?
943 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 15:44:27 ] HashCodeの作り方がよくわからんからEqualsのオーバーライドもあまりやりたくないな
944 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:10:50 ] >>939 >>940 >>942 どうもです。普通にa-zA-Zで比較して判定します。 それにしてもMSDNのあの説明では日本人は勘違いしますね。 MSは苦労したとは思いますが。
945 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:30:12 ] 日本語のアルファベットはひらがな、カタカナ 英語のアルファベットはA〜Z 単にアルファベットと聞かれたらどちらか分からない。
946 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:37:49 ] 一般的な日本人はアルファベットと言われたらA-Zの26文字のことだと思う ANK=Alphabet Numeric Kanaって単語だってあるのに。
947 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:44:07 ] >>945 MessageBox.Show(char.IsLetter('山').ToString());
948 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 16:57:23 ] >>944 ぼくは一般的じゃないんですかそうでつか><
949 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:05:24 ] >>948 私は >>946 とは別人ですよ。あなたは人より教養があるんだと思います。
950 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:30:00 ] ギリシャ文字はアルファベットの名前からしてもアルファベットだし、 ヘブライ人も彼らの文字をアレフベートって呼んでるし、 そう考えると、ヘブライ文字の親類のアラビア文字もアルファベットだし、
951 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 17:57:47 ] >926 domとうい単語しらなかったです ありがとう
952 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 18:09:09 ] もうとっくに結論でてますが・・・ 昔と違って、アルファベットの概念が広がっているね int 山 = 5 ; とか、コンパイル通るし、UTF8 で便利になった反面混乱も多々あり。 ja.wikipedia.org/wiki/Unicode あえてライブラリを使うなら、基本ラテン文字 (ASCII互換)、かつアルファベットを調べるとなると Char.IsLetter('あ') && 'あ' <= 0x7f アホ臭いから、直接文字コードを調べるのが良さそうな気がしますね。そしてせっかくの新機能があるので拡張してみた。 static public class CharExt { public static bool IsBasicLatin( this char c) { return c <= 0x7f; } } class MyClass { void func() { bool isBasicLatin = 'A'.IsBasicLatin(); // (笑 System.Console.WriteLine(isBasicLatin); } }
953 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 22:52:21 ] >>951 xsd.exe .net で検索してみな
954 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:04:31 ] なになら最近できたというらしい WPF を使ってみた。 Xamlとか一切使わずに、フルにC#でコーディングしてみたんだけど、System.Drawing.Graphics + Pain イベントと比べて断然楽だね Linqに引き続き、説明がさっぱり分らんのは相変わらずで、なんとかしてくれよマイクロソフト・・・ 簡単説明サイトをだれか作ってくれないかな・・・自分で作れってかorz
955 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 12:08:41 ] XAML使わないと添付プロパティとか物凄く面倒だぞ
956 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 13:32:49 ] むしろWPFはコーディングしたら負けだろ
957 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 14:29:50 ] 固定デザイン固定アニメーションならコーディング無しでもいいが プログラマブルに動かしたければ、やはりコーディングするしかないよ いやできなくは無いが、逆に面倒になるだけという意味で。
958 名前:954 mailto:sage [2008/03/22(土) 14:54:20 ] とりあえず棒グラフとか折れ線グラフとか作ってます、描画クリッピングの処理とか つまらない処理にも関わらず、工数の取られる作業がプロパティーの設定とGrid親子構造の作り方一つで 簡単対処できるのには驚愕しています、最後に印刷処理を作りたいのですが、どうするんだ・・・
959 名前:954 mailto:sage [2008/03/22(土) 14:58:45 ] それと、デタラメに描画が速いね、これにはタマゲタ さすがDirectX使っているだけの事はある、描画範囲外に大量にLineを配置しても全然速度低下がない。 これが System.Drawing.Graphics ベースだと、Pain 処理はややこしくなるし 手抜きして全部描画しようものならガックンガックンになるし。
960 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:42:46 ] 今C#のCUIを勉強してるんだが、練習問題ってどっかないかな? 探してみても、本とか講座とかしか出てこないんだがー
961 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:44:43 ] CUIって勉強するようなことあるのか?
962 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:49:35 ] >>961 プログラミング自体が初めてだからさ、一応勉強しとかないとと
963 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:53:20 ] ConsoleクラスちょっといじればCUI限定の問題はクリアと考えていい
964 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:54:54 ] >>959 Pain処理ってある意味間違ってないよなw >>962 unixコマンドのリファレンス引っ張ってきて実装すれば catとかtelnetとか
965 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:08 ] >>963 そんなもんですか、やっぱ基本的にGUI弄るってことかな ありがとうございます^ >>964 ググってみます^
966 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 18:58:10 ] CUIをやらなきゃいけない理由でもあんの? 初めてなら逆に手を出す必要はないと思うんだが。
967 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:13 ] >>966 いやー、やっぱ基本的なことは知っといた方が良いのかなと
968 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:51 ] CUIとかGUIなんてどうユーザとやり取りするかって話でしかない 本当にやりたいのはその先だろ? >>966 "言語の"勉強にはCUIのほうがいいと思う
969 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:02:58 ] 言語仕様からきっちり解説するような本だとだいたいコンソールからだよ
970 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:14:39 ] てことは、コンソールが必要になったら、その都度調べる程度で平気ってことですかね どうもです、頑張ります^
971 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:16:01 ] GUI を根本からサポートしている言語を除けば、 GUI まで教え始めるとページ数多くなるからな。
972 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 19:36:12 ] GUIだとはじめに必要な「おまじない」が多いし 入出力がまどろっこしいから言語仕様の解説には不向き
973 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:11:32 ] >>972 C#だと、それほどでも無いだろ、Windowクラス生成して以上終了だし。 Win32使うと、激しいことになるけど 初代VS.NETには、CUIベースのわかりやすいサンプルが多かったんですけどね。 クイックスタートのサンプルもう一度復活させてもいいと思うんだけど・・・
974 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:13:39 ] >GUI を根本からサポートしている言語を除けば、 だからな。 C# は GUI に力要れてるから問題ない。
975 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:20:50 ] 言語の勉強する場合、色んなロジックを書いて その処理結果を簡単に出力出来るという点では、 コンソールの方が簡単でいいよね。 GUIだと、そもそものイベントドリブンの仕組みから 色んなコントロールの説明とかしなくちゃならないから。 いきなり、言語の学習の次のステップからになってしまう。
976 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:21:32 ] 下手な入門本でGUIだとすぐVSでポトペタだからなぁ。
977 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:24:32 ] 言語の勉強なら文字の入出力ができれば別になんでもいいわけで 一番手軽なのがコンソールっていうだけ 使う話とはまた別だ
978 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:39:27 ] つまり言語の入門にはTcl/Tkが最も優れているということですね
979 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:41:44 ] WinFormsなら初心者でも簡単だけど WPFになるとXAML覚える方が大変なんじゃないか?w
980 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 20:59:23 ] >>975 C#の場合それは問題多いだろ、開発環境が無ければ何故その機能があるのか、そうなっているのか理解できないものが大量にあるし。 たとえば、カスタムアトリビュートしかり、深いネームスペースしかりで。
981 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 21:57:09 ] >>980 その反論の意味が全く分からないんだが。 では、GUIの方が入門者にとって、C♯"言語"の学習をし易いのか?
982 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:14:14 ] つか、今の初心者つったら、CUI? command.com? 何ソレ? だろ、そこから使用方法と説明が必要だ。
983 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:18:29 ] いまどきの新人にパイプの説明したら一週間考え込まれた事があるw そんなオレは、もうロートル入りだorz
984 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:24:29 ] >>982 今の初心者はcmd.exeだからな
985 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 22:59:38 ] .NET学習的にもPowerShellがvista標準じゃなかったのは痛いなぁ
986 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:06:46 ] プログラミング Microsoft Visual C# 2005 言語編 (マイクロソフト公式解説書) プログラミングC#―C#2.0/.NET2.0/Visual Studio2005対応(オライリー) 読むならどっち?
987 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:08:20 ] オライリーの方。 Googleブック検索でないよう少し見てみたらよかったし「初めてのC#」もよかったから。
988 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:10:30 ] そういえばC#使ってるけど未だに解説書の類を読んだ事がないな。 もう何でもpublicで作ってるしその内問題に遭ったりするんだろうか
989 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:16:40 ] まだ俺2.0止まりでXAMLとか分からないんだけど、ASP.NETとかでやってるみたく FormベースでXML使ってコントロールとか定義できる物ってことなの?
990 名前:954 mailto:sage [2008/03/22(土) 23:33:53 ] >>989 使い始めて間もないのですが・・・簡単に説明すると フラッシュみたいな物、htmlでいえば、imagタグとか適当にホームページ作成ツールで作って それに名前を付けておいて、サイズや位置情報を、プログラム側からいじくれるという仕掛け。 各種タグで表示するオブジェクトには名前がつけられて、 その名前.アトリビュート名 = 適当な値 とすると、値が書き換えられて、表示が変化します。 Gridというタグがあって、これは各種オブジェクトを格納(子タグが作れる)、ここに自分で生成したオブジェクトを追加する事もできます。 基本的な要素には、LineとかPolyLineとか、DirectXで良く見られるプリミティブ要素のようなものがあって、ページ中に線やポリゴンなども書けます。 これに座標変換行列を効果させて、回転・拡大縮小・平行移動・平行四辺形的な変形といった事ができます。 最終的にはDirectXで描画されるらしく異様に高速。 大半はデザイナでデザインしておいて、必要な所だけをコードしてしまえます。 Paintイベントで再描画のコードは書く必要なしです。
991 名前:954 mailto:sage [2008/03/22(土) 23:41:12 ] 逆にDirectXが分るなら、メッシュの中にボタンやらラベルやらといったプリミティブがあるイメージかな?
992 名前:デフォルトの名無しさん mailto:sage [2008/03/22(土) 23:47:13 ] thx。そろそろ俺も3.0始めねば・・・。