!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part153
https://mevius.5ch.net/test/read.cgi/tech/1639403601/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part154
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0fe3-wadS)
2022/02/09(水) 23:13:39.45ID:1A90hyai0233デフォルトの名無しさん (スッップ Sda2-nn6q)
2022/03/18(金) 16:32:30.07ID:r5cg+x+od プログラム開発でクソAIMやると切れそうになるからマウス使いたくない
234デフォルトの名無しさん (ワッチョイ 7d02-WCXV)
2022/03/18(金) 16:46:59.98ID:Ukh28wt40 ショートカット変えれるんだから変えろよ
235デフォルトの名無しさん (アウアウウー Sac5-I38D)
2022/03/18(金) 16:48:40.02ID:/Q6fnTiGa >>232
捨てろよ。もしくは頻繁に接点復活スプレー
捨てろよ。もしくは頻繁に接点復活スプレー
236デフォルトの名無しさん (ワッチョイ 8dd2-FsHI)
2022/03/18(金) 16:50:42.39ID:NghzuPCe0 UNIXなんてのは太古の昔から市場の片隅で生きてきた絶滅危惧種だったのに
使ってるアホどもは世界の中心だと思ってるから厄介。
使ってるアホどもは世界の中心だと思ってるから厄介。
237デフォルトの名無しさん (ワッチョイ 8dd2-FsHI)
2022/03/18(金) 16:51:47.06ID:NghzuPCe0 マウスイベント監視してチャタリング無効化するだけ。
238デフォルトの名無しさん (アウアウウー Sac5-I38D)
2022/03/18(金) 16:59:58.79ID:/Q6fnTiGa チャタリング判断が時間要素と多少の移動値しかないから、ソフト的な対策はできない(操作性悪いのは変わらない)んだよ
俺の対策の腕が悪いからかもしれないけどな・・・
俺の対策の腕が悪いからかもしれないけどな・・・
239デフォルトの名無しさん (ワッチョイ 8dd2-FsHI)
2022/03/18(金) 17:05:47.26ID:NghzuPCe0 スキルないならダイソーでマウス買ってきな。
240デフォルトの名無しさん (ワッチョイ a101-NIXk)
2022/03/18(金) 21:36:09.99ID:qCqrql870 タイポしやすいのでむしろなるべくキーボード使わないようにしてる派
インテリセンスとコピペを駆使しまくってる
インテリセンスとコピペを駆使しまくってる
241デフォルトの名無しさん (ワッチョイ 8279-Peks)
2022/03/18(金) 23:35:46.48ID:J38pP+oz0 ↑チャタリングの意味判ってない人
242デフォルトの名無しさん (ワッチョイ 8279-Peks)
2022/03/18(金) 23:37:54.94ID:J38pP+oz0 発見伝!て続けようとしたら書き込んじゃった
ただの感じ悪い人だなしまんてっく
ただの感じ悪い人だなしまんてっく
243デフォルトの名無しさん (ワッチョイ 1302-E6ai)
2022/03/19(土) 00:23:07.37ID:QWNhEVj80 何言ってんだこのバカ
244デフォルトの名無しさん (ワッチョイ d901-IBq+)
2022/03/19(土) 01:33:54.85ID:M/uS9iCI0 最初から最後まで意味が分からなくて草
245デフォルトの名無しさん (ワッチョイ f154-B0ie)
2022/03/19(土) 02:23:05.14ID:VxWFG4OV0 バーコードよりハゲのほうがマシ。
まで読んだ。
まで読んだ。
246デフォルトの名無しさん (ワッチョイ 4901-cTkz)
2022/03/19(土) 02:31:34.95ID:oVqI+gO+0 時代はQRコードやで
247デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/19(土) 12:51:17.68ID:UXt2lmR80 まだらハゲ
マーブルハゲ
マーブルハゲ
248デフォルトの名無しさん (ワッチョイ 1379-Tr1D)
2022/03/19(土) 14:08:52.76ID:advrh/I10 USBメモリを安全に取り外すのはC#で書けたんですが、
その後USBメモリを抜き差しせずに再認識させる方法はあるでしょうか
その後USBメモリを抜き差しせずに再認識させる方法はあるでしょうか
249デフォルトの名無しさん (オッペケ Sr85-MdQT)
2022/03/19(土) 14:12:14.78ID:XXD5kKqhr なんでそんなことまでやってるの
250デフォルトの名無しさん (ワッチョイ 1379-Tr1D)
2022/03/19(土) 14:29:31.78ID:advrh/I10251デフォルトの名無しさん (ワッチョイ 1361-Jp3i)
2022/03/19(土) 15:09:08.63ID:DtRySdf10 取り外しやったら物理的に外さないとだめじゃなかったっけ?
ドライバの無効→有効じゃだめなん?
ドライバの無効→有効じゃだめなん?
252デフォルトの名無しさん (ワッチョイ 4901-cTkz)
2022/03/19(土) 15:29:43.49ID:oVqI+gO+0 vectorにあるunhotplugとeasterっていうのを呼ぶツール作ればいけるのでは
253デフォルトの名無しさん (ワッチョイ f9ac-MdQT)
2022/03/19(土) 20:19:19.80ID:VZmL8CeM0 おせっかいというか余計なアレやけど、
USBを擬似的に抜き差しさせるプログラム作って新たな障害の素を作るより、
USBを使わない、ネットワークストレージに置き換えるとかの方法で、
根本的な状況を改善するほうがいいんじゃないかな。。
USBを擬似的に抜き差しさせるプログラム作って新たな障害の素を作るより、
USBを使わない、ネットワークストレージに置き換えるとかの方法で、
根本的な状況を改善するほうがいいんじゃないかな。。
254デフォルトの名無しさん (ワッチョイ 0bda-noGs)
2022/03/19(土) 20:33:21.04ID:D/0X5tNm0 USBに何か挿されたよシグナルをOSに送ればいいんじゃね
255デフォルトの名無しさん (テテンテンテン MMeb-noGs)
2022/03/20(日) 00:37:40.27ID:J9wgpmKzM 自分ところの放置鯖は休止復帰後にUSBの再認識をバッチでやってた
時々USB死んでマウスが動かなくなるから
やり方は忘れた
時々USB死んでマウスが動かなくなるから
やり方は忘れた
256デフォルトの名無しさん (アウアウウー Sa5d-580B)
2022/03/20(日) 01:21:44.08ID:RMYANpbIa usbメモリ直はムリだと思うからdevconいじくりまわしてワンチャンかな
257デフォルトの名無しさん (ワッチョイ 8bb0-Ldsw)
2022/03/20(日) 22:42:36.53ID:0372vEy10 wmiからPnPEntity使った方がまだやりやすそう
258デフォルトの名無しさん (ワッチョイ 112f-kNuw)
2022/03/21(月) 06:21:02.19ID:B3XvFTTu0 そもそも何故USBを抜き差しした事にしたいのかわからん
259デフォルトの名無しさん (ワッチョイ b102-bSSa)
2022/03/21(月) 08:11:52.79ID:idY8N9Dd0 スマートコンセントにアダプター式のUSBハブ繋いで電源ON/OFFすればいいんじゃねw
260デフォルトの名無しさん (ワッチョイ 1379-Tr1D)
2022/03/22(火) 00:17:50.57ID:gjcW4Tfu0 まあハードで細工前提なら間にマイコンなりでVCCをスイッチすればできますけどね
ソフトでできないかという話なので
devconでdisable→enableは期待した動作にはならなかったので他の方法を考えて見ます
ソフトでできないかという話なので
devconでdisable→enableは期待した動作にはならなかったので他の方法を考えて見ます
261デフォルトの名無しさん (ワッチョイ b102-bSSa)
2022/03/22(火) 00:39:31.18ID:k34A21mc0 目的を達成出来れば何でもいいって話だと思ったんで、違うならスルーしてくれ
262デフォルトの名無しさん (ワッチョイ f154-B0ie)
2022/03/22(火) 03:13:27.47ID:dk64x/8s0 Disposeパターンの学習中なのですが、マネージリソースとアンマネージリソースの見分け方が分からないのですが、
よい解説サイトを教えて頂けないでしょうか。
よい解説サイトを教えて頂けないでしょうか。
263デフォルトの名無しさん (アウアウウー Sa5d-580B)
2022/03/22(火) 03:27:22.28ID:Fi74risNa 難しく考えることない。この程度の見分け方で十分だろ
class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド
A a = 〜
a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド
using (var a = new 〜) ←usingで囲んでエラー出たらマネージド
class A : IDispose ←宣言を見たときにIDispose派生ならアンマネージド
A a = 〜
a. ←「.」を打ち込んだ時にDisposeが表示されたらアンマネージド
using (var a = new 〜) ←usingで囲んでエラー出たらマネージド
264デフォルトの名無しさん (アウグロ MM63-zSlE)
2022/03/22(火) 07:12:28.40ID:p81GCeRAM Disposeの中身が
MessageBox("error",MB_ICONERROR);
のみでアンマネージド?
MessageBox("error",MB_ICONERROR);
のみでアンマネージド?
265デフォルトの名無しさん (アウアウウー Sa5d-580B)
2022/03/22(火) 08:11:26.68ID:Fi74risNa Disposeの中身が空でもアンマネージなんだよ。細かいこと気にするな
266デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 08:33:08.50ID:kAgwAO/L0 いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
267デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 08:35:18.57ID:OaCGWLhd0 win32リソースかどうかなんか用途ですぐわかるだろ…
268デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 08:39:28.18ID:kAgwAO/L0 書いてから気づいた>>263の方法で確認すりゃまだ楽か
だがしかし、実装を強制できないからdisposeしてなくても気づけないってのがな
だがしかし、実装を強制できないからdisposeしてなくても気づけないってのがな
269デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 08:41:02.24ID:kAgwAO/L0 >>267
そんなの場合による
そんなの場合による
270デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 08:51:45.38ID:OaCGWLhd0 キミのように脳に欠陥があるなら仕方がない。使い終わったら常にdispose()呼ぶだけの話。
271デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 09:03:08.94ID:kAgwAO/L0 >>270
草
草
272デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 09:22:16.11ID:OaCGWLhd0 ( ´_ゝ`)プッ
273デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 10:11:19.03ID:kAgwAO/L0 使い終わったら常にdispose()呼ぶだけ!キリッ
話の本質わかってなくて草生える
話の本質わかってなくて草生える
274デフォルトの名無しさん (ワッチョイ 132c-P46e)
2022/03/22(火) 10:34:09.76ID:G7lfoYcY0 Disposeでマネージ/アンマネージってことは
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね
.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい
アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
protected virtual Dispose(bool disposing)
のdisposingの真偽で何を解放すべきかってことだよね
.NETのオブジェクトとして存在しているモノがマネージリソース
大体は自分がメンバに持ってるIDisposableなオブジェクトを意味する
これらはdisposing==trueのときだけDisposeすればいい
アンマネージリソースはWindowsのAPIとかで直接確保したデバイスコンテキストとかメモリ
大抵はIntPtr型で保持している
こういうのはそれぞれのリソースの解放方法に従った方法で直接解放する
これらはdisposingに関わらず常に解放する
275デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 10:35:59.07ID:OaCGWLhd0 > いちいち継承元全部辿ってIDisposableあるか確認して手動で開放しないとリークしまーすとかいう欠陥言語
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。
なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
分かってるよ。話の本質は、馬鹿がヘジが開発した言語にマウンティングした、ということだろう。
だがその試みは失敗した。それだけ。
なんならwin32リソースについて言語はどう管理すべきいくらでもキミの意見を語っていいんだぜ?
だがキミからは何も出てこない。知ったか初心者だからだ。
276デフォルトの名無しさん (ブーイモ MMeb-n2Eo)
2022/03/22(火) 11:53:43.00ID:myN/pITuM そうカッカすんなよおっさん見苦しいぞ
277デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 12:15:11.68ID:kAgwAO/L0 >>275
顔真っ赤で草
顔真っ赤で草
278デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 12:31:50.91ID:OaCGWLhd0 初歩的なリソース管理程度で発狂して言語貶してるド初心者に
馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。
馬鹿にされてキレるわけないだろう。馬鹿かこいつ、としか思わん。
279デフォルトの名無しさん (ワッチョイ 8b63-whB1)
2022/03/22(火) 15:52:49.70ID:XhX0v2Lu0 その調子で血管切って死なねーかな
280デフォルトの名無しさん (テテンテンテン MMeb-zKmY)
2022/03/22(火) 17:16:17.21ID:pk95uqSaM あああああああああああああああああああああああああああああああ!!!!!!!!!!!(ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)
281デフォルトの名無しさん (ワッチョイ 2979-zSlE)
2022/03/22(火) 19:17:57.13ID:kPYOUkgu0 そもそもc#のデストラクタが産廃だからあてにしてる動作だろ
282デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 19:49:04.13ID:1zUmccnld GC(マークアンドスイープ)+FinalizeとDisposeの相性が悪いだけだろ
C#に限った話じゃない
C#に限った話じゃない
283デフォルトの名無しさん (ワッチョイ 4901-cTkz)
2022/03/22(火) 20:58:45.96ID:hNvbiY4S0 exe終了したら何もかも解放されるんでしょ?
284デフォルトの名無しさん (アウアウウー Sa5d-580B)
2022/03/22(火) 21:05:08.48ID:HvRJN3MAa 基本的には終了で開放だけど、すべてが開放されるとは限らない
よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ
よくあるのがexe内部でexcel使ったら、exe終了してもexcelのプロセス残ったままみたいなやつ
285デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:09:25.23ID:kAgwAO/L0286デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 21:19:04.18ID:Ky9cYioTM またいつもの質問者そっちのけでの罵倒合戦かよ・・・・・
アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする
マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる
>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
アンマネージドリソースは文字通りC#の管理下にない(un-managedな)リソース
具体的にはunsafeで確保した配列・ポインタやWin32APIを呼び出して確保したIntPtrなど
Disposeのタイミングで適切な手法で(それこそWin32APIを呼ぶなどして)リソース解放しないとメモリリークする
マネージドリソースはC#の管理下にあるリソース全般
FileStreamやDbConnection、Bitmapオブジェクトなどもこれ
そういうオブジェクトをクラス内のメンバ変数で持ってるなら、Disposeメソッド内で
それらのメンバ変数のDispose()を呼ぶことでリソース解放するお約束になってる
>>263の説明はデタラメもいいとこだしそもそも「IDispose」ってなんだよ
>>263のデタラメに気付かずC#を欠陥言語呼ばわりするために乗っかった>>266の言ってることも同じくデタラメなんだけど
こいつは罵倒マウンティングすること自体が目的でわざとデタラメに乗ってるのかそれとも素で理解してないのかは分からん
287デフォルトの名無しさん (ワッチョイ 8bcf-noGs)
2022/03/22(火) 21:23:17.10ID:0A7XAa2y0 C++/CLIならデストラクタが使えるから問題ないんだよな。捨てたのはもったいない。
288デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:31:04.74ID:kAgwAO/L0 それな
GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい
GCとかの仕組み上どうしても無理でしたってんなら納得逝くんだけどその辺知りたい
289デフォルトの名無しさん (スップ Sd73-foG8)
2022/03/22(火) 21:39:13.30ID:6LsnJNlYd >>285
スコープ外れたってどうやって判断するの?
スコープ外れたってどうやって判断するの?
290デフォルトの名無しさん (ワッチョイ f9ac-MdQT)
2022/03/22(火) 21:39:56.93ID:3weeWjHs0 というかここら辺はサンプルというか、実際使ってるコードみないとピンとこんよな
これは意味あるIdisposable、こっちは意味ないとかで
これは意味あるIdisposable、こっちは意味ないとかで
291デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 21:41:21.16ID:1zUmccnld >>287
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
ref class C{
~C(){} // Destructor
!C(){} // Finalizer
};
のコンパイル結果が
// C# DLL
class C:IDisposable{
Dispose(); //Destructor???
~C();//Finalizer
}
であることをご存知でない?
292デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 21:46:59.16ID:OaCGWLhd0 C#を欠陥言語呼ばわりするだけあってGCが何かすら知らないアホの子だったとさ。
ヤレヤレ ┐(´ー`)┌ マイッタネ
ヤレヤレ ┐(´ー`)┌ マイッタネ
293デフォルトの名無しさん (ワッチョイ 8bbb-216p)
2022/03/22(火) 21:51:59.68ID:kAgwAO/L0294デフォルトの名無しさん (ワッチョイ 2979-zSlE)
2022/03/22(火) 21:52:39.06ID:kPYOUkgu0 >>283
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん
msdnより
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
されねーんじゃねーか?
俺はあふれるまで動かないって言ってるじゃん
msdnより
ガベージ コレクションの条件
ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
システムの物理メモリが少ない場合。 OS からのメモリ不足通知またはホストによって示されたメモリ不足のいずれかによって検出されます。
マネージド ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。 このしきい値は、プロセスの進行に合わせて絶えず調整されます。
GC.Collect メソッドが呼び出されます。 ほとんどの場合、ガベージ コレクターは継続して実行されるため、このメソッドを呼び出す必要はありません。 このメソッドは、主に特別な状況やテストで使用されます。
295デフォルトの名無しさん (ワッチョイ 8bcf-noGs)
2022/03/22(火) 21:53:03.08ID:0A7XAa2y0 >>291
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
スコープを外れたときに自動的にDispose()が呼ばれるから問題ないってことなんだが。
296デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/22(火) 22:22:58.92ID:1zUmccnld >>288
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ
C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。
リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html
C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
お前はメモリとかリソースの管理を他の言語でどうしてるかもっと勉強するべきだ
C/C++がユーザーに全部丸投げしてるのがいい加減辛いので言語側が管理すればいいんじゃね?ってのがGC。
GCの方式で主流なのは参照カウント方式とマークアンドスイープ方式。
参照カウント方式は循環参照(this._obj=this)があると回収されないから、
C#多少大きめのコストを支払ってでもマークアンドスイープ方式にした。
リソース解放のタイミングをコントロールしたけりゃIDisposable使え
解放漏れの保険でファイナライザ使え
https://ufcpp.net/study/csharp/rm_disposable.html
C#1.0のリリースが2002/02だから当時はそれでも充分だったんだろう
297デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:39:21.44ID:Ky9cYioTM そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ
>>273が
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
それゆえにリソースの解放はデストラクタではなくDispose()で行う
(万一Dispose()を呼び忘れた場合に備えて>>291の実装でデストラクタで救済するけど、これも
パフォーマンス上好ましくないんでDispose(bool disposing)みたいなDisposeパターンの書き方で処理を最小化する)
って方針で首尾一貫してるんだけどさあ
その方針にケチつけてデストラクタがクソだのIDispose確認がメンドクサイだの言ってる人たちのほうがおかしいだけなんだよ
>>273が
「話の本質わかってなくて草生える」
とか書いてるけどまさにそのとおり
298デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:49:13.09ID:Ky9cYioTM もひとつ気になってたんだけど、Dispose()呼び出しの必要性をいちいち確認して書くのが大変っていうけどホントかよ?
マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ
それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
マネージドリソースを扱うにしたって、ローカル変数ならusingで書けばDisposeいらないよね?
最近のC#のバージョンなら中括弧で囲う必要すらなくなったよ?
クラス内のインスタンス変数だとしてもさあ、
DIで初期化するフィールドならDIコンテナに任せればDispose()呼ばなくていい
自前で生成初期化するフィールドだとしてもその個数もたかが知れてるしDisposeの要否も明快に分かるでしょ
それとも、自分で書いてるクラスの中がごちゃごちゃでDisposeが必要な変数がどれか把握しきれないってこと?
そんなクソみたいなゴミ溜めクラスしか書いてないのだとすれば、言語仕様じゃなくてクラス設計/実装能力の問題だと思うんだよね
299デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 22:56:19.99ID:Ky9cYioTM ごめん嘘書いた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
>>291の実装はC++/CLIの話だったのか(ごめんC++/CLIはやったことがないので判らない)
Disposeパターンのデストラクタと似たようなものだと思い込んで混同しちゃってた
300デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 22:56:39.59ID:OaCGWLhd0 > そもそもC#は「デストラクタなぞ使うべきではない」っていう思想だし
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
聞いたことねーなw
デストラクタは非同期ですってだけだ。同期したいならdispose使えという単純な話でしかない。
301デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/22(火) 23:25:36.30ID:Ky9cYioTM あれどっかに書かれてたと思ったんだが・・・と思って調べたら
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか
てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/classes-and-structs/finalizers#explicit-release-of-resources
「高額な外部リソースを使用している場合」という限定で「明示的に解放する手段を用意することが推奨されます」
とはあったけど、デストラクタなど使うべきではないとまでは書かれてなかった
たしかにちょっと踏み込みすぎたか
てか「デストラクター」じゃなくて「ファイナライザー」って呼ぶように変わったのね・・・いつから?
そのわりに
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/language-specification/classes#destructors
では「デストラクター」のままだったりしてるけど
302デフォルトの名無しさん (ワッチョイ 51d2-3X4l)
2022/03/22(火) 23:40:08.97ID:OaCGWLhd0 元々finalizeはCLR側の用語でデストラクタはC#側の用語。
MSのゆとり化が進んで馬鹿すぎて区別できなくなったんだよ。
MSのゆとり化が進んで馬鹿すぎて区別できなくなったんだよ。
303デフォルトの名無しさん (ワッチョイ 112f-kNuw)
2022/03/22(火) 23:47:20.01ID:3UvLvdTM0 デストラクタを実装したクラスはガベコレの効率が落ちる(世代があがる)からなるべく使うなって話だったはず
304デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2022/03/23(水) 00:14:26.29ID:fh4EIdzSM >>302 >>303 の書き込みをヒントに検索したら
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
https://ufcpp.net/study/csharp/rm_gc.html?sec=cost-to-finalize#finalize
このページにたどり着いて
デストラクタ→ファイナライザに呼び名が変わる理由もデストラクタのコストが極大なことも分かった
GC.SuppressFinalize()っていままで意味が分からないまま機械的に書いてたけど大事だったのね
いろいろ賢くなれた、ありがとう
305デフォルトの名無しさん (ワッチョイ 8b63-whB1)
2022/03/23(水) 06:24:39.80ID:XsByKBbP0 ならなくていいから直近50レス以内で俺以外に書き込んでるやつは直ちに全員頭かち割って中央線の始発に飛び込んで死ね
306デフォルトの名無しさん (ブーイモ MMeb-n2Eo)
2022/03/23(水) 06:36:55.59ID:Br4OtuZoM 長文ゲェジ共空気読めよ
(ユーザーが)欠陥言語
確かに間違ってねーな
(ユーザーが)欠陥言語
確かに間違ってねーな
307デフォルトの名無しさん (ブーイモ MM4d-NnL5)
2022/03/23(水) 23:47:04.44ID:blfYR8q/M デストラーデがどうしたって?
308デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/24(木) 04:45:47.25ID:AIr8SSYM0 ゼントラーディがキュンキュン☆
309デフォルトの名無しさん (ワッチョイ 9e68-VQaK)
2022/03/27(日) 19:21:45.49ID:ThH+K+970 float,double型について質問です。基本的に精度のたかいdouble型オンリーで良いと思います。
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
double型だけじゃなくfloat型が混ざっているソースをみるのですがそれは何故でしょうか?
310デフォルトの名無しさん (ワッチョイ 5e7b-+Ivz)
2022/03/27(日) 19:25:09.32ID:p42Vgj/c0 >>309
C#に限った話じゃないがdoubleの方がメモリを多く使って計算速度も遅くなるから
C#に限った話じゃないがdoubleの方がメモリを多く使って計算速度も遅くなるから
311デフォルトの名無しさん (ワッチョイ 9e68-VQaK)
2022/03/27(日) 19:30:11.97ID:ThH+K+970312デフォルトの名無しさん (ワッチョイ 5ecf-+Ivz)
2022/03/27(日) 20:53:18.65ID:rqiHHq3k0 floatとdoubleの混用なんてそんな傾向が見いだせるほど頻繁に使われているとは思えんが。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
たまたま見たそのコードではそういう使い方をしていたに過ぎないんでは。
313デフォルトの名無しさん (ワッチョイ 3179-yByv)
2022/03/27(日) 22:06:23.31ID:XoV4gFeA0 昔のコードをまだ使っててfloatのとこがあるって理由じゃねーかな?
314デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/27(日) 22:32:37.28ID:K7MWSPEs0 C++では機械学習と3Dレンダリングでの並列化を目的にfloat16_tとかいう概念が生産されたりしてるからfloat自体は過去の遺物ってほどでもない
C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
C#だと実行速度を気にするよりも開発を楽にすることを重視することが多いからdoubleオンリーでいいのは確か
315デフォルトの名無しさん (ワッチョイ 6502-QEpm)
2022/03/27(日) 23:11:31.46ID:HQutMm3I0 専用命令とかでベクトル演算するなら、floatの方が同時に演算出来る数が多いから単純に速くなる
316デフォルトの名無しさん (ワッチョイ a901-oYu3)
2022/03/28(月) 01:08:53.91ID:TOp/Y7AF0 まぁ精度や速度がクリティカルでなければ悩む時間が無駄だしdoubleでいいでしょ
317デフォルトの名無しさん (オッペケ Sr79-qy3V)
2022/03/28(月) 09:26:10.00ID:1rap9yocr318デフォルトの名無しさん (ワッチョイ 92ad-Xzp3)
2022/03/28(月) 09:29:45.95ID:MxvDEKd20 いまだにダウトとか言う香具師っているんだな
ダウトとか今日日聞かねえわ
ダウトとか今日日聞かねえわ
319デフォルトの名無しさん (ワッチョイ ad49-+/qe)
2022/03/28(月) 11:03:16.37ID:9Kb03WZY0 というかそれぞれの場合過ぎるやろ
「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
「基本doubleでいい」には自分は同意するけど、
別にfloat使ってたからって誤差が問題ないなら何も言わない
わざわざ変換を何度もして計算してたら気にするけども、そこまで求められる現場もそう多くないのでは
320デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/28(月) 11:19:15.17ID:8MPYL/o90 >>318
∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_)
321デフォルトの名無しさん (アウアウウー Sacd-j7M0)
2022/03/28(月) 11:25:55.09ID:28On/6D6a 整数でも他との型を合わせる以外 int を使うし、実数も基本 double でいいのでは
322デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/28(月) 11:39:56.75ID:TN58deSDM 遅くても小数以下の精度が重要ならdecimal使え
323デフォルトの名無しさん (ブーイモ MMd5-nQMq)
2022/03/28(月) 11:48:23.50ID:VjMRJ3XsM floatは結構簡単に精度の低さが問題として表面化するよ
longとintの比ではない
longとintの比ではない
324デフォルトの名無しさん (テテンテンテン MM96-LqrM)
2022/03/28(月) 12:15:41.21ID:TN58deSDM 結局のところ、用途次第では
325デフォルトの名無しさん (アウアウクー MM39-121j)
2022/03/28(月) 14:04:59.59ID:iWC4w4vVM 実際のビジネスシステム構築ではDecimal型使う場合が多い
326デフォルトの名無しさん (ワッチョイ ad49-+/qe)
2022/03/28(月) 14:21:08.92ID:9Kb03WZY0 そうかなあ。。
327デフォルトの名無しさん (ワッチョイ debb-a3iW)
2022/03/28(月) 14:25:47.66ID:8MPYL/o90 精度云々言ってるやつはせめて具体な影響の例も書こうぜ
328デフォルトの名無しさん (ラクッペペ MM96-gZpx)
2022/03/28(月) 14:27:32.27ID:3kQaQ/3DM sqlサーバーのnumeric(4,0)とかをEFでモデル作るとdecimalになるけど
お前らそのまま使ってる?
お前らそのまま使ってる?
329デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/28(月) 14:37:28.69ID:TgL79h+20 >>317
float演算もdouble演算もハードウェアがサポートしてるけどdoubleの方がクロック数消費が多い
float演算もdouble演算もハードウェアがサポートしてるけどdoubleの方がクロック数消費が多い
330デフォルトの名無しさん (ワッチョイ f5d2-0aOS)
2022/03/28(月) 14:41:13.92ID:DkKihmtS0 参考にどうぞ
MOVSS xmm, [m32] L: [memory dep.] T:0.50c
MOVSD xmm, [m64] L: [memory dep.] T:0.50c
MULSS xmm, xmm L:4.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
MOVSS xmm, [m32] L: [memory dep.] T:0.50c
MOVSD xmm, [m64] L: [memory dep.] T:0.50c
MULSS xmm, xmm L:4.0c T:0.50c
MULSD xmm, xmm L:4.0c T:0.50c
331デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/28(月) 14:45:52.84ID:TgL79h+20 Ryzenのdatasheet過去に見たけど今検索しても見つからなくて困ってる
SIMD含め命令の消費クロック数とか全部書いてたのに...
SIMD含め命令の消費クロック数とか全部書いてたのに...
332デフォルトの名無しさん (アウアウウー Sacd-JpNp)
2022/03/28(月) 14:47:28.95ID:TuD9lj1za >>327
floatだと日本の人口(1億2550万2290人)すら代入できない
floatだと日本の人口(1億2550万2290人)すら代入できない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★2 [蚤の市★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 元統合幕僚長「演習通告の音声は公開されたが、レーダー照射時のものではない」高市政府「www」 [834922174]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- 【急募】佐藤健(37)さんが急にバカにされ始めた理由WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
