[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/05 17:49 / Filesize : 232 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part88



1 名前:デフォルトの名無しさん mailto:sage [2015/07/25(土) 16:14:05.15 ID:I42JqLkf.net]
■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら
www.visualstudio.com/downloads/

■コードを貼る場合はこちら
ideone.com/

■前スレ
C#, C♯, C#相談室 Part87 [転載禁止](c)2ch.net
peace.2ch.net/test/read.cgi/tech/1427558696/

■次スレは>>970が建てる事。
建てられない場合は他を指定する事。

547 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:22:31.03 ID:6V9DEjWD.net]
どぼんでも見てんじゃねえの

548 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:41:51.73 ID:/ddVcb/Z.net]
ここ
akabeko.me/blog/2009/12/c-%E3%81%A7%E9%9F%B3%E6%A5%BD%E5%86%8D%E7%94%9F-1/

549 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 00:54:00.36 ID:oxql1dUV.net]
なんだNAudio君か
ID変わったら分かるわけねえだろ

で、リファレンスは無いらしいよ
ましてやこんなマイナーライブラリで日本語でなんて夢のまた夢だね
諦めて畑でも耕してろよ田子作君

550 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 01:01:47.13 ID:KIpdc5GT.net]
>>541
これNAudio 本体のソースあるだろ・・・何が解らないのかマジで意味が判らない

551 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:19:12.99 ID:/ddVcb/Z.net]
色々調べたら.NETはHTMLではなくXMLでドキュメントを出力すると書いてあったのですが付属のXMLはどうやってみればいいのでしょうか?

552 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:22:26.90 ID:ixHtKeVz.net]
>>539
ドボンわかりやすくて好きなんだけど評判悪いの?

553 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:46:33.05 ID:FsGTTI8e.net]
大雑把だからねあのサイト

554 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:55:11.13 ID:3HC4qH6u.net]
>>543
sandcastle とかの話?

555 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 15:58:13.44 ID:sBJvd1d/.net]
>>543
XML無いんだろ?じゃあ見れないよ



556 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:07:06.30 ID:oDfmtetu.net]
>>544
どこの世界にも、自分は何もしないで他人の貢献にケチをつけるだけの卑しい馬鹿はいる。

557 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:49:23.39 ID:gTtGqll8.net]
>>544
わりと古い情報が残ってる

558 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 16:56:24.11 ID:/dRiP8l8.net]
そんなの一カ所だけじゃなくて複数箇所見て比較すれば済む話なんじゃ。。
多少問題があっても有効な情報も多数あるサイトならあった方が便利だと思うんだけど。

559 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:07:23.50 ID:/ddVcb/Z.net]
>>547
NAudio.XMLがついていましたがどのような形式で書いてあるのかが分かりません

560 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:15:56.97 ID:+n0G/6wG.net]
xml形式だよ

561 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:37:51.84 ID:KIpdc5GT.net]
>>549
1.1〜2.0の頃のネタばかりだから昔はお世話になったけど、今は検索でヒットしてもスルーしちゃうわ

562 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 17:51:26.44 ID:JpeLxAWc.net]
ドボンってIDisposableなオブジェクトでも基本usingしないというありえないコードばかりなので

563 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:00:11.86 ID:sBJvd1d/.net]
>>554
そりゃそのまま使っちゃだめだよ

564 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:09:11.16 ID:TF79Y1M/.net]
>>554
前も書いたけどあそこはそこまで酷いコードはない。

565 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:18:17.85 ID:TF79Y1M/.net]
っていうか、ちゃんと記事読んだことがあれば、あそこの管理人がそんな馬鹿じゃないことぐらいは
分かると思うんだけど。

2chって何かを貶めることで自分が一人前だと錯覚したがってるとしか思えない馬鹿多いけど痛々しいよ。



566 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:25:43.07 ID:zOssAmca.net]
>>544

>>536 に対して >>538 で、そういったリファレンスならMSDNだろ的な指摘して
>>539 はサンプル的なサイト見てんじゃないかと言っただけだろうと思う。
ドボンが悪いとかは書いてない。

