1 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:11:11 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part52 pc12.2ch.net/test/read.cgi/tech/1238548552/ Visual C# 2008 Express Edition 日本語版 www.microsoft.com/japan/msdn/vstudio/express/vcsharp/ その他テンプレ>>2-5 くらい
697 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:49:45 ] Process.Start()で存在しないフォルダを起動したら、FileNotFoundExceptionじゃなくてSystem.ComponentModel.Win32Exceptionというのが来る Frameworkが吸収するところじゃないのか
698 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:34:45 ] あなたはそれがいいと思うかもしれないが、 大多数の他人はそう思わない
699 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 16:48:15 ] いやそうでもない
700 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 16:59:52 ] Frameworkが吸収すべき所のような気がするけど 実害は無いからとやかく言わない
701 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:06:23 ] >>697 つうかふつうに固まるだろ・・・・ 問題はみに行く時に固まるつうのが問題なわけで なにかボタン押したときにチェック ↓ チェック中ですのダイアログ的なものと共に強制キャンセルボタン ↓ チェック開始(バックグラウンドワーカーでもなんでも) ↓ バックグラウンド終了前にキャンセルされたら ナックグラウンドワーカー停止 こんなんでいいんじゃね? 成功のときはバックグラウンドの完了イベントかなんかで処理するとか 色々あると思うけど
702 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:25:47 ] Microsoftの決めたことなんだから正しいお
703 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:37:58 ] >>697 吸収してどうしろって? 別プロセスからの例外をプロセス間通信で受け取るの? それをフレームワークでやれって?
704 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:01:23 ] なん…だと…
705 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:19:40 ] Windowsフォームで質問。 Form2 _form2 = new Form2(_form1); としたとき、_form2.FormClosedのイベントハンドラで_form1.Close()するコードを書くと、 Form2.OnFormClosed()が何度も呼ばれる(つまりFormClosedイベントが何度も発生する) ようなんだけど、これは仕様?バグ? 仕様だとしたらどう理解したらいいんだろう?
706 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:25:45 ] OwnerはCloseするときOwnedFormsを全部Closeする って言えば分かる?
707 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:34:10 ] >>706 そのレベルの話はOK
708 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:53:58 ] 普通に再帰呼び出しになってるだけっしょ 止まるのはハンドルが消えるから
709 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 20:59:15 ] >>708 現象の説明としてはそれでいいと思うんだけど、 俺が聞きたいのはそういうことじゃなくて、それが仕様なのか、 仕様だとしてそれに何らかの意味があるのかってこと。 FormClosedイベントの意味は、「Close()が呼ばれました」ではないはずだよね。
710 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:06:03 ] > FormClosed イベントは、ユーザー、Close メソッド、または Application クラスの Exit メソッドによって > フォームが閉じられた後に発生します。 「Form.Closeが呼ばれました」でも大体いいんじゃないかな ま、おいらはMSの人じゃないので意味とか答えられないけど
711 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:09:46 ] >>710 それはさすがに読解力マズいんじゃないかと思うけど。。
712 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:50:30 ] 何度も呼ばれるって何度?
713 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:52:55 ] バグだよ、>>705 のプログラムのね
714 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:55:57 ] Closed≠Disposedと理解すれば良い
715 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:07:36 ] >>710-711 MSDNの説明から読み取れるのは ・ユーザ操作、Close()、Application.Exit()で発生しうる ・FormClosedが発生した時点ではフォームは閉じられている の2点だけじゃね? てか、説明が怪しいと感じたら英語版を読むといい それでも怪しいときも多いけどな
716 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:20:48 ] ちなみに何回くらい呼ばれるの? また毎回同じ回数なのか場合によって変わるのかどんな感じ?
717 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:33:34 ] >>716 以下が問題を再現する最短のコード。 コンストラクタは省略してある。 public partial class Form1 : Form { Form2 _form2; protected override void OnLoad(EventArgs e) { base.OnLoad(e); _form2 = new Form2(); _form2.FormClosed += new FormClosedEventHandler(_form2_FormClosed); _form2.Show(this); } void _form2_FormClosed(object sender, FormClosedEventArgs e) { Close(); } } public partial class Form2 : Form { int _count = 0; protected override void OnFormClosed(FormClosedEventArgs e) { base.OnFormClosed(e); Console.WriteLine("Form2.OnFormClosed Called ! // count = {0}", _count++); } }
718 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:53:53 ] >>717 とりあえずDisposedイベントでForm1.Closeやるように変更したら 現象回避出来たぞ
719 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:00:06 ] >>718 うん、それはわかるけど、 俺が知りたいのはこういうコードを書くと「何故」そんなことになってしまうか、なんだ。 普通に考えれば、OnFormClosedが何度も呼ばれるのは理解に苦しむと思うんだが。
720 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:00:45 ] Form2ClosedでForm1Closeして新しいClosedが発生するのがおかしいと言ってるの? 何がおかしいのかよくわからない
721 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:02:44 ] >>719 まあ所持関係にあるForm同士として呼び出してるんだから > _form2.Show(this); Form1閉じる→Form2閉じる っていうのは標準動作として組み込まれてる 逆方向の動きを追加したい場合(Form2閉じる→Form1閉じる)は 標準の動作と競合しないようにしなきゃ不具合が起きて当たり前 FormClosed()の時点ではForm同士の所持関係を破棄していないようなので 無限ループが起きる Disposed()の時点でForm同士の所持関係を破棄しきったので やりたい動作が実現できる
722 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:07:42 ] FormClosedイベントなんだから、「完全にフォームが閉じた後」に発生しないとおかしい と言いたい訳か。 んで_form2が完全に閉じた後だから、_form2_FormClosedが呼ばれても子フォームのCloseが呼ばれるのはおかしい、と
723 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:15:06 ] Close()をこうやって呼べばいけるっちゃいける。 this.BeginInvoke((MethodInvoker) (() => Close())); 親フォームが子フォームを閉じるための参照のコレクションを持ってて、 親フォームから登録を抹消するタイミングがFormClosedの後なんだろうな。
724 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:16:44 ] >>722 >_form2が完全に閉じた後だから、_form2_FormClosedが呼ばれても子フォームのCloseが呼ばれるのはおかしい、と いや、そこは必ずしもそうは思わないけど、>>717 のコードの動作が「おかしい」と思う点は、 何度も言うけどOnFormClosedの呼ばれ方が、MSDNに書かれたFormClosedイベントの仕様に 反するように思える点。
725 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:17:10 ] >>723 なんかそれタイミング次第で うまく行ったり例外おきたり 危険な動作しそうな気がする
726 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:18:43 ] 例えば、Form.Show()は何度でも呼べるけど、 その都度Shownイベントが発生したりはしないよね。
727 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:19:47 ] >>724 Formのオーナーシップの関係で Formクラスから子FormのCloseが呼び出されるってことでしょ 何も反してないよ
728 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:23:40 ] >>727 だから、FormClosedイベントの意味、つまり仕様は、「Closeメソッドが呼ばれました」 ではないよね。少なくともMSDNライブラリを詠む限り、そうは読み取れない。
729 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:26:58 ] お前が明示的に呼んだときしかCloseメソッドが呼ばれないと思ってるということか
730 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:37:46 ] >>729 こんなこと言いたくないが、馬鹿はすっこんでてくれよ。 二重の意味で日本語も読めないのかまったく……
731 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:40:59 ] >>730 どう見てもお前の方が馬鹿だが
732 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:41:33 ] むしろMSDライブラリを読み取れないレベルの馬鹿がやめた方がいい お話になりません
733 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:59:09 ] 横やりだが>>728 とかの言ってることは別にそんなおかしくないぞ。 Closeを何度呼ぼうが、実際に閉じたタイミングで一度だけ発生する と期待するのは普通の感覚。 MSDNの説明も普通に読めばそうだと期待する。 一度しか呼ばれない、とは明記されてないし結局仕様なんだろうとは思うけど。
734 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:05:38 ] 1度テストしてみて理解できないようなら方法は無い
735 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:14:25 ] MSDNのクラスのドキュメントって クラス単体の動作を説明してるのが基本であって フレームワークの中でそのクラスがどう扱われてるかは オマケ程度にしか説明されていない っていうことをわかって無いから的外れなこと言い出すんだよね
736 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 01:28:44 ] >>735 ほほう、「的外れ」とは? 具体的に何がどう「的外れ」だ、と? いや、無理しなくていいよ。 そんな自分の頭で理解していることを表現しているとは思えない、 悪いけど意味不明な文章を書いているようじゃたぶん正面からの回答は無理だと思うから。 しかし、別に初心者が悪いと思わんけど(誰だって最初はそうだし) 知りもしないことに口出しして挙句に相手をいきなり罵倒する奴っていうのは 迷惑以外の何者でもないな本当。 初心者どころか自分でイベントを生成するコードすら書いたことすらないのが、 言っちゃ悪いがミエミエなのに。 まあそれ以前に日本語もまともに読めていないようだけどw 2chでこんなこと言ってみても仕方ないのは分かっているが、あまりに腹が立ったのでね。
737 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 03:20:05 ] ここでクダ巻いててもしょーもねーだろw
738 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 04:57:36 ] 長文書いたら負けですよ
739 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 06:37:29 ] 閉じられる理由位見ろ _form2_FormClosed() の処理が if (e.CloseReason == CloseReason.UserClosing) Close(); じゃないの点が問題なんだよ 何度も Form2 に FormClosed が送られてくるのも あくまでも Form2.FormClosed イベントが終了していない段階で Form1 を改めて閉じようとしているからループしてるに決まってるだろ ユーザ操作以外ではどうせ親から Close が送られてくるから無視でいい
740 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 16:24:06 ] Form 1 の中で生成した Form2 を破棄しようとして起きるんじゃないの
741 名前:デフォルトの名無しさん [2009/08/08(土) 18:41:56 ] テキストボックスやパネルの境界線の色をグレーや薄いブルーなどにするにはどうすればいいですか? また、 ラベルの上に小さめのテキストボックスを重ね、一つのコントロールにすることはできますか? 調べましたが分かりませんでした。 どなたか教えてください (T_T;)。
742 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:08:28 ] WPFをつかっとけ
743 名前:デフォルトの名無しさん [2009/08/08(土) 19:45:28 ] >>742 WindowsフォームアプリケーションでWPFのコントロールを使えるんだっけ…。
744 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:50:05 ] >>740 ユーザ要求により Form2 に WM_CLOSE が送られ その処理中に Form2 から Form1 に WM_CLOSE が送られ Form1 が閉じる際に子ウィンドウに対して WM_CLOSE が送られ その処理中に Form2 から Form1 に WM_CLOSE が送られ…… WM_CLOSE から発生する一連の処理が終了してない間に 改めて WM_CLOSE を流したらループするだろ
745 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:51:38 ] >>743 Windows Forms の編集時にツールボックス見たら WPF 相互運用機能グループに ElementHost あるでしょ
746 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:56:57 ] >>717 の場合は、別にWin32のウィンドウメッセージの水準で連鎖が起こってるわけじゃなく、 あくまで.NET Frameworkの、いわゆる「イベントの連鎖」が起こってるだけ (しかも仕様というよりバグが原因ぽい)だから、ちょっとその説明は違うと思うけど。
747 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:57:05 ] なんでElementHost なんてわけわからん名前にしたんだ?
748 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:09:08 ] 至って普通の名前だと思うが・・・
749 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:11:01 ] わけわからんって。 Element(UIElement) を Host するから ElementHost。
750 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:14:18 ] WinFormだけでやるなら、 TextBoxやらはボーダーなしにして、 その親としてPanelを用意して、 そのPanelのPaintで枠を描画
751 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:15:37 ] このスレはMS信者に乗っ取られているようだ 嘆かわしい
752 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:31:56 ] まぁC#使ってる奴の99.9%がMS使いだと思うよ(´・ω・`) だれかC#でiPhone開発してる人来ないかな・・・
753 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:34:52 ] というかどこから >>751 が出てきたんだ?
754 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:44:26 ] 何かのキーワードに反応するボットじゃない?
755 名前:デフォルトの名無しさん [2009/08/08(土) 21:12:16 ] >>750 PanelにPaintができるの? 枠線入りの画像をパネルの背景にするってこと?
756 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:17:07 ] 普通にPaintできるだろ もしWPFを使うなら,テキストボックス一つ一つをElementHostでホストするようなことはお勧めしない ある程度の大きい範囲で丸ごとWPFにしてElementHostに乗せる
757 名前:デフォルトの名無しさん [2009/08/08(土) 21:28:28 ] >>755 具体的にどうやるの? panel1_iventが出てきたけど…。
758 名前:デフォルトの名無しさん [2009/08/08(土) 21:45:35 ] paintイベントって、formをloadしたときに自動で発生するの?
759 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:51:23 ] 描画が必要なとき もちろん初めにフォームを表示するときも呼ばれるな
760 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:51:35 ] くれくれしすぎは
761 名前:デフォルトの名無しさん [2009/08/08(土) 22:14:24 ] もしパネルやテキストボックスがたくさんある場合、 それらの全ての四辺を描画するならば、 重たくなりそう。
762 名前:デフォルトの名無しさん [2009/08/08(土) 22:16:19 ] >>756 ラベルやテキストボックスにbordercolorがないのが困る。
763 名前:デフォルトの名無しさん [2009/08/08(土) 22:17:19 ] >>756 エレメントホストはどれくらい重たいのかな。 今からやってみよ。
764 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:01:35 ] >>741 なんかまともにレスする奴がいないんで見てられないからレスするけど、 そんなのは普通にTextBoxを継承してカスタムコントロール作ってやればいいんだよ。 class TextBoxEx:TextBox { public TextBoxEx() { BorderColor = Color.Red; BorderStyle = BorderStyle.FixedSingle; } [Category("Design"), DefaultValue(typeof(Color), "Red")] public Color BorderColor { get; set; } [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] public new BorderStyle BorderStyle { get { return base.BorderStyle; } set { base.BorderStyle = value; } }
765 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:02:47 ] * 764続き * protected override void WndProc(ref Message m) { base.WndProc(ref m); const int WM_PAINT = 0xF; switch (m.Msg) { case WM_PAINT: using (Graphics g = CreateGraphics()) { using (Pen pen = new Pen(BorderColor)) { Rectangle rect = ClientRectangle; rect.Width -= 1; rect.Height -= 1; g.DrawRectangle(pen, rect); } } break; } } }
766 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:09:41 ] >>765 細かいことだけど、WndProcよりもOnPaintのオーバーライドのほうが簡潔では? もちろんsuper.OnPaint呼ぶ手間含んで。
767 名前:デフォルトの名無しさん [2009/08/08(土) 23:09:50 ] >>765 すごい。ありがとうございます。がんばって解読します。 この継承クラスをまた継承したら、命令を抑えてコーディングできますね。 ※ なんで継承したら、bodercolorが出てくるんだろう---。
768 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:10:55 ] >>766 やってみればわかるよ。
769 名前:デフォルトの名無しさん [2009/08/08(土) 23:12:08 ] 例えば50個のテキストボックスを表示させ、 それら全てに色枠線を描いたら、重たいのかな。
770 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 23:30:00 ] >>768 ごめんなさい。言うとおりだった。 ググったらこんな記述も見つけた。PaintイベントがないならOnPaintもなくて当然か。 msdn.microsoft.com/ja-jp/library/system.windows.forms.textboxbase.paint.aspx > TextBoxBase.Paint イベント > コントロールが再描画されると発生します。このクラスでは、このイベントは使用されません。
771 名前:デフォルトの名無しさん [2009/08/08(土) 23:35:45 ] panelならOnpaintも可能なんだろか。
772 名前:デフォルトの名無しさん [2009/08/09(日) 07:46:49 ] >>765 さんの記事に、 「using (Pen pen = new Pen(BorderColor)) 」 という行がありますが、using句は名前空間の定義のみに使用するわけではないのですか? どういうケースでusing句を指定するケースがあるのでしょうか。
773 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:47:50 ] msdn.microsoft.com/ja-jp/library/yh598w02.aspx MSDNくらい読めよクソタコ
774 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:54:42 ] >>765 using (Graphics g = CreateGraphics()) { using (Pen pen = new Pen(BorderColor)) { } } だとネストが深くなるから using (Graphics g = CreateGraphics()) using (Pen pen = new Pen(BorderColor)) { } の方がいいな。
775 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 07:56:28 ] }それならこれでいいだろ using (Graphics g = CreateGraphics(), Pen pen = new Pen(BorderColor))
776 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 09:16:17 ] >>775 そうやって並べると見辛くないか? >>774 でいいじゃん
777 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 10:00:28 ] わざわざ1行にする意味ないな
778 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 10:26:24 ] 「黄金分割」<副題> ピラミッドから ル・コルビュジェまで 柳亮著 美術出版社 1965年の出版でしかも純粋な美術書。でも、なぜフィボナッチ数の課題を 出されるのかピンとこないプログラマは一度目を通してみるとよい。
779 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 11:14:40 ] 黄金分割なんてうさんくさいと思うのは俺だけか?
780 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:15:28 ] みんなが黄金といっているのだから黄金なんだろう
781 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 12:23:24 ] 僕には黄金はまだきついので聖水でいいです
782 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 13:30:33 ] 名前が胡散臭いだけで特別なものでも不可思議なものでもないけどね。
783 名前:778 mailto:sage [2009/08/09(日) 17:47:10 ] >>779 すみません。これ誤爆でした。
784 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:35:56 ] >>775 コンパイル
785 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:08:36 ] >>765 こうやると枠線だけ書いて、中の文字塗り潰してしまうイメージあったけど これでいけるんだ 勉強になりました
786 名前:デフォルトの名無しさん [2009/08/09(日) 19:13:38 ] このやり方で重たくならないならば、俺もやりたい。 みんな、なんでそんなに詳しいの? 頭脳を分けてほしいよ。
787 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 19:14:55 ] もっと簡単にできたとおもうが。
788 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:23:35 ] listviewのcustomdrowめんどくさー
789 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:27:50 ] ユーlistviewつくっちゃいなYO!
790 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:33:28 ] customdrow?
791 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:37:31 ] カスタムドローで合ってるぞ オーナードローじゃないぜ
792 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 20:44:39 ] dr o w?
793 名前:デフォルトの名無しさん [2009/08/09(日) 21:05:54 ] >>784 このロジックはどこに書くの? デザイナーズcs? それとも本体の方?
794 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 21:39:42 ] いろいろ作ったらさ SS見せてほしいんだけどw
795 名前:デフォルトの名無しさん [2009/08/09(日) 22:21:54 ] >>794 SSってなに?
796 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:24:17 ] Secret Service
797 名前:デフォルトの名無しさん [2009/08/09(日) 22:26:35 ] SQLサーバーを借りてるんですが、直にSQLを書くのと、linqを使うのと、どちらがメリットが高いですか?
798 名前:デフォルトの名無しさん [2009/08/09(日) 22:28:15 ] ボーリングのスコア表をC♯で作りたいんだけど、 膨大な数のテキストボックスを早く負担なく描くには何かいいテクニックはありますか?
799 名前:デフォルトの名無しさん [2009/08/09(日) 22:29:39 ] >>798 なんでボーリングスコア表なんていんねん。
800 名前:デフォルトの名無しさん [2009/08/09(日) 22:31:47 ] >>798 マウスを使って一つずつペタペタ描く。 それしかないだろ。 本を見てもそう書いてた。 間違っていたらごめん。
801 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:40:38 ] 手っ取り早いのはGirdじゃね
802 名前:デフォルトの名無しさん [2009/08/09(日) 22:45:24 ] >>801 ジードって読むの? 初めて聞きました。 詳しく教えてください。 僕もマウスて配置していてくたびれました。
803 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:47:17 ] 1文字間違えるのが流行りなのか? DateGridView
804 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 22:48:40 ] >>800 その本は何個のテキストボックスをポトペしていた? 10個超えてたらダウト
805 名前:デフォルトの名無しさん [2009/08/09(日) 22:59:55 ] >>804 5つのコマンドボタン。 揃える技は書いてたけど、大量描画についてはコメントなし。
806 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:37:08 ] ストライクとかのアイコンはどうすんの? 結局自前で描画する予感 なら1枚絵で作ってしまえ!とか
807 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 00:42:53 ] DataGridViewはアイコン置けるよー
808 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:34:20 ] 複数の定数を定義したクラスの中に存在する、 定数に要素に全てアクセスするにはどうすればよいでしょうか? for each 的なコードがあればお教えください。 class TestClass { public const string const_test_1 = "aaa1"; public const string const_test_2 = "aaa2"; public const string const_test_3 = "aaa3"; public const string const_test_4 = "aaa4"; }
809 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:39:29 ] 設計から見直せタコ
810 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:41:46 ] >>808 案1 人手で全て列挙を行う 案2 コンパイラの忠告を無視して後々のメンテナンスを全て投げきってもいいならリフレクション 後で人手で行った場合の数倍のツケを支払う覚悟があるなら 機械的にリフレクションを通してもいいかも
811 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:41:54 ] 配列で用意しとけよそんなん
812 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:47:17 ] >>810 案2の方法をお教えください。
813 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:48:25 ] >>812 c# リフレクション フィールド 列挙 で出てきたの↓ dobon.net/vb/dotnet/programing/typegetmembers.html
814 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 01:50:23 ] >>813 ありがとうございました。
815 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:11:58 ] リフレクションなんか馬鹿に勧めるな馬鹿。
816 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:29:09 ] >>815 馬鹿のお前がいっても説得力がない。
817 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 02:31:24 ] リフレクション使って全部実行時に行う必要もなくて 一旦リフレクション使って集計して その後手作業でソース起こしてもいいかもね
818 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 07:04:01 ] yieldでよくね?
819 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 09:10:28 ] >>817 これはよくやる 自動生成しちゃえばいいんだよね
820 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:09:01 ] リフレクションとか難しすぎて頭おかしくなりそう
821 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:26:49 ] >>819 日本語としては「ひちがつ」が正しいがレッドブックの「なながつ」も間違いではない ただ朝鮮人や関西人が良く使う「しちがつ」は明らかに間違い これを使っていると日本人である事を疑われるので気を付けるように
822 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 11:31:29 ] >>821 なんか最近BOT多くね?
823 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:27:14 ] 馬鹿ウヨ死ねや
824 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 20:20:39 ] lex とか yacc を思いだした
825 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 00:07:46 ] リフレクション使うならせめてconstではなくreadonly使おう constとリフレクションは非常に相性が悪い
826 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:13:45 ] >>825 もしかしてCLI時点でconst修飾の名前ってきえちゃうの?
827 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:29:13 ] ビルドした時点でリテラルに置き換わるんじゃなかったか
828 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:31:13 ] んだよ だからリテラルにできない物はconst宣言できない
829 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:38:09 ] 使用した場所はリテラルに置き換わってるが、 型の定義としては残っているのでリフレクションで確認できる。 public static const field System.String const_test_1
830 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:40:05 ] ildasmの表記のほうがいいな。 .field public static literal string const_test_1 = "aaa1"
831 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 01:57:24 ] しょうがないんだろうけれど、Attributeのコンストラクタ?に普通のオブジェクト生成式とか書けるようになって欲しいお(´・ω・`)
832 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 02:26:21 ] むちゃゆうな まあ気持ちは分かる
833 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 08:30:52 ] Expression<TDelegate>さえ書ければ解決なのに
834 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 02:27:35 ] TDelegateってなんだ。
835 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 06:20:06 ] Delegateは特殊クラスなのでこういう制約は作れないってことだと思う。 class F<T> where T : System.Delegate
836 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 20:09:48 ] IL 上作れないわけじゃないよ。実際 ECMA335 には 一例として載ってる。 要するにわざと禁止しているものなので理由を考えて みるといいと思うよ
837 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 15:52:09 ] 1日分のログを日付フォルダごとに分けて保存していて 一定期間経過したフォルダを DirectoryInfo.Delete(true)で削除しているんだが 毎日少しずつ削除時間が延びていくんだが なんか理由知っている人いない? 削除の他にも処理をしているんだが なぜか削除だけ時間がかかる IOの問題なのかな? ちなみに、、、 OS:windows 2003 server R2 Enterprise x64 Edition Service Pack2
838 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:39:00 ] 普通にコマンドで消した時は遅くないの?
839 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 20:45:04 ] 削除してる間にログを他者が見てるって事はないの? そもそもログの量、大きさは同じくらいなの?
840 名前:デフォルトの名無しさん [2009/08/14(金) 00:23:18 ] 処理内容がわからんから何とも胃炎。 毎日一定時間に処理をしてるんじゃないのか。 削除終了時に終了後から一定時間をセットするなら 削除処理にかかる時間分ずれていくだろ。
841 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 00:45:25 ] すいません vista + C# express edition + excel2007です 参照設定で参照の追加でcom タブでmicrosoft excel5.0をみると microsoft excel5.0 ?????????? と出てるんですけど・・・ これって一体・・・・2007以前のexcel入れれば治るのでしょうか? とても不安です・・・ 壊れてるのかなC#・・・(涙
842 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 02:03:58 ] >>837 最初は断片化かな?とか思ったけど、メモリリークな気もする。 C#はジェネリクスとnewで管理されているけど解放されないメモリが 簡単にできちゃうから、仮想メモリにガリガリアクセスして時間が かかってしまう可能性も否めない。 Process Explorerあたりで確認して、GCのジェネレーション2が 異常にでかいサイズなら解放漏れ(ジェネリクスのClearやDisposeのし忘れ)を 確認してみたらどうだろう。
843 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 02:06:10 ] >>842 気になる これってアンマネージドで管理されているメモリの話? それともマネージドだが古すぎてpermanent(永久?)領域に直ぐに移されちゃう話? それとも両方混ざった話?
844 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 02:13:25 ] マネージドでしょ
845 名前:842 mailto:sage [2009/08/14(金) 02:35:11 ] マネージドの話。 ちょっと怖い書き方をしてしまったけど、要は使わないクラスがどっかで 参照されてるので消されずにメモリが圧迫されてるかも、という事です。 ソートとかで一時領域として使ってたDictionaryに、そのまま参照が残っちゃってて、みたいな。 開発中、デバッガ終了後なかなか処理が戻ってこない時はこの現象が起きてるか 疑ってみたほうがいいかも。と、経験者よりorz
846 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 05:20:44 ] DirectoryInfoのインスタンスは使いまわしてるか、毎回newしてるか。 Directory.Delete(String, Boolean)を使ったらどうか。
847 名前:841 [2009/08/14(金) 08:32:26 ] 初心板にまわります
848 名前:837 mailto:sage [2009/08/14(金) 11:20:52 ] みなさん、ありがとうございます。 >>838 ディレクトリのサイズが32MBぐらいで 普通に"rmdir"コマンドで削除すると1分ぐらいです。 >>839 削除しているのは、数日経過したディレクトリなので 他の人は見てないです。 >>840 日付ごとにディレクトリを作成して その配下に時間ごとのサブディレクトリを 作成してプロセスごとのログを出力しています。 "日付ディレクトリ"の日付を見て 数日経過していたら削除するという 処理を行っています。 >>842 自分も最初はメモリリークを疑っていました。 ページファイルが1日で5MBずつ増えていますが そのせいで削除処理が約30秒も伸びるんでしょうか? 削除処理だけで、他の処理は遅くなっていないのも 気になっています。 >>846 毎回newしています。 解放処理は明示的に行っていないので 参照が残ってしまっているのでしょうか?
849 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 12:18:00 ] >ディレクトリのサイズが32MBぐらいで >普通に"rmdir"コマンドで削除すると1分ぐらいです。
850 名前:デフォルトの名無しさん [2009/08/14(金) 12:58:35 ] 削除の処理にかかる時間が延びてるってことか
851 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 13:54:14 ] 32MBで一分ってその時点で遅すぎねーか?
852 名前:837 mailto:sage [2009/08/14(金) 14:04:49 ] >>850 そうです。 削除の時間が日々伸びています。 >>851 ディスク上のサイズは204MBでした。 遅すぎですかね?
853 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 14:07:13 ] ファイル数くらい書けよ。 エスパーさせんな
854 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 14:08:40 ] シャドウコピーとかは有効になってる?
855 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 14:42:25 ] ファイル数がきっと膨大なはず ファイルの数があまりに多いと関連の処理がどんどん重くなる 確かWindowsのファイルテーブルてツリー構造してるの見た目だけで 実際はドライブごとに一つの表があるだけだから ドライブ内のファイル/フォルダの数が多くなる度に ファイル/フォルダ絡みのあらゆる動作が遅くなる 間違ってたらごめん
856 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 15:14:19 ] NTFSだったらB木使ってるからFAT32よりも格段に速いよ
857 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 15:22:48 ] >>856 フォルダの中身ごと削除の時点で全スキャンだし
858 名前:837 mailto:sage [2009/08/14(金) 15:58:22 ] >>853 すみません。。 フォルダ数:約9500 ファイル数:約52500 膨大な数ですよね。 >>855 毎回削除する"フォルダ数"/"ディレクトリ数"は 変わらないのですが それでも段々遅くなるのでしょうか?
859 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 16:07:16 ] >>858 数日でそんなに溜まるログとか設計が狂ってる
860 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 16:10:39 ] いっその事DBにログ記録しろ
861 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 16:18:10 ] 単純に一日のログを1ファイルにまとめるだけでも 相当マシになるはず
862 名前:837 mailto:sage [2009/08/14(金) 17:51:15 ] みなさん、ありがとうございます。 設計というよりも、そういう仕様なので 仕方ない部分もあるのですが・・・ アドバイスを参考にしたいと思います。
863 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 18:46:36 ] それ、プログラム終了させて新たに起動したらあきらかに速度が違う というのなら、今まで消したファイルもスキャンしてるとかないか?
864 名前:842 mailto:sage [2009/08/15(土) 01:15:55 ] >ページファイルが1日で5MBずつ増えていますが >そのせいで削除処理が約30秒も伸びるんでしょうか? >削除処理だけで、他の処理は遅くなっていないのも >気になっています。 その、今の所、日を追うごとに増えているデータってのが ページファイルだけなら疑ってみる価値はあるかと。 ファイル削除とページングでハードディスクへのリクエストがかち合って ガリガリ言ってる時間が長くなれば可能性はあるかと。 削除プログラムが常駐プログラムなら一度再起動してみて速度をみてみるのはどうだろう? それ以前にgen2の値はどうなんだろう?これでリークか否かの答えは出ると思うんだけど。 毎回起動なら、そのページファイルを増やしている別のプログラムをつきとめた方がいいかも。 なんにせよ、そのサーバはリークを起こしているっぽいw
865 名前:デフォルトの名無しさん mailto:age [2009/08/16(日) 12:42:56 ] webbrowserに表示しているHTMLを画像として保存するには、 どのような方法が一番妥当ですか? クライアントの隠れている部分も含めて画像変換したいので、 PrintScreenではだめです。
866 名前:865 mailto:sage [2009/08/16(日) 13:00:41 ] ネットで探してて最初は見つからなかったのですが、 書き込んでからいろいろ見つかってきました。 homepage1.nifty.com/yasunari/VB/VB2005/WebBrowserDrawToBitmap.htm www.i-tribe.info/Blog/post/2009/06/08/e7b0a1e58d98e79a84e381abWebe38398e383bce382b7e381aee794bbe5838fe38292e4bf9de5ad98e38199e3828b.aspx すみませんでした。
867 名前:865 mailto:sage [2009/08/16(日) 13:04:11 ] ここが一番よさそうでした。 ufreyr.blog80.fc2.com/blog-date-200703.html
868 名前:837 mailto:sage [2009/08/17(月) 14:29:39 ] >>864 遅くなりましたが、「Process Explorer」で見てみました。 削除しているプログラムの値です。 #Gen0 Collection 14,220 #Gen1 Collection 5,952 #Gen2 Collection 314 Gen0 Heap Size 3,145,728 Gen1 Heap Size 30,976 Gen2 Heap Size 64,076,116 これって、リークしているのでしょうか?
869 名前:864 mailto:sage [2009/08/17(月) 18:07:10 ] Gen2を知らないなら、今だけはプログラムを起動中に常に必要なメモリサイズだと思ってください。 削除プログラムに常に必要とされているメモリが64M弱が正しいならリークしてないです。 これが削除処理を実行する度に増えているなら、かなり怪しいです。 個人的な見解としてはファイルが何ギガあっても削除するだけに64Mは異常です。 CLR Profilerで何にメモリを使っているのか調べます。 更にいうと、64M程度で体感速度に差が出るとは考えづらいです。 他のヒープも合わせ削除処理中にムチャなメモリ確保がある可能性も視野に入れます。 ただし処理時間の原因がメモリリークであり、それが改善された場合、 これ以上削除時間が延びる事は無いはずなのでクレームが来るまで放置しますw
870 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:10:33 ] サーバーでPaythonスクリプトを実行し、 特定の命令が呼び出されたら割り込みが入るまで待機ということをしたい。 それを実現するために、スクリプトを実行するごとにスレッドを呼び出してイベント来るまで待機ということをしているんだが、 これだと多数のユーザーがスクリプトを実行したときにリソースが枯渇しそうなことに気付いた。 スレッドプールで書き直したいんだが、ブロックするような処理をするのはまずいとMSDNに書いてあった. これってイベントが来るまで待機するような処理も含まれるの?
871 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 23:44:28 ] どの辺にC#がw
872 名前:870 mailto:sage [2009/08/17(月) 23:55:18 ] 使用言語:C#3.0
873 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 00:22:37 ] >>870 そのまえにペイソンとかいう言語はC#とどの程度相互運用できるんだ
874 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 00:28:52 ] phython≠paython
875 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 00:59:19 ] また変なエサを投下して・・・
876 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 01:07:01 ] ふぁいそん?
877 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 01:46:04 ] 北米的にはぺいずぅぁん。
878 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 10:24:41 ] SORPとかでWCF使うとか
879 名前:870 mailto:sage [2009/08/18(火) 16:49:05 ] >>873 ironpaythonを使えば、楽に相互運用ができる。
880 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 17:25:17 ] >>879 paythonって何だよ ironpaythonって何だよ
881 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 17:36:43 ] 試しにググったらここのPart42が引っかかったw
882 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 20:44:15 ] SORP?
883 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 20:46:14 ] >>879 アイロンペイソンってサーバーで動かすPaythonスクリプトにもなれるの?
884 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 21:22:55 ] おまえらペイトホンも知らねーのかよ。 >>870 マジレスしようと何度か読み直してみたがさっぱり意味が解らない。 とりあえず質問の内容は最後の2行のみ? で、ブロックしそうなのはクライアント側?サーバ側? っつか多分日本語でやりとりしてもらちがあかなそう。簡単なソース出して これはおk?ってやった方が、キミとは上手くやっていけそうな気がする。
885 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 21:53:42 ] boid mein() { } とかってコード期待w
886 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 22:35:00 ] >>869 亀だが・・・ 64M程度ならドトネトでは普通じゃないかと思う 結局メモリ量は予約領域でもあるはずだから純粋に使用しているメモリというわけではないだろうし
887 名前:870 mailto:sage [2009/08/18(火) 23:54:18 ] >>884 ソースをさらします。 サーバーがRunScriptというパケットを受け取ると実行される void talk() { Thread t = new Thread(executeScript); t.Start(this.remoteip); } private void executeScript(object data) { PythonEngine pe = new PythonEngine(); pe.deliverVarible("_self", this); pe.deliverVarible("_target", target); pe.deliverVarible("_remoteip", (string)data); pe.execute("foo.py"); } //リモートIPとManualResetEventが対になってる static Dictionary<string, ManualResetEvent> ManualEvent = new Dictionary<string, ManualResetEvent>(); //foo.pyがwaitForSignalを実行すると呼び出させる public void waitForSignal() { if (remoteip == null) return; ManualEvent[remoteip].Reset(); ManualEvent[remoteip].WaitOne(Globals.script_wait_time); } //別スレッドから呼び出し public void setSignal() { if (remoteip == null) return; ManualEvent[remoteip].Set(); }
888 名前:870 mailto:sage [2009/08/18(火) 23:55:49 ] 訂正 ×//別スレッドから呼び出し ○//同じクライアントから特定のパケットを受け取ると呼び出される(パケットを受け取る部分は非同期ソケットを使ってます)
889 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:08:34 ] Directory.Delete("パス",true); これに64Mはありえない。それからgen2は回収に何度か失敗している領域。 現在使用中かつ長い間確保されている可能性が高い。 とまぁ、レスの情報と自分の経験からの推測な訳です。はい。 本当に64Mが適正か否かは>>837 氏のみが知る所でしょう。
890 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 19:00:23 ] 質問です 今ちょっと頼まれて テキストボックスとボタンのフォームだけがあります。 そしてそれに必須入力チェック、桁数チェック、書式チェックと言う条件を作らないといけないのですが 当方初心者でまるでわかりません。 まず、True,Falseの場合に出すメッセージボックスを作ります。 そしてIF文でどっちに行くかを条件付けるんですが どのようにして記述していけばいいのでしょうか・・・・
891 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:30:38 ] ググれ
892 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:31:42 ] 初心者向けの本でも買え。
893 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 21:53:52 ] カスどもありがとう助かったわ
894 名前:デフォルトの名無しさん [2009/08/19(水) 22:19:58 ] タブコントロールのタブなしってあるの? アクセスではあるらしいね。
895 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:34:11 ] フラットスタイルじゃなくて?
896 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 22:46:10 ] ふらっとの方でもたずねたのですが、返事がないので C#を始めて1年くらいで、2Dグラフィック周りを主にやってます。 最近、JAVAプログラムのオープンソフトでJDrafter(hhp://jdrafter.com/)とい うソフトを発見したのですが、 このソフトは、イラレ感覚で2Dグラフィックを作成し、Javaの オブジェクトとして保存できるため、Javaプログラムからの表示やアニメーションなどにも応 用できるようなのですが、 どなたか、C#でこんなプログラムをご存知の方いないでしょうか。 もしくは、オープンソフトなので、描画周りのクラスをC#に変換して利用できないか考え ているところですが、どなたかその方法やこれに適したjava→C#変換ツールをご存知 の方があれば、ご教授をお願いします。
897 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:54:20 ] 何文字目?
898 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:55:30 ] Java使えよ
899 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 22:56:59 ] つJ#
900 名前:デフォルトの名無しさん [2009/08/19(水) 22:59:36 ] >>895 フラットスタイル… C♯にあるの?
901 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 22:59:48 ] >>898 javaに変えてもいいのですが、今までの資産や、C#の将来性を考えると簡単に は決断できません。 ググってもみましたが、どうしてもわからないのでお尋ねしているところです。
902 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:01:03 ] つか xaml に変換できるもの、Expression とかがまさにそのまま イラレ感覚がいいんならイラレ -> xaml のエクスポータ使えばー
903 名前:デフォルトの名しさん mailto:sage [2009/08/19(水) 23:17:21 ] >>902 ありがとうございました。 xamlテクノロジーは始めて知りました。(勉強不足ですみません。) xamlについて調べて、フリーの(金がないので) ツールなんかがない かいググります。どうもありがとうございました。
904 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:36:49 ] イラレってxaml生成できんのか。おどろいた。
905 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 23:49:29 ] XPSじゃねーのと思って調べたらほんとにXAMLだった
906 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 00:11:20 ] イラレ10でも出力できますか?
907 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 00:59:00 ] プラグイン形式のやつはCS以降じゃないと無理なんじゃないかな? Photoshop(.psd)やIllustrator(.ai)を直接取り込めるようになったBlend 3を使うのが楽だとは思うけど↓みたいなのもある。 XamlXporter for Illustrator www.codeplex.com/Wiki/View.aspx?ProjectName=xamlxporter >>903 Inkscapeがオススメ。日本語化されてて標準でXAML出力に対応してる。
908 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 02:14:50 ] (´・∀・`)ヘー
909 名前:デフォルトの名無しさん [2009/08/20(木) 06:44:32 ] イラレでコントロールを作成してWPFコントロールにすることは可能なの?
910 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 07:02:50 ] 仮にCanvasしか吐けなくても好きなルート要素で囲んでやるだけで ユーザーコントロールでもコントロールテンプレートでも作れるはず
911 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 08:27:03 ] へーへーへー
912 名前:デフォルトの名無しさん [2009/08/20(木) 11:35:37 ] すいません。教えてくらはい。 VS2008のプロジェクトに*.iniファイルを含めて プロジェクト出力として一緒に出力したいのですが、 クラスライブラリプロジェクトの場合うまくいきません。 これは仕様でなんでしょうか? <<設定例>> ファイルプロパティ ビルドアクション:コンテンツ 出力ディレクトリにコピー:常にコピー
913 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 11:56:20 ] 質問ですが、遅延バインディングにてExcelの単一セルの中に入っている情報を取り出すにはどうすればよいでしょうか? 遅延バインディング レイトバインディング 実行時バインディング いろんな呼び方がありますね。 www6.atwiki.jp/we_hate_sunshine/pages/73.html にありましたコードの一部を参照させていただいております。 // セルデータを2次元配列にいっぺんに読み込みます。 objRange_Late = objSheet_Late.GetType().InvokeMember("UsedRange", BindingFlags.GetProperty, null, objSheet_Late, null); Object[,] tmpTable; tmpTable = (System.Object[,])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); ↑上記コードはうまくいったのですが、 単一のセルを指定し(Rangeを使うのだと思います)そのセル内のデータを取得する方法がわかりません。 やりたいこと 例) A1セル「hoge」 の文字列hogeを取得したいです。 試しに書いたコード(実行時にエラーが出たのでできませんでしたが)を乗せておきます。 parameters = new Object[] { "A1",Missing.Value }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); Object tmpTable = new object[1]; tmpTable = (System.Object[,])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); こういう雰囲気でいけそうな気がするのですが、わかりません。よろしくお願いします。
914 名前:デフォルトの名無しさん [2009/08/20(木) 18:43:57 ] Webサーバ機能を、作ってるアプリに付けたいのですが、 単一ループ内でkeep-aliveを処理できるお手軽なアプローチ無いでしょうか? // listner起動 while (true) { // Context取得 (ブロック) // Request処理 // Response処理 if (Connection == close) { break; } } と言う様な処理を行い、 要は、ソケットの接続〜切断のモデルと近似にしたいのです。 理由は、データ管理や前回のリクエスト/レスポンスに強く依存した処理の為、簡単に回したいと言う感じです。 アドバイスと慈悲を下さい。
915 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:52:23 ] >>912 プロジェクト出力ってセットアッププロジェクトの話? セットアッププロジェクトでDLLだけ配布するの? >>914 プロトコルに何使うのさ >>913 Excelの質問には答えられないけど、エラーの内容ぐらい書いた方がいいんでないか
916 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 18:55:59 ] >>915 httpです
917 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 20:16:18 ] >>916 HTTP で keep-alive でのみセッションが維持されるなんて 仕様外の特殊な事考えたりしてるなら 独自プロトコルでやった方がいい
918 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:27:31 ] 前回のリクエスト/レスポンスに強く依存した処理ってviewstateじゃだめなん?
919 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 22:37:11 ] >>914 つまりソケットの接続〜切断のモデルと同じなんじゃね? ソケットつかえばおk
920 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:46:05 ] .net 3.5、 WinXP VS2008、C#で開発しています。 開発するアプリケーションの利用環境は、Win2003、Win2008、WinVistaなどを想定している開発です。 質問します。 C#でファイル名の整合性を確認する関数はあるでしょうか? ファイル名に使えない文字を取得する、System.IO.GetInvalidFileNameChars()は知っていますが、これだと CON, PRN, AUX, CLOCK$, NUL COM0, COM1, COM2, COM3…… のような文字列を調べることができません。 また、開発環境こそWinXP Proなんですけれども、開発するアプリケーションは クライアント・サーバ方式のアプリケーションで、クライアントからサーバにファイルを作成する形式のものです。 サーバはWin2003かWin2008、クライアントはWinVistaかWinXPです。 そうなってくると、いったんクライアントでファイルを作成して、実際に有効なファイル名かどうかを 確認する手段もOSの差を吸収できるかどうかに疑問が生じます。 このような場合、一体どのようにしてファイル名として有効な文字列かどうか判断したらよいか 教えてください。 お願いいたします。
921 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:48:30 ] 最近C#をはじめました。ワケあってちょっと急いで基本を学ばなければなりません。 質問させていただきたいのですが、sqrtやsinなどの数学系の関数を使うとき Math.Sqrt(2.0) といちいちMath.をつけるのが(複雑な式をコーディングするときにMathだらけになる) 嫌なのですがこれを書かないでいいようにするにはどうしたらいいのでしょうか。 多分Console.WriteをWriteだけにしたいというのと同じ意味だと思いますが。 よろしくお願いいたします。
922 名前:920 mailto:sage [2009/08/20(木) 23:54:54 ] ごめんなさい、よく考えたら権限の問題とかもあるので、サーバ側でディレクトリ作ってみて、失敗するかどうかで判断したほうがよさそうです。 質問を取り消します。
923 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:56:21 ] >>921 Math.Sinを呼び出すだけのローカル関数でも作っとけば
924 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:56:42 ] >>919 開発効率が悪いからもっと便利なクラスを使いたいです
925 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 23:58:21 ] 便利なクラスを作れ
926 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:00:06 ] static import は?と思ってしまった・・・orz
927 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:16:18 ] >>923 >>925 それはそういうものなのですか。VC#で開発してるとあまりそういうことは みんな面倒とは思わないためでしょうか? いずれにせよ、手軽にできるわけではないんですね。ありがとうございました。
928 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:18:17 ] >>927 Math って書くのが普通。とくに面倒じゃないよ。
929 名前:デフォルトの名無しさん [2009/08/21(金) 00:36:50 ] >>927 オブジェクト指向というのはそういうもの。
930 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:52:29 ] >>927 Math.Sinをコンパクトに記述することを考えるより、 式そのものを簡単にすることをまず考えるべきだろうね。 数学の数式だって同じだと思うけど、式が複雑だっていうなら いくつかの部分に分けて部分ごとに一時変数に入れるとかね。 まあ数式の場合と違って、数値計算の場合は演算誤差に対する配慮は 必要になるけど。
931 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:25:51 ] using使えば
932 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:29:53 ] Func<double, double> sin = Math.Sin; とかできねーの?
933 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:30:22 ] >>927 VC#っていうか、フレームワークの関数がいくつあると思ってるん? 全部一発で書けるようトップレベルに置いたらとんでもないことになる。 Mathだけ特別扱いなんて出来ないよ。
934 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:37:07 ] >>927 そういうのは学生のうちに卒業しよう。 プロジェクトメンバーが迷惑するから。
935 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:41:10 ] >>932 できるよ
936 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 01:44:44 ] >927 うるせーよ
937 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:17:22 ] 普段使わない関数がIntelliSenseでわらわら出られたらよっぽど面倒だわね
938 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 06:34:37 ] ExpressionTree使え
939 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:35:53 ] >>927 その書き方だと「面倒だなぁ……。よくみんな我慢してるよなw」って考えてるみたいだが、 こうやって分類されている方が、長い目で見れば便利なんだ。 このめんどくささはむしろ必要なめんどくささ。いずれわかるよ。
940 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 07:36:37 ] >>932 Math.を省略したくなるような状況でそんなことしたら遅くなるからやめれ
941 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:03:24 ] コードを書くときには面倒かもしれないけど コードを読むときには何してるかわかるからいいと思うんだが。 というか実際のところたいした手間じゃないだろう。
942 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:07:18 ] >>939 がもっともだと思う
943 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 08:47:45 ] F#でかけばMath.とか書かずにすむお
944 名前:>>913 mailto:sage [2009/08/21(金) 10:39:22 ] >>913 です。 自己解決したので解決方法を。 parameters = new Object[] { "A1" }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); Object tmpTable = new object[1]; →tmpTable = (System.Object[])(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); // 「→」行部分実行時に Error:型'System.String'オブジェクトを型'System.Object[]'にキャストできません のエラー parameters = new Object[] { "A1" }; objRange_Late = objSheet_Late.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, objSheet_Late, parameters); String str = string.Empty; str = (System.String)(objRange_Late.GetType().InvokeMember("Value", BindingFlags.GetProperty, null, objRange_Late, null)); MessageBox.Show(str); 無事A1セルに入力されていたValueを取得することができました。 無駄にキャストしていたことが問題だったのですね。エラーみろよっていってくれた>>915 さんどうもです。
945 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 16:47:03 ] Double型をString型に変換する方法を教えていただけませんか?
946 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 16:53:59 ] ToString
947 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 17:43:13 ] >>946 ありがとうございます。>>945 です doubleを無理やりstring型にキャストしようとしてました^^;
948 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 17:44:05 ] キャストの意味を勉強しなおそう
949 名前:デフォルトの名無しさん [2009/08/21(金) 17:51:22 ] DataGrid へ適当なクラスリストのバインドを考えています。 ただ、表示対象は対象クラスが保持するプロパティの一つに限定したいです。 後々にDataGrid から SelectedItems として、バインドしたクラスのデータを取得を考えます。 ここで、クラスをそのまま ItemsSource へ突っ込むと、クラス名が表示されてしまいます。 こういった場合、特に二行目の部分ではどんな風にすれば対象プロパティのみ表示可能でしょうか。 よろしくおねがいします。
950 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:04:56 ] 全体に意味が分からんが、まずそれはWPFか?
951 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:07:19 ] >>949 >ここで、クラスをそのまま ItemsSource へ突っ込むと、クラス名が表示されてしまいます。 ここで、クラスをそのまま ItemsSource へ突っ込むと、突っ込んだリスト中のクラスが保持するメンバクラスの名前、でした。 class hoge { public int m_hoge; public foo m_foo; } class foo { で言う foo です。 m_hoge | m_foo ------+------ 2 | m_foo 2 | m_foo 3 | m_foo 4 | m_foo
952 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:10:29 ] >>950 WPF というか、 Silverlight でやってます。 >>951 では途中で送信してしまったので、続きです。 class foo { public int m_x; public int m_y; } ここで、 foo というクラス名ではなく、数字の x を出力したい。
953 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:10:59 ] パブリックプロパティ用意すりゃいい
954 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:18:24 ] XAML側でどのプロパティを表示するかの指定があったはず−。 それにしてもpublicなフィールドでm_って気持ち悪い命名規則だね。
955 名前:デフォルトの名無しさん [2009/08/21(金) 18:27:16 ] >>954 ありがとうございますっ! そういうのを探していました。 とても助かりました。
956 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:51:19 ] アクセサを使いましょう
957 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 18:53:43 ] XAMLのバインディングってわかりづらいよね もとより人間が書くものじゃないんだろうけど
958 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:01:24 ] >>956 アクセサって get とか set ですよね? XAML と合わせて検索しても、どうにも分らないです。 すみません。 バインディングの記述に利用する識別子でしょうか? >>957 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。 慣れの問題でしょうか……。
959 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:20:53 ] BindingのPathは . 使ってプロパティのプロパティを指すこともできる つかフィールドってバインディングできたっけ? プロパティじゃないとダメな気が > 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。 XAMLに記述するのはViewModelのクラスのだから問題ない
960 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 19:23:48 ] >>942 >>927 の考えは>>939 やチミが勝手に心配しているような意味じゃないと思うぞw 別にクラスの中にしかメソッドが存在できないのがウザい、 というような意味のことは言ってないだろう。 っていうか、複雑な計算式をベタにコーディングしたら >>927 のように思うのはむしろ普通のこと。 実際見難くくてかなわんよ。 だから>>930 のようにアドバイスするのが正しい。 しかし、今に始まったことじゃないけど本当シロートがシロートに講釈垂れる 図式が多すぎるなここ。
961 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 20:55:24 ] >> 未だにクラス名やそのメンバ名を直接 XAML ファイルに記述するのが気持ち悪くて仕方ありません。 >XAMLに記述するのはViewModelのクラスのだから問題ない どうにもバインディングを勘違いしていました。 特に制約無く作ったデータでもバインディングは行えるものとして考えていました。 バインディングは特定のインタフェースを実装したクラスしか不可能なのですね。
962 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 21:01:05 ] >>961 >バインディングは特定のインタフェースを実装したクラスしか不可能なのですね。 違う。 設計の問題で、バインディング自体にそういう制限は無い。
963 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:13:55 ] >>960 このレベルの自分で頭使わないで文句言うタイプには「黙って書いとけ」が正しい。
964 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:39:36 ] ""(空文字列)との比較は以下のどれがいいですか? それぞれのメリット・デメリットを教えてください。 @str.Equals("") AString.Equals(str, "") Bstr == "" Csrt.Length == 0 D"".Equals(str)
965 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:45:34 ] 個人的には3 他は4以外objectで比較できちゃう 14はstrがnullのときを考慮しないといけない でも大体はString.IsNullOrEmptyで片付けるかな
966 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:46:47 ] あくまで個人的な意見だけど。 俺は「str==""」が一番シンプルかつ直感的でいいと思うね。 1. 参照アドレスの比較と差別化するという意味合いはご尤もだが…。ここまでする必要あるかなぁ。 2. 冗長。 4. 使う場面による。文字列自体に着目した流れで来てるのか、 文字列の長さに着目した流れで来てるのか、というのが判断基準。 5. これは逆。どういう意図でこう書くんだろう。
967 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 00:58:15 ] 5の書き方はJavaかなんかでこうするのがイイ みたいなのがどっかに載ってた気がする(そして当然叩かれてた) C#だと3かIsNullOrEmptyだよね。
968 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:05:59 ] fxcopにIsNullOrEmpty使えっていわれたような
969 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:14:50 ] C#の世界でも割と「==使うなEquals()使え」っていう教条主義的意見は 見かけるね。 というか、俺の見解では、そもそも==がデフォで参照等価の検査なのが直感的じゃない。 少なくともこれに関してはVBの方がまともに感じる。 つまり、参照等価の検査用には別の演算子を導入することにして、==の方は 値等価用にオーバーロードしないと使えない方が分かりやすい。 まあそれを言うと、そもそもC由来の=と==からして逆なんじゃないのかとも思うが…
970 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:34:35 ] しかし値の同一性ってのはデフォで定義できない
971 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:40:47 ] Estr == string.Empty
972 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 01:42:52 ] IsNullOrEmpty 派です。
973 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:14:56 ] >>966 >5. これは逆。どういう意図でこう書くんだろう。 これはリテラルのequals()呼び出しだから、コンパイラが最適化してくれる 可能性がある、という説明で自分は納得した。 実際のところ本当かは検証したわけじゃないけど、どう再定義してるかわか んないstrのequals()を呼び出すよりは速い可能性があるというだけで充分 に意味はあると考えてる。
974 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:22:55 ] Javaでの話だけど、str.equals("")だとstrがnullのときにぬるぽの例外になるので、 "".equals(str)がいいんだって言っていた。 でも、まともな意見の人は"".equals(str)に否定的な人が多いという印象。
975 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:25:37 ] 君の印象ではなく「まともな意見」でどう否定したかが重要。
976 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:29:39 ] つか str.Equals("") とほぼ等価でかつ str が null でも大丈夫だから だろ。2 と 3 がほぼ同じ意味であることを除けば他は意味とか前提が 色々微妙に違う
977 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 02:57:02 ] class Tuple<T1,T2>{ T1 _t1,T2 _t2}(アクセッサとか省略)みたいな奴で Tuple<Hoge,HogeHoge> tuple1,tuple2の比較したいときに、class でなくstructなら_t1,_t2が各々==でtrueの時tuple1==tuple2になるんだっけ? classでEqualsとかoverrideするのめんどくさいよ(´д`)ママン… 属性とかの指定一発でやってくれ・・・
978 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 03:46:49 ] >>964 俺も>>971 と同じ書き方するな。 でも null と空文字列で特別に違う意味がなければ IsNullOrEmpty を使う。
979 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 05:58:42 ] str.Equals(string.Empty)か String.Equals(str,stringEmpty) だな。 javaと違って参照でも'=='が使えるのは知ってるんだけどね。
980 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 06:46:21 ] String以外にも話を展開してみる。 Equalsはタイプセーフではない。 Equalsをoverrideするなら==、!=もoverrideしなければならない。 a.Equals(b)はnullチェックが面倒なので、Object.Equals(a,b)が有効。
981 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 06:50:49 ] タイプセーフでないというのは事実だけど、型を意識しないで比較するのは個人的にはなしだ。 ライブラリ製作者と使用者で意見が食い違うところか。
982 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 07:22:05 ] 10.0と10は違うのか?→時と場合と人による "a"と'a'は違うのか?→〃 10と10は違うのか?→〃 しかし”参照”としての比較はドメインが”参照”に固定されているので混乱しない 値の比較はドメインが固定できないので混乱する 値の比較であーだこーだ言っていてもはじまらね
983 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 07:35:17 ] >>968 はこれか msdn.microsoft.com/ja-jp/library/ms182279.aspx それはそうと次スレは?
984 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 08:59:39 ] >>980 >タイプセーフではない。( 値型以外では使うことはまずないけど IEquatable<T>.Equals(T o) >Equalsをoverrideするなら==、!=もoverrideしなければならない。 Stringのようにimutableでない限りは==や!=演算子のoverrideはするべきではない。
985 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 11:02:53 ] なんで
986 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:31:41 ] 次ぎたててくる
987 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:34:22 ] C#, C♯, C#相談室 Part54 pc12.2ch.net/test/read.cgi/tech/1250911923/ はい
988 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 12:44:02 ] >>987 ^^
989 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:00:55 ] .NET 4では2.0の部分のパフォーマンスの向上とかあるのかな?
990 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:09:55 ] BCL部分はC#4.0などにあわせて確実に手が入るけど WinFormsはどうせ放置だろ
991 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:36:55 ] >WinFormsはどうせ放置だろ せっかく枯れてきたのに手を入れられてもねぇ…
992 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 13:40:42 ] 2005以降に追加されたコントロールのバグはしっかり直してくれないと 困ると思うけど… toolstrip関連はバグ多過ぎなんだよ本当。