トップページ > プログラム > 2015年08月25日 > FzRJlm7d

書き込み順位&時間帯一覧

9 位/133 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000000214



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net

書き込みレス一覧

C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
698 :デフォルトの名無しさん[sage]:2015/08/25(火) 00:42:16.41 ID:FzRJlm7d
すいません言い直します。

・C#では、正しく構成されたクラスを使用している限り、本質的なリークは発生しない。
(明示的にDisposeしなくてもいつか回収される《=Finalize時にDisposeが呼ばれる》)

じゃないかな?
もちろん.NET謹製のはリークしない。
自作クラスでアンマネージリソースを使う場合、MSDNによると、
・Disposeを実装し、SafeHandleでアンマネージリソースをラップする。←こっちがオススメ
・Finalizeを実装する。
のどちらかをやっておけばいいはず。
> https://msdn.microsoft.com/ja-jp/library/498928w2(v=vs.110).aspx

だからリークしてるのであれば、自作クラスの構成がまずいのだと思うのだが。
もちろんクラスの構成はC++流(デストラクタ)ではなくC#流(上記)にしないといけない。
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
718 :デフォルトの名無しさん[sage]:2015/08/25(火) 22:00:39.66 ID:FzRJlm7d
>>706,717
個人的にはDisposeを使う方がお行儀がいいのは認める。
ただ、C#の思想としては、「タイミングは規定できないが、解放はシステム側で保証するから、
面倒なことを考えずに具だけに集中しろ」ということなのだと思う。
だから、クラスをきっちり書けば出来そうな気もするし、それに向けて整備していっているはず。

とはいえ、俺はGUI(描画)に使っている程度で、そんなに本格的に使っていない。
だから命中していないだけで、言われているケースがありそうだというのはなんとなく感じる。
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
720 :デフォルトの名無しさん[sage]:2015/08/25(火) 22:07:38.08 ID:FzRJlm7d
>>707
アンセーフはこれ。見にくくなるが速くなる。
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_021/csharp_abc05.html

アンマネージドはVC++の機能で、SSEとかを使いたいときに使う。
C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net
731 :デフォルトの名無しさん[sage]:2015/08/25(火) 23:57:53.14 ID:FzRJlm7d
これな。十分速いが、それでも倍違うけどね。
http://daisy64.blogspot.jp/2009/01/getpixel.html

マネージドコードの例は不要だと思って省略した。
実際は#pragma unmanagedと#pragma managedでソース上で関数単位で切り替える。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。