567 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:27:46.34 ID:yRr1oZWk.net]
msdn.microsoft.comのAPIリファレンスとリフレクタ(今はILSpy)だけで
すべてやりくりしてきた俺、ドボンを知らず低見の見物

568 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 18:34:01.47 ID:/al9OGnB.net]
>>557
後半
あるあるある

569 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 20:23:16.96 ID:JpeLxAWc.net]
>>557
いや、当人がどんな人物であったかとは関係なく、
あのコードを垂れ流しているというのは犯罪に近いよ。
分かってる人にはいいけど、初心者にはあまりいい影響を与えない。

何かを公開して流布している責任というものがある

570 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 20:41:11.99 ID:9JN1kuOn.net]
言論の自由があるので仕方ない

571 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:22:44.29 ID:/dRiP8l8.net]
そもそもネットの記事を鵜呑みにするヤツの方に問題があるんでわ。

572 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:28:50.69 ID:Z73ESiAy.net]
>>561
わかる
でもそれは仕方ない
「にわかな奴ほど語りたがる」の法則は今だ根強い

糞かどうかの判断がつかないから顔面に糞つけて糞頬張りながら糞うpするんだよ

573 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 21:35:41.70 ID:3HC4qH6u.net]
>>561
具体的にどれよ
url 教えてくれ

574 名前:デフォルトの名無しさん mailto:sage [2015/08/22(土) 22:46:49.90 ID:FpzfkEmP.net]
>>559
.NETのソースならよく読むけど、逆コンパイルするほど気になるソフトってなんかある?

575 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 01:33:58.42 ID:kX8AQ+CF.net]
>>561
犯罪的なコードって何でしょう?



576 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 03:28:16.91 ID:AQ6+ZwTX.net]
>>554
あそこはVB.NETがメインで、Usingが使えるようになる前からのコードがあるからだよ
Disposeしろって注意書きは時々みかけるし、そもそもあそこ初心者のためのサイトじゃないと思うが

577 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 10:55:36.67 ID:BEYfXVp0.net]
Dispose厨のレベルの低さに泣ける
何でもかんでも明示的に破棄するのはアホのやる事だぞ
マネージドって言葉の意味少しは考えろよ

578 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:11:07.80 ID:U8H/JFYc.net]
Dispose厨ってのは
MSDNも読まずにマネージドリソースの解放にDisposeを使っちゃう
アホなクラス設計者のことですよね?

579 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:15:15.60 ID:QlQ/u5s/.net]
人を非難する前にマネージドリソースとは何か明確に定義せよ

580 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:15:48.70 ID:CLEYS0FF.net]
>>569
どゆこと?

>>570
>マネージドリソースの解放に
それはGCがやるもんだが

581 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 11:49:28.77 ID:BEYfXVp0.net]
クリティカルなリソースはusingを使うべきだ
パフォーマンス問題になるならusingを使っても良い
しかしそれ以外ではusingを使うな
CLRに全てを委ねてプログラマをリソース管理の責務から解き放つのだ

582 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:05:44.69 ID:9aqT3FI6.net]
メモリ以外のリソースはすべて・・・・

583 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 12:17:42.22 ID:CLEYS0FF.net]
>>573
全く分からん

584 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:15:02.38 ID:JQjk+2hP.net]
マネージドリソース
それは(ライブラリの中のコード含めて)ネイティブを使わずに記述できるもの
ファイルやTCPソケットはこれに該当しない
クリティカルとか言ってる馬鹿は放置

585 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:20:50.40 ID:9aqT3FI6.net]
メインメモリ以外のリソースはすべてアンマネージドだ



586 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:22:15.46 ID:prCrabVF.net]
usingを使えるってことはIDisposableなわけで、つまりそのオブジェクトがアンマネージドオブジェクトを含んでいたりラップしているのが普通だ
IDisposableをやたら使うなならともかく、usingを使うなってのは意味がわからんな

587 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:33:23.13 ID:/F5UpcuB.net]
ファイルやTCPがマネージドとか言い切ってる奴大丈夫かよ

588 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:36:39.19 ID:bbkyb+Wi.net]
8月以降このスレで大丈夫そうな書き込みは見てませんよ
ここまで無脳と馬鹿のコラボばっか

