[過去ログ] ふらっと C#,C♯,C#(初心者用) Part154 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
352: (アウアウウー Sacd-1WDX) 2022/03/30(水)20:34 ID:hQhM7AVja(1) AAS
アンマネージなリソース使うならIDisposableにしてusing内で使う
>>350みたいなのはやってられん
353: (ワッチョイ f5d2-0aOS) 2022/03/30(水)21:44 ID:oMfCMBWB0(2/2) AAS
さすがgdbでVSを超える男!!
354(1): (ワッチョイ b124-GurK) 2022/03/31(木)10:19 ID:mHRscCZz0(1/5) AAS
せめてref structだけはデストラクタ書いたらスコープ抜ける所で自動でデストラクタ呼び出ししてもらいたいわ
C++みたいに
まぁC++みたいにコピームーブ禁止にできないから複数回呼ばれちゃうことを考えたらそういう風にはづらいってことなんだろうけど
355: 348 (ワッチョイ d980-DSQx) 2022/03/31(木)10:54 ID:58En6M9E0(1) AAS
ご指摘ありがとうございます。
IntPtrを割り当てたBitmap分のメモリがやはり解放されてないのは特定しました。
gdi32.dllにあるDeleteObjectじゃなきゃ消せないみたいなページ見つけて試してみたら解放されました。お騒がせしましたm(_ _)m
356(1): (ワッチョイ 851a-pZZ2) 2022/03/31(木)11:08 ID:evWCXRMT0(1/3) AAS
>>354
using使えば良いのでは
357: (ワッチョイ b124-GurK) 2022/03/31(木)11:59 ID:mHRscCZz0(2/5) AAS
>>356
個人プロジェクトではそうしてるけどそれじゃ他人には公開できないからな
強制usingでもあれば公開できるけど
358: (アウアウウー Sacd-JpNp) 2022/03/31(木)12:09 ID:nbMZolC5a(1/3) AAS
たまにusingはwin32リソース用だってかたくなにその用途以外を否定する奴いるけど別にそんなことないからな
意味ないusingはアホだけど
意味あるusingは恥ずかしくないぞ
359: (テテンテンテン MM96-LqrM) 2022/03/31(木)12:24 ID:hS7dFlrlM(1) AAS
SafeHandle使え
360: (ブーイモ MMad-QNkB) 2022/03/31(木)12:43 ID:/3uX6C5lM(1) AAS
Disposeはデストラクタとは違うんだけどな
361(1): (アウアウウー Sacd-JpNp) 2022/03/31(木)12:57 ID:nbMZolC5a(2/3) AAS
だったらc#のデストラクタ使えばいいw
それだと望み通りの挙動しないからusing使えばって話だろ・・・
362: (ワッチョイ b124-GurK) 2022/03/31(木)13:22 ID:mHRscCZz0(3/5) AAS
>>361
だからそうしてるって話たろ
でもデストラクタと違って必ず呼ばれる訳ではないから他人には公開できない
363(1): (アウアウウー Sacd-JpNp) 2022/03/31(木)13:32 ID:nbMZolC5a(3/3) AAS
using使ってデストラクタって意味じゃないぞ
using使ったらdisposeが必ず動くって意味だろ。dispose持ってるクラス本体の開放は仕方ないがそれ以外ならなんとかなるってこと
364: (ブーイモ MM96-nQMq) 2022/03/31(木)14:26 ID:6RpIJweLM(1) AAS
そもそもref structはいわゆる「所有権の借用」を扱う仕組みだろ
通常、ref structは自身のフィールドに持つref型の値を解放する責任を持たない
リソースの解放をしやすくすることを目的にref structを使うのは本来の目的から逆行しており、明らかに誤用だ
365(1): (ワッチョイ 851a-pZZ2) 2022/03/31(木)14:30 ID:evWCXRMT0(2/3) AAS
使い終わったら解放してね(はぁと
↑この前提がドキュメントに書かれていれば必ず呼ばれるはず
でなきゃバグるだけなのに「必ず呼ばれる訳ではない」というのは辻褄が合わなくない?
366: (ワッチョイ b124-GurK) 2022/03/31(木)14:44 ID:mHRscCZz0(4/5) AAS
>>363
C#ってstructにデストラクタ書けないから当たり前やん
367(1): (ワッチョイ b124-GurK) 2022/03/31(木)15:02 ID:mHRscCZz0(5/5) AAS
>>365
そういうスタンスでいいならそもそもマネージドな言語を使う必要すらないな
まぁ実際に個人開発だとUnity関連のツールですらも最近はもうC++で書いちゃう事も多いけど
368: (ブーイモ MMd5-QNkB) 2022/03/31(木)15:07 ID:vlNZ1mGnM(1) AAS
>他人には公開できない
このキーワードで時間の無駄だと気付くべきだったわ
369(1): (スップ Sdb2-JyYd) 2022/03/31(木)15:16 ID:tugEDnGHd(1) AAS
スコープアウト時点で解決されないのにデストラクタなんて用語使うからおかしくなるんだよ
Finalizeと呼べ
370: (ワッチョイ 851a-pZZ2) 2022/03/31(木)15:17 ID:evWCXRMT0(3/3) AAS
>>367
そだねー、バイバイ!
371: (ワッチョイ debb-a3iW) 2022/03/31(木)15:21 ID:f+hSFW0H0(1) AAS
要約するとC#のデストラクタはゴミってことや
実際ゴミだし
372: (ワッチョイ 6ea7-OgJM) 2022/03/31(木)15:58 ID:6NE6xHU80(1) AAS
基本的にC#のデストラクタはよっぽどの理由なない限り触らないかな
Javaみたいに割り切ってメソッドとして呼び出した方が早い気がする
373: (ワッチョイ 5ecf-+Ivz) 2022/03/31(木)21:12 ID:EY1WgKK40(1) AAS
>>369
でもデストラクタはもともと単にデストラクトするものでしかないがな。
スコープを外れた時点で呼ばれるものという意味が被されたのはRAIIが提唱されてからではないかな。
374: (ワッチョイ f1ad-j7M0) 2022/04/01(金)00:26 ID:fCYhyeTu0(1) AAS
Finalizer との使い分けが不明
375(1): (ワッチョイ a901-oYu3) 2022/04/01(金)00:30 ID:oErDDmhk0(1) AAS
実際、c#のデストラクタって実務でどういうケースで使うんですかね?
376: (ワッチョイ 3179-yByv) 2022/04/01(金)00:44 ID:m4YyG8VP0(1) AAS
>>375
>>294のタイミングで何かを実行したいとき
377(1): (ワッチョイ 8554-r1yM) 2022/04/01(金)02:25 ID:iQ3hg2/90(1) AAS
WebView2って配布サイズがでかいんだけど、
自分のアプリで使ってる機能を含んだファイルだけ抜粋してexeに統合してくれるような機能ってないよね・・・?
378: (ワッチョイ b501-tYr6) 2022/04/02(土)03:46 ID:+agV7laW0(1) AAS
floatとdoubleの関係はVAX-780の仕様が
C言語に反映されて、その名残や
379(1): (ワッチョイ 0342-2JBZ) 2022/04/02(土)08:11 ID:XWC+OGmA0(1) AAS
その経緯は詳しくないが、C言語とUNIXの開発マシンはPDP-11で
そもそもVAX/11-780ですよ
380: (オッペケ Sr01-PDpb) 2022/04/02(土)08:19 ID:k7wnX1H/r(1) AAS
>>377
electronもChromiumとnode.js含んでるから配布サイズでかくなるし、そんなもんじゃないの?
381: (ワッチョイ 4bcf-fe9w) 2022/04/02(土)08:44 ID:ofyuLHc/0(1) AAS
>>379
それを言うならVAX-11/780だったり。
上下前次1-新書関写板覧索設栞歴
あと 621 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.019s