[過去ログ]
ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
ふらっと C#,C♯,C#(初心者用) Part154 http://mevius.5ch.net/test/read.cgi/tech/1644416019/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
262: デフォルトの名無しさん (ワッチョイ f154-B0ie) [] 2022/03/22(火) 03:13:27.47 ID:dk64x/8s0 Disposeパターンの学習中なのですが、マネージリソースとアンマネージリソースの見分け方が分からないのですが、 よい解説サイトを教えて頂けないでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/262
263: デフォルトの名無しさん (アウアウウー Sa5d-580B) [sage] 2022/03/22(火) 03:27:22.28 ID:Fi74risNa 難しく考えることない。この程度の見分け方で十分だろ class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド A a = 〜 a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド using (var a = new 〜) ←usingで囲んでエラー出たらマネージド http://mevius.5ch.net/test/read.cgi/tech/1644416019/263
264: デフォルトの名無しさん (アウグロ MM63-zSlE) [sage] 2022/03/22(火) 07:12:28.40 ID:p81GCeRAM Disposeの中身が MessageBox("error",MB_ICONERROR); のみでアンマネージド? http://mevius.5ch.net/test/read.cgi/tech/1644416019/264
265: デフォルトの名無しさん (アウアウウー Sa5d-580B) [sage] 2022/03/22(火) 08:11:26.68 ID:Fi74risNa Disposeの中身が空でもアンマネージなんだよ。細かいこと気にするな http://mevius.5ch.net/test/read.cgi/tech/1644416019/265
266: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 08:33:08.50 ID:kAgwAO/L0 いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語 http://mevius.5ch.net/test/read.cgi/tech/1644416019/266
267: デフォルトの名無しさん (ワッチョイ 51d2-3X4l) [sage] 2022/03/22(火) 08:35:18.57 ID:OaCGWLhd0 win32リソースかどうかなんか用途ですぐわかるだろ… http://mevius.5ch.net/test/read.cgi/tech/1644416019/267
268: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 08:39:28.18 ID:kAgwAO/L0 書いてから気づいた>>263の方法で確認すりゃまだ楽か だがしかし、実装を強制できないからdisposeしてなくても気づけないってのがな http://mevius.5ch.net/test/read.cgi/tech/1644416019/268
269: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 08:41:02.24 ID:kAgwAO/L0 >>267 そんなの場合による http://mevius.5ch.net/test/read.cgi/tech/1644416019/269
270: デフォルトの名無しさん (ワッチョイ 51d2-3X4l) [sage] 2022/03/22(火) 08:51:45.38 ID:OaCGWLhd0 キミのように脳に欠陥があるなら仕方がない。使い終わったら常にdispose()呼ぶだけの話。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/270
271: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 09:03:08.94 ID:kAgwAO/L0 >>270 草 http://mevius.5ch.net/test/read.cgi/tech/1644416019/271
272: デフォルトの名無しさん (ワッチョイ 51d2-3X4l) [sage] 2022/03/22(火) 09:22:16.11 ID:OaCGWLhd0 ( ´_ゝ`)プッ http://mevius.5ch.net/test/read.cgi/tech/1644416019/272
273: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 10:11:19.03 ID:kAgwAO/L0 使い終わったら常にdispose()呼ぶだけ!キリッ 話の本質わかってなくて草生える http://mevius.5ch.net/test/read.cgi/tech/1644416019/273
274: デフォルトの名無しさん (ワッチョイ 132c-P46e) [sage] 2022/03/22(火) 10:34:09.76 ID:G7lfoYcY0 Disposeでマネージ/アンマネージってことは protected virtual Dispose(bool disposing) のdisposingの真偽で何を解放すべきかってことだよね .NETのオブジェクトとして存在しているモノがマネージリソース 大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する これらはdisposing==trueのときだけDisposeすればいい アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ 大抵はIntPtr型で保持している こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する これらはdisposingに関わらず常に解放する http://mevius.5ch.net/test/read.cgi/tech/1644416019/274
275: デフォルトの名無しさん (ワッチョイ 51d2-3X4l) [sage] 2022/03/22(火) 10:35:59.07 ID:OaCGWLhd0 > いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語 分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。 だがその試みは失敗した。それだけ。 なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ? だがキミからは何も出てこない。知ったか初心者だからだ。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/275
276: デフォルトの名無しさん (ブーイモ MMeb-n2Eo) [sage] 2022/03/22(火) 11:53:43.00 ID:myN/pITuM そうカッカすんなよおっさん見苦しいぞ http://mevius.5ch.net/test/read.cgi/tech/1644416019/276
277: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 12:15:11.68 ID:kAgwAO/L0 >>275 顔真っ赤で草 http://mevius.5ch.net/test/read.cgi/tech/1644416019/277
278: デフォルトの名無しさん (ワッチョイ 51d2-3X4l) [sage] 2022/03/22(火) 12:31:50.91 ID:OaCGWLhd0 初歩的なリソース管理程度で発狂して言語貶してるド初心者に 馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/278
279: デフォルトの名無しさん (ワッチョイ 8b63-whB1) [sage] 2022/03/22(火) 15:52:49.70 ID:XhX0v2Lu0 その調子で血管切って死なねーかな http://mevius.5ch.net/test/read.cgi/tech/1644416019/279
280: デフォルトの名無しさん (テテンテンテン MMeb-zKmY) [sage] 2022/03/22(火) 17:16:17.21 ID:pk95uqSaM あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!) http://mevius.5ch.net/test/read.cgi/tech/1644416019/280
281: デフォルトの名無しさん (ワッチョイ 2979-zSlE) [sage] 2022/03/22(火) 19:17:57.13 ID:kPYOUkgu0 そもそもc#のデストラクタが産廃だからあてにしてる動作だろ http://mevius.5ch.net/test/read.cgi/tech/1644416019/281
282: デフォルトの名無しさん (スップ Sd73-2DeC) [sage] 2022/03/22(火) 19:49:04.13 ID:1zUmccnld GC(マークアンドスイープ)+FinalizeとDisposeの相性が悪いだけだろ C#に限った話じゃない http://mevius.5ch.net/test/read.cgi/tech/1644416019/282
283: デフォルトの名無しさん (ワッチョイ 4901-cTkz) [sage] 2022/03/22(火) 20:58:45.96 ID:hNvbiY4S0 exe終了したら何もかも解放されるんでしょ? http://mevius.5ch.net/test/read.cgi/tech/1644416019/283
284: デフォルトの名無しさん (アウアウウー Sa5d-580B) [sage] 2022/03/22(火) 21:05:08.48 ID:HvRJN3MAa 基本的には終了で開放だけど、すべてが開放されるとは限らない よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ http://mevius.5ch.net/test/read.cgi/tech/1644416019/284
285: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 21:09:25.23 ID:kAgwAO/L0 ようやく>>282みたいなまともな回答出てきて嬉しい スコープ外れたタイミングでデストラクタ呼び出し保証しなかった理由ってどこかに解説とかないのかな? C#の現状のデストラクタとかガチゴミじゃん http://mevius.5ch.net/test/read.cgi/tech/1644416019/285
286: デフォルトの名無しさん (テテンテンテン MMeb-NT4g) [sage] 2022/03/22(火) 21:19:04.18 ID:Ky9cYioTM またいつもの質問者そっちのけでの罵倒合戦かよ・・・・・ アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース 具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする マネージドリソースはC#の管理下にあるリソース全般 FileStreamやDbConnection、Bitmapオブジェクトなどもこれ そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる >>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ >>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん http://mevius.5ch.net/test/read.cgi/tech/1644416019/286
287: デフォルトの名無しさん (ワッチョイ 8bcf-noGs) [sage] 2022/03/22(火) 21:23:17.10 ID:0A7XAa2y0 C++/CLIならデストラクタが使えるから問題ないんだよな。捨てたのはもったいない。 http://mevius.5ch.net/test/read.cgi/tech/1644416019/287
288: デフォルトの名無しさん (ワッチョイ 8bbb-216p) [sage] 2022/03/22(火) 21:31:04.74 ID:kAgwAO/L0 それな GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい http://mevius.5ch.net/test/read.cgi/tech/1644416019/288
289: デフォルトの名無しさん (スップ Sd73-foG8) [sage] 2022/03/22(火) 21:39:13.30 ID:6LsnJNlYd >>285 スコープ外れたってどうやって判断するの? http://mevius.5ch.net/test/read.cgi/tech/1644416019/289
290: デフォルトの名無しさん (ワッチョイ f9ac-MdQT) [sage] 2022/03/22(火) 21:39:56.93 ID:3weeWjHs0 というかここら辺はサンプルというか、実際使ってるコードみないとピンとこんよな これは意味あるIdisposable、こっちは意味ないとかで http://mevius.5ch.net/test/read.cgi/tech/1644416019/290
291: デフォルトの名無しさん (スップ Sd73-2DeC) [sage] 2022/03/22(火) 21:41:21.16 ID:1zUmccnld >>287 ref class C{ ~C(){} // Destructor !C(){} // Finalizer }; のコンパイル結果が // C# DLL class C:IDisposable{ Dispose(); //Destructor??? ~C();//Finalizer } であることをご存知でない? http://mevius.5ch.net/test/read.cgi/tech/1644416019/291
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 711 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s