589 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 13:43:35.74 ID:zGFxmPuI.net]
ちょっと上にあった「ニワカほど語る」法則が炸裂してんだろ。
確かにDisposeだのマネージドだのニワカくせー話題だわ。

590 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:33:29.02 ID:JLY6V2Uz.net]
無脳なのは573と579と581ぐらいじゃないか

591 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:44:14.12 ID:1KB/gLgO.net]
ファイルみたいな共有リソース掴んでない限りGCされるまでメモリを消費するだけだし、Disposeする必要のない場面もあったりする
呼んで損はないから、明らか不要なとき以外は呼ぶが吉だけどね

WPF版のドボンみたいなサイトがほしい

592 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:54:39.63 ID:Rmxdvxky.net]
>Disposeする必要のない場面もあったりする

へー、どんな場合だよ
ただしawaitのTask以外で

593 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 15:58:35.35 ID:cYtxjCYh.net]
WPF(笑)

存在そのものが意味不明なフレームワークは隔離スレで大人しくしてなよ
お呼びじゃないから

594 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:04:54.83 ID:UzzkwRGD.net]
>>584
GDI+関係はかなりあるよ。
Win9x時代はOSの制約上確実に呼ぶ必要があったが今は必ずしも必要ないもの

595 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:19:52.74 ID:bbkyb+Wi.net]
頭がとろけたような具体性のかけらもない会話



596 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 16:24:59.06 ID:hc4Y2Ev5.net]
無脳だと認めたら終わってしまうくらい他に何かが無いのに、これ以外にできることが無い奴なんだろうな
暴れすぎやで
> 573,579,581

597 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:28:44.31 ID:MIhiF6BJ.net]
リソースクラスにはDisposeパターンを適切に実装する
実際にDisposeする時期はCLRに任せて人間は管理しない
これ.NETの世界じゃ基本中の基本だよ
管理不要でパフォーマンスへの影響もないリソースを工数かけて人間の手で管理したがる
救いようのない馬鹿としか言いようがない

598 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:37:04.51 ID:CLEYS0FF.net]
はぁ??

599 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:43:43.11 ID:MIhiF6BJ.net]
>>590
やれやれ
論理的な反論ならまだ救いようがあるが、
無学が原因で理解が及ばない、ってだけでケチを付けるなよ
それもう敗北宣言に等しいぞ

600 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:48:20.40 ID:0gT6iToJ.net]
>>586
kwsk
StringFormatとかIDisposableだから律儀にusingしてるけど

601 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:50:34.03 ID:0gT6iToJ.net]
起動してすぐ終了するようなツールしか作らないならファイナライザ任せでもいいかもね

602 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:54:13.26 ID:hc4Y2Ev5.net]
リソースの意味が微妙な感じの流れだから、それは置いとくとして
ファイルなどを取り扱う場合はちゃんとDisposeしないとファイルが開きっぱなしになって、他所からアクセス不能になって困る事がある
必ずクローズすれば良いが、例外などで予想外の進行をした場合に備えて using で確実なDisposeをしておいた方が良いだろう
面倒だがDisposeがあるなら必ずDisposeするべきでしょう

C++などの場合と比べてファイナライザ(デストラクタ)の実行順序が当てにならないので、あてになる順序をきちんと作る必要がある場合も利用されるでしょうから

603 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 17:57:04.83 ID:bbkyb+Wi.net]
あの、ふらっとでやってくれる?
そういうの

604 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:01:14.22 ID:hrfhzpqC.net]
ニワカなやつほど(略

605 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:04:40.51 ID:MIhiF6BJ.net]
>>594
当然
適切な終了処理が必要なものは、そう書く必要がある
しかし、そういった処理が不要で、CLRに任せておけば良いように作られたリソースクラスでは必要がない
むしろ不必要な記述でコードを汚染するだけなので、書いてはいけない
すでに自動化されているものは、機械に任せるのが正解なのである



606 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:04:49.28 ID:hc4Y2Ev5.net]
595,596
煽りたいだけなら、今すぐネット切って死んでしまえば良い

