- 1 名前:デフォルトの名無しさん mailto:sage [2009/03/01(日) 08:45:30 ]
- このスレッドは
「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part37 pc11.2ch.net/test/read.cgi/tech/1234017654/
- 809 名前:デフォルトの名無しさん [2009/03/11(水) 01:55:55 ]
- >>807
なんだ、結局「終了処理」ってのは示せないままか。 とんだヘタレだなwww
- 810 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:56:53 ]
- で、この無意味な言い争いで誰が特をするのか
- 811 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:56:53 ]
- >>808
暗黙的なガベージコレクタでの破棄はFinalize 明示的なオブジェクトの破棄はDisposeだっていってんだろ? 必要条件とかを覚える知識だけあって、文意を汲み取る能力はゼロかよ。
- 812 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:57:13 ]
- さっきから>>788=>>806=>>807が1人で荒らしているような気がしてきた
- 813 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:57:44 ]
- 何を今更
- 814 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:58:38 ]
- >>809
オブジェクトを解放する処理=終了処理と換言しただけでしょうが。 その言葉を使用した文献が見あたらないと負けなの?w そういう意味の文献があればいいんでないの?w しぬの?w
- 815 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 01:58:38 ]
- ここまで自演でした。
- 816 名前:デフォルトの名無しさん [2009/03/11(水) 01:59:51 ]
- >>811
完全に間違い。 Disposeはマネージオブジェクトを破棄するところではないし、 破棄できるものでもない。オブジェクト≠アンマネージリソースだよ。 カーネルオブジェクトとかだけをさす言葉じゃないから。 聞いてると用語の使い方が甘い印象を受ける。素人さんかな?
- 817 名前:デフォルトの名無しさん [2009/03/11(水) 02:01:14 ]
- >>814
だからオブジェクトじゃないと何度言ったら…。 あ、そっか。荒らしだったのか。相手にするだけ無駄だな…。
- 818 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:02:23 ]
- ここまですべて女子高生の書き込み
- 819 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:04:09 ]
- >>816
>>817 だから、.netで管理できないリソースを明示的に解放するためにDisposeがあるっていってんの
- 820 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:06:25 ]
- >>817
>このインターフェイスは、Disposeメソッドだけを定義している。 >使い終わったら確実に資源を解放する処理が必要なクラスは、 >このインターフェイスを実装して、解放処理を記述するのが.NET Frameworkでのお約束である。 んで、これに対する返事もらってないんだけど?
- 821 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:09:57 ]
- ROMってたけど俺みたいな初心者が見てると気持ち悪くなるわ
何が正しいのやら… 口論終わったらまとめてくれるとありがたい じゃ、おやすみノシ
- 822 名前:デフォルトの名無しさん [2009/03/11(水) 02:11:35 ]
- >>821
Disposeがあればしておけば間違いない たったこんだけ
- 823 名前:デフォルトの名無しさん [2009/03/11(水) 02:14:06 ]
- 顔真っ赤にして書き込みすぎちゃってレスできなくなっちゃったんだろうなぁ
ママンはいつまでも面倒みてくれないぞw
- 824 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:15:59 ]
- >>823
今頃>>788は顔真っ赤だろうなw
- 825 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:18:10 ]
- >>824
逆だろ>>787が顔真っ赤だろ
- 826 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:21:29 ]
- むしろ今まで書き込んでる奴全員顔真っ赤に見える
- 827 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:21:56 ]
- >>824
アンマネージドリソースを解放する目的で存在するのなら、 disposeを実行するのは絶対に必須だと思うぞ?
- 828 名前:デフォルトの名無しさん [2009/03/11(水) 02:23:12 ]
- 絶対に必須ってなんだよ。日本語勉強してこい。
- 829 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:26:13 ]
- あーあ反論できなくなっちゃって関係ないこと罵倒し始めたよコイツ
- 830 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:28:36 ]
- 宇宙の真理的な絶対に必須とか俺的に絶対必須とか誰も必要としない必須とかいろいろある
- 831 名前:デフォルトの名無しさん [2009/03/11(水) 02:30:31 ]
- 一般論として、筆者はDisposeメソッドやCloseメソッドの呼び出しを強制するのはあまり
推奨しません。CLRのガベージコレクタはとてもよくできているので、それに任せたほうが いいからです。ガベージコレクタには、アプリケーションコードがオブジェクトにアクセスし なくなるタイミングが分かっています。そしてそのタイミングが過ぎたときにだけ、オブジェクト を回収します。アプリケーションコードでDisposeメソッドやCloseメソッドを呼び出すということは、 アプリケーションは自分がオブジェクトにアクセスする必要がなくなるタイミングが分かっている と宣言をしていることになります。たいていのアプリケーションでは、オブジェクトが間違いなく 不要になったことがわかることはありません。 例えば、新しいオブジェクトを作成して、その参照を他のメソッドの引数に渡した場合、 そのメソッドが渡された参照を自分のオブジェクトの内部フィールド(これはルートになります) に格納するかもしれません。メソッドを呼び出した側では、このような動作をしているかどうかは 分かりません。この場合、呼び出し側がDisposeやCloseを呼び出してしまって、その後で 他のコードがそのオブジェクトを利用しようとすると、ObjectDisposedExceptionがスローされる ことになります。 筆者は、DisposeやCloseを自分のコードで呼び出すのは、次の2つの場合に限ることを 推奨します。1つは、リソースを解放しなければならないことが分かっている時(開いている ファイルを削除しようとするときなど)です。もう1つは、DisposeまたはCloseを呼び出すことが 間違いなく安全で、しかもオブジェクトをファイナライゼーションリストから削除して、 オブジェクトが昇格するのを防ぐことで、パフォーマンスを向上させたい場合です。 これ以上に説得力のある意見言えるやつ、このスレにはいないわな 有名なAdvanced Windowsとか、これまで何冊も出してる重鎮だろ 書籍でFramework Class LibararyやCLRの実装のミスとかも指摘してるぐらいだからなw
- 832 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:30:52 ]
- どんなに日本語がおかしかろうが、リソース解放にDisposeの実行が明示的に必要なのは変わりない罠
- 833 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:33:49 ]
- >>831
>リソースを解放しなければならないことが分かっている時 まさに今述べてることじゃん 解放しなければ
- 834 名前:デフォルトの名無しさん [2009/03/11(水) 02:35:44 ]
- >>833は「次の2つの場合に限る」というのを、どうしても「全ての場合」に摩り替えたい低脳
- 835 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:42:30 ]
- >>834はオブジェクトの生存期間を自分で管理できない最底辺プログラマ
- 836 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:43:49 ]
- 今来た初心者の素朴な疑問なんですが、(マジで)
たとえばDBやhttpなどの接続プールを管理しているファクトリからストリームを貰ったときに 自分が使い終わったからといって、勝手に閉じるとママに怒られると思うんですが そういうケースはどう扱うのが正当ですか?
- 837 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:49:42 ]
- >>836
そのままほっとけばGCが回収してくれると主張する人がいる
- 838 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:52:08 ]
- >>834
だ・か・ら >アプリケーションコードでDisposeメソッドやCloseメソッドを呼び出すということは、 >アプリケーションは自分がオブジェクトにアクセスする必要がなくなるタイミングが分かっていると宣言をしていることになります。 って書いてあるだろ。つまりオブジェクトが必要無くなったときにdisposeするかどうかを論じてるんだから、 最後の2つの場合について論じているわけよ
- 839 名前:660 mailto:sage [2009/03/11(水) 02:57:04 ]
- お前らまだ続けてたのか
- 840 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:59:52 ]
- Disposeしていいと思うのならしとけ
していいかわからなかったらするな これでいいよ
- 841 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 03:07:10 ]
- しなかったら、ずっとデータベースに接続され続けるんじゃないのか?
していいかわからなかったらしておいたほうがいいだろ
- 842 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 04:32:20 ]
- A.アイスがチュッチュなら溶けても構わないので、そのまま開けっ放し。
B.アイスがハーゲンダッツなのでちゃんと締める。
|

|