607 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:09:32.22 ID:hc4Y2Ev5.net]
>>597
Disposeを書くという事は、今後そのライブラリを作った人が
そのように使う必要があるよう変更するかもしれないという余地が残っているのです
みんなで作業するときトラブルなどが発生しないように取り決めた事ですから、可能な限り従う事がよろしいでしょう

608 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:13:39.60 ID:bbkyb+Wi.net]
煽りたくないけど低レベル過ぎて邪魔だよ
どっから湧いてるの?

609 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:17:14.27 ID:idej2sB9.net]
>>600
お前も煽ってるだけで何も貢献してないけどな

610 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:17:59.99 ID:GkEjDFKz.net]
俺のDisposable講義は始まったばかりだぜ
聞きたくない奴は帰りな

611 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:21:04.69 ID:GkEjDFKz.net]
MSDNやそこらのブログに散々書いてあるようなことしか言わないぜ
耳タコだと思うが勘弁な
俺は喋りたいんだ
昨日今日知ったばかりなんでな
だから聞いてくれ

612 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:23:20.43 ID:MIhiF6BJ.net]
>>599
そんな糞みたいな仕様変更をする破壊工作員は処刑が必要
ぶっちゃけコード直してる場合じゃない
最初のバージョンから、Disposeが必須であると、明記されているなら使うべきだし
明記されてい無いなら、Disposeを必須にするような変更は行ってはならない
馬鹿でもわかる話だが知らなかった?

613 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:27:38.13 ID:NRN2Fhep.net]
お前の頭から修正しとけよ
もうリカバリ不能かも知れんがな

614 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:34:31.35 ID:MIhiF6BJ.net]
ふぅ〜
まいったね
反論すらできないところまで追い詰めちゃったか
論理的な、とまでは言わないから、せめて安い暴言じゃなくて反論を頼むよ

615 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:36:25.70 ID:UiYX5d8M.net]
そもそもリソースクラスって何だよ



616 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:36:31.29 ID:nxY8tWuM.net]
ちょっとこのスレDisposeしてくる

617 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:41:24.76 ID:bbkyb+Wi.net]
Disposeの実装が糞で駄目なパターンだな

618 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:41:34.58 ID:UiYX5d8M.net]
それに呼ばないのが基本中の基本としつつもIDisposableの代表例

619 名前:であるFileStreamを例外にするってどういう事だよ
長々と書いているが結局呼ばなくていい場合があると言いたいだけか?
[]
[ここ壊れてます]

620 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:44:40.15 ID:JbH8lT1Q.net]
MSDN確認してその通りにやればいいだけでは?

> 基本クラスが IDisposable を実装する場合は、オブジェクトは基本クラスの Dispose メソッドも呼び出す必要があります。
> Dispose のメソッドを明示的に呼び出す必要があるため Dispose のメソッドを呼び出してオブジェクトのコンシューマーがに失敗したため、
> アンマネージ リソースが解放されないこと危険性が常にあります。 これを回避するには、次の 2 とおりの方法があります。
> ・System.Runtime.InteropServices.SafeHandle から派生されるオブジェクトのマネージ リソースをラップしてください。
> ・Dispose が呼び出されないときにリソースを解放するようにファイナライザーを実装してください。
> StreamWriter などのアンマネージ リソースにアクセスするオブジェクトを使用するときは、using ステートメントでインスタンスを作成することをお勧めします。
> using ステートメントは、使用しているコードが完了すると、ストリームを自動的に閉じ、オブジェクトの Dispose を呼び出します。
> https://msdn.microsoft.com/ja-jp/library/system.idisposable.dispose(v=vs.110).aspx

621 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:50:22.66 ID:53h6zSH3.net]
CLR再起動

622 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:50:45.39 ID:hc4Y2Ev5.net]
>>604
それでは共同作業になりませんね、そこまで自我を通したいなら自分一人で作業するしかないでしょう
取り決めは大事

623 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:53:42.93 ID:MIhiF6BJ.net]
>>613
共同作業を円滑にするために、常にDispose必須、とかいうオレオレルールを排除しなければならない
理由はもう説明したな

624 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 18:59:05.24 ID:53h6zSH3.net]
今度は共同作業のマナー論ですか
君らはまず場を弁えることを学ぶのが先決では…

625 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:02:58.05 ID:8rh7GHk2.net]
>>592
Font, Brush, Penなんかは自分で作った物(システムリソースじゃない)であっても
今のWindowsではいちいちDisposeしなくてもまず何の問題もない。

そうは言っても習慣で書いちゃうけどね。



626 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:09:30.05 ID:2AMvri3n.net]
>>616
そうなんだ

でも呼ばないと高コストなファイナライザでの解放になっちゃうしね

627 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:24:52.17 ID:qzhEyH2V.net]
今unityでゲームを作っているのですが、累計の記録ってどう書けばいいのでしょうか?
今まで対象のオブジェクトが何回タップされたか記録したいです。
playerprefsを使えばできますか?

628 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:25:54.56 ID:idej2sB9.net]
unityスレで質問しなよ

629 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:36:46.47 ID:hc4Y2Ev5.net]
Disposeがどうしても嫌なら、勝手に俺ルールを作り出さず素直にファイナライザに書けばいいんだよ
そういうルールで作ろうという事になっているんだから
それで問題なければそれで上手くいく、そうでないものは決められた極力ルールに従う事

そうしてファイナライザのみにすると具合が悪い話が必ず出てくると気付くはず
例えば、ファイルオブジェクトのように、ロック握っている奴とか
例えば、アンマネージ側の参照カウンタがカウントダウンされなくて予想外のメモリーリークしたとか
例えば、C++のつもりでデストラクトの順序を考えていたら予定外の順序でファイナライザが起動してクラッシュしたとか

630 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:44:15.23 ID:0gT6iToJ.net]
>>616
システムリソースじゃないってほんとかい? GDIオブジェクトとしてタスクマネージャに表示されるんじゃないの?
でも大概描画=なんども呼ばれるシナリオだから
そのたびに破棄しておいたほうがメモリ的にも安心じゃね?

631 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:45:43.68 ID:MIhiF6BJ.net]
>>620
何回言えばいいのかな
呼び出しが必要な必要と使用に明記する
明記されない以上は明記しなくても問題ないように実装する
それが社会のルールだ
呼ばないとダメになる場合があるのにそれを仕様に明記しないでDisposeが呼ばれるオレオレルール(出典不明)を前提に作るな
クズが死ね

632 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:53:17.04 ID:JbH8lT1Q.net]
>>616
今更ながらPenがDisposeを実装していると知った。(もちろんDisposeしたことはない)
何でこれまで気づかなかったのかと探せば、
PenのサンプルコードではDisposeしているが、DrawLinesのではしていないからだ。
> https://msdn.microsoft.com/ja-jp/library/system.drawing.pen.dispose(v=vs.110).aspx
> https://msdn.microsoft.com/ja-jp/library/7ewkcdb3(v=vs.110).aspx
なお、これまで特に問題を感じたことはなかった。

>>617
Finalize自体はDisposeと大して変わらないよね?
GC自体のコストと、メモリ撹拌の問題はあるにしても。
Disposeした方がもちろんお行儀がいいとして。

てか、gcnew って delete しなくていいためのものじゃなかったんかー!
ファイルはクローズしてるけど、他は全部放置してたわw
(なおVC++使い)

633 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 19:58:35.53 ID:nxY8tWuM.net]
このスレを読んだら初心者の私もウルトラスーパーハイパーミラクルアルティメットDispose名人になれました!

634 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:01:04.88 ID:MIhiF6BJ.net]
>>623
deleteしなくても良いであってるよ
自動化したのに手作業が必要なんて馬鹿みたいだろ

635 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:08:50.19 ID:9aqT3FI6.net]
でも、ファイナライザは論理アドレスが圧迫されてGCが発動しないと呼ばれないよ
メモリとシステムリソースは別物だから、
開放のトリガーを論理アドレスの枯渇に頼るのは良くない作法なのでは



636 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:09:16.04 ID:hc4Y2Ev5.net]
初心者の頃 Disposeし忘れて、ライブラリの書き直しが大変な事になったのでは GetEnumerator() で取ってきたIEnumerableのDisposeのし忘れかな
ファイルオブシェクトをこっそり握っていて、ファイルがロックされたままだったのを
色々システムを結合した後に気づいて、泣きそうになった
C++から移行した後、嵌ったのは
class A
{
 ~A() {}
}
class B
{
 A a;
 ~B() {}
}

var tmp = new B();
こういったケースかな、C++であれば必ず a のデストラクタが後だが C# だとどちらが先になるか分からなくなる
C++と違いデストラクタではメンバは迂闊に触れないという事実を思い知らされた

637 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:18:42.77 ID:hc4Y2Ev5.net]
おっと、GetEnumerator() で取って来れるのは IEnumerable ではなくて IEnumerator でした
Disposeがリソースと関係なく必要になるケースはC++と違いデストラクタがまともに使えないという事情から来ることも多々あります

638 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:20:23.58 ID:ZkLCFLWu.net]
まだやってやがる
死ねよマジで
それともあれか、手伝って欲しいのか?
殺してやるから住所教えろや

639 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:26:42.76 ID:0gT6iToJ.net]
>>629
おまえの住所先に書けやバカヤロウ

640 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:27:29.87 ID:bbkyb+Wi.net]
見なかったことにしてやるからさっさと執行してくれや

641 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:31:02.28 ID:MIhiF6BJ.net]
おうかかってこいやチキン野郎

642 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:50:07.75 ID:JbH8lT1Q.net]
>>625
コンセプトとしてはその通りだけど、ID:hc4Y2Ev5が言っているのもまた然りだと思うよ。

本来は、全部GCに任せた上で、理由がある場合のみ手動でDisposeという仕様を目指しているのだと思う。
現実的にはこれはほぼ完成しており、通常の範囲で問題になることはない。(少なくとも俺は命中していない)
ただ、MSDNで
> 基本クラスが IDisposable を実装する場合は、オブジェクトは基本クラスの Dispose メソッドも呼び出す必要があります。(611)
と言っている以上、Finalizerだけでは駄目なケースがあって、それに命中する可能性も残っているのだと思う。
とはいえ、普通に実装すればFinalizeはまずDisposeをコールするだろうから、
問題が発生

643 名前:キるとしたらタイミングだけのはずだけど。

確認してみたけど、C#のデストラクタは起動を予約してGCから起動するという仕様のように見える。
> http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_011/csharp_abc03.html
確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
だから>>627-628の言うことはあっている。620の3つのケースもあり得ると思う。
理由は指摘の通り、C#ではデストラクタの起動順/タイミングが規定できないからだね。
[]
[ここ壊れてます]

644 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 20:50:20.22 ID:1KB/gLgO.net]
>>584
特定の方法でインスタンス作った時にだけ意味があるというのは割りとある
例えば、FormをShowした時とかは自動でDisposeされるから不要

645 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:31:38.21 ID:hc4Y2Ev5.net]
>確かにこれだとFile等はClose/Disposeをしないといつロックを解除してくれるか分からない。
ファイルオブジェクト的な物を使う側ではなく作る側で、実際にいろいろやってみて面倒な事になってるなと思ったのは
フィールド上に確保していたバッファがデストラクタ中のクローズ処理よりも先に解放されてしまうなどですかね
アンマネージの場合はこの辺は実にすっきり記述できるんですが、マネージでは厄介です

初心者の時
~Class() { Dispose(); }
なんて事をあまり深く考えずにやってました、そして謎の異常終了を発生させてましたね
Disposeが呼び出されずにデストラクタが呼び出されたら、できることはもはや安全停止だけです
まともな終了処理は最早できません



646 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:35:34.12 ID:OpHxID+X.net]
C++のノリでデストラクターを間違った使い方して
GCの洗礼を受けたのはわかった

647 名前:デフォルトの名無しさん mailto:sage [2015/08/23(日) 21:37:58.50 ID:aJXfAZiV.net]
もうskypeで議論して最終的に友情をめばえさせたら?
C#である必要もないし






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<232KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef