- 1 名前:名無C mailto:sage [2019/03/07(木) 06:35:41.12 ID:6L3KEJfe0.net]
- !extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part141 mevius.5ch.net/test/read.cgi/tech/1544839627/ ■コードを貼る場合は↓を使いましょう。 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/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 207 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 08:29:21.76 ID:WP/ATQFx0.net]
- typescript使うとかなりマシになる
- 208 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 12:11:59.76 ID:xn7iKSYA0.net]
- vs codeで利用してるかが、Githubを買収したらもれなくついてきだけだろ。
まさか、github買収はelectronが目当てだったとか?
- 209 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 12:52:49.61 ID:irKDOHSYd.net]
- >>206
で?
- 210 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 12:59:39.22 ID:xn7iKSYA0.net]
- >>207
馬鹿は無理して会話に交じらなくてOK
- 211 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 13:18:39.14 ID:rQfs7b7r0.net]
- >>208
で?
- 212 名前:デフォルトの名無しさん [2019/04/03(水) 14:47:51.95 ID:57e5+lwMr.net]
- >>204
それが.Net Coreじゃね?
- 213 名前:デフォルトの名無しさん [2019/04/03(水) 14:50:03.23 ID:73sauU1q0.net]
- 【令和】 徳仁 VS 世.堺教師マiトL-ヤ 【分合】
egg.5ch.net/test/read.cgi/emperor/1554258711/l50
- 214 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 18:46:36.25 ID:P6TLGPRxM.net]
- >>210
.NET CoreにはGUIのフレームワークがないんだわ 一応UWP、WPF、Windows Formsと組合せて開発できる(現状はWindowsのみだったはず)けどそれなら普通にC#使うし…
- 215 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 19:08:18.87 ID:irKDOHSYd.net]
- >>212
え…WebはGUIやで
- 216 名前:デフォルトの名無しさん [2019/04/03(水) 19:57:10.57 ID:57e5+lwMr.net]
- >>212
へ?フロントフレームワーク好きなの使えばいいじゃん おまえいつの時代に生きてるんだよ
- 217 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 19:57:13.23 ID:n4wxwcz+a.net]
- Web遅いやん
- 218 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:18:48.27 ID:z8L5LERR0.net]
- >>213
話の流れぐらい読めよ… >>>201 >> なんかGUIのツールを作ろうとしたときに、c#の対抗馬になるものってある? >>214 だからそのフレームワークがどれもイマイチって話な
- 219 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:22:50.49 ID:NsKebegy0.net]
- もとの質問がスレ違いなのにいつまでやるの
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
- 220 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:24:57.81 ID:VrtD8aF20.net]
- なぜUWP・WPFというクソを生み出してしまったのか
- 221 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 20:27:20.36 ID:xnkmZns10.net]
- >>216
GUIって表現がおかしいことを認めようとしないクズ
- 222 名前:デフォルトの名無しさん mailto:sage [2019/04/03(水) 21:08:42.50 ID:559k4PZzM.net]
- ガイジかよw
- 223 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 00:57:03.82 ID:ZN2gQ81o0.net]
- pythonで実装できるからと思ってtkinterに浮気してみたけどやっぱ.netってすげぇ便利だったんだなと思えたよ
GUI開発は開発環境含めて評価すべきだわ
- 224 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 01:51:05.61 ID:IOgreNy50.net]
- >>221
GUIで配置できるって点だけじゃね?
- 225 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 02:37:37.19 ID:iJ70eOZ40.net]
- iPhoneでAppstoreが成功して、カッコ良ければ売れるんだと思い、
ググルプレイが成功して収益管理まで提供したら売れると思ってたら 窓電話は不発、デスクトップでストアアプリ探さないから売り物さえ並ばない。 成功者は金の回りを用意して市場を作った。 MSは市場を作ろうとして壁を作った。
- 226 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:45:04.92 ID:CMDWj0ay0.net]
- C#は、関数の引数は基本的に値渡しということですが、これ本当ですか?
unityで、引数にrefをつけて参照渡ししてるサンプルって見たことがないです。 すごくメモリ効率が悪い気がするのですが・・・
- 227 名前:デフォルトの名無しさん mailto:sage [2019/04/04(木) 23:53:18.48 ID:8Z7mdjDJ0.net]
- >>224
なんで悪いと思うの?
- 228 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:02:47.99 ID:W1wYJ7EV0.net]
- どうでもいい事でよくそんなに議論できるよな
- 229 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:05:27.61 ID:8GSOh3MvM.net]
- どうせいつもみたいに値渡しだからオブジェクトが全部コピーされちゃうよ〜
みたいな奴だからうんざりする
- 230 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:08:41.76 ID:8GSOh3MvM.net]
- 巨大な構造体の場合は値渡しがボトルネックになる場合もなくはない
クラスの場合はどんなにデカかろうが参照しかコピーされないから関係ない 値渡しなのに参照なんですか?とか聞くな うるせえなそういう仕組みだと思ってろ
- 231 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:20:17.79 ID:kZ8w9alb0.net]
- >>224
クラスは参照型で、引数にした時は参照の値渡しになるから、心配するようなことにはならない。 構造体は値型だけど、あまり使わない。
- 232 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:25:11.16 ID:Zwa/Lf0S0.net]
- c#の構造体って書き方がほぼクラスみたいなもんだからcの構造体と比較するとすごく違和感ある
ここまで書くならクラスでええやん
- 233 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:56:02.91 ID:UeOvQxG40.net]
- インスタンスを設定したがわが保持って置かないと死ぬときもあるしそうでないときもある
ループで生成しまくる処理のときはこちらでインスタンスを管理しないと 表示するたびに生成しまくって 前のは消されてない ライブラリの中でほじってるらしくて 消そうと思っても消えない って状態になることも多い
- 234 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 00:57:09.43 ID:N3n7oHyA0.net]
- >>231
これあるあるだわ 管理ダルいからスコープ決めてインスタンス作ってるわ
- 235 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 08:44:21.30 ID:x8OJz+Ud0.net]
- >>230
既定のアクセシビリティの差しかないC++の悪口かな?
- 236 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 09:44:01.09 ID:0L4pmkxC0.net]
- 構造体て値の全コピーが楽なぐらいで無理に使う必要ない
- 237 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 10:43:00.62 ID:zi2/La8Bp.net]
- GCの起動サイクルがクリティカルに影響したりネイティブとの相互運用等
無理してというより必要な時のみ使うものだからね
- 238 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:09:16.02 ID:85UtCV7c0.net]
- サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?
FORM2 form2 = new Form2();
- 239 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 12:25:16.27 ID:R01axtSvM.net]
- >>232
そうやってもライブラリの中の人まで死ぬ保証はないかもしれないしあるかもしれない
- 240 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 13:21:34.57 ID:x8OJz+Ud0.net]
- >>236
質問の意味がよく分からん 閉じたときに何かしたいならFormClosedイベントだけど
- 241 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 19:45:13.46 ID:N3n7oHyA0.net]
- >>237
さすがに広く使う変数は パラメータークラス作って使いまわしますよ []- [ここ壊れてます]
- 243 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 22:56:55.47 ID:85UtCV7c0.net]
- >>238 意味不明な文章ですみません。聞きたい質問は以下のことです。
サブフォームFORM2を作って右上の×で消した時とサブフォームを消してない時は どのようなコードを書けば判別できますか?
- 244 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 23:05:30.38 ID:UeOvQxG40.net]
- >>240
ちっともわからん
- 245 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 23:13:56.69 ID:UeOvQxG40.net]
- >>240
Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?
- 246 名前:デフォルトの名無しさん mailto:sage [2019/04/05(金) 23:14:11.83 ID:cVRKM8Bg0.net]
- >>240
「右上の×で消した時」はわからないが フォームがDispose(Close)されているか form2.IsDisposed フォームが表示されているか form2.Visible 具体的に何が目的かを書いてもらった方が答えやすいと思う
- 247 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:06:32.31 ID:m4qLgJ3pa.net]
- >>240
真面目に何言ってるのかさっぱり分からんから、投稿する前に読み手の立場に立って 文章推敲することを覚えた方がいいよ。 これ、プログラミングのスキルより何倍も重要 いやほんと煽りとか抜きに。 Formが閉じられた原因を知りたいなら↓だけど、 それなら普通ググって自己解決してるはずだと思うから違うんだろうね dobon.net/vb/dotnet/form/unloadmode.html
- 248 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:30:19.50 ID:5XTKYZffM.net]
- 多分form1からボタンクリックでform2を開いてそのform2が閉じられたことをform1で検知したいってことなんじゃないか?
- 249 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 02:55:07.02 ID:MT95SofI0.net]
- var変数って便利だけど初期化必須だから惜しいなと思うことがある
例えばとりあえず広いスコープで宣言しといて後のfor内とかで使おうとしたときにここはfloatで扱いたいな→結局宣言箇所をfloatに書き直すのか・・・ってなったり 書きながら考えるときの補助として使おうとすることが間違ってると言えばその通りだけどね
- 250 名前:デフォルトの名無しさん [2019/04/06(土) 03:20:06.81 ID:QWD6tIIM0.net]
- 非同期処理A内でタスクBを生成した場合について教えてほしいのですが、
Aのスレッドが抜けてしまったり、あるいはAのタスクが終了してしまった場合でもタスクBは生き続けるんですか? Aの終了とともにBも終了させるようにはできないのでしょうか?
- 251 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 05:50:01.71 ID:9VymyaU60.net]
- 出来るけどリークするぜよ
- 252 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 09:32:18.73 ID:WatgyYvN0.net]
- >>247
CreateLinkedTokenSourceで複数タスクにまたがるCancellationTokenSource作ればいいんじゃね
- 253 名前:240 mailto:sage [2019/04/06(土) 10:07:54.08 ID:hyh7Xf1q0.net]
- >>243 form2.IsDisposed で閉じたかどうか判定できました。ありがとうございました。
文章が分かりにくいみたいですが243みたいな超能力者がレスしてくれれば良いのです。 >>245の説明の通りですが「教えてください」って書いても放置されることが結構あるので神レス243のほうがありがたいです。
- 254 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 10:13:25.13 ID:12K3yeCTa.net]
- >>246
ああ、良くないと思うぞ。 変数が必要になったら想定される範囲でなるべく小さいスコープで宣言して、それで足りなければスコープを見直すか設計そのものを見直すくらいのがいいと思うよ。
- 255 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:19:51.64 ID:1moq2C1C0.net]
- >>250
ガイジは死ね
- 256 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:27:56.56 ID:j7WnBgX90.net]
- >>250
意味不明な質問してたらそりゃ放置されるわな
- 257 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 11:31:41.71 ID:ts7XFDpTa.net]
- >>250
放置されることが結構あるということは、これまでも質問のしかたが下手だったか、態度が悪かったか、頓珍漢なことをいっていたか、等々、なんらか自分側にも問題があるとは思わなかった? 答えてくれない方が悪い!ではいつまでたっても改善しないし、周りも困らせることになるよ。
- 258 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 15:23:17.78 ID:MT95SofI0.net]
- マネージャーがまさに自分の視点でしか話をしないから意味を推察するのにめちゃくちゃ苦労してる
しかもマネージャーだから放置も無視もできないしめんどくせぇ
- 259 名前:245 mailto:sage [2019/04/06(土) 15:58:43.28 ID:2DuVrQtfM.net]
- >>250
逝ってよし
- 260 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 16:39:47.93 ID:MA8UEjRg0.net]
- アストラルサイドの話はちょっと
- 261 名前:デフォルトの名無しさん [2019/04/06(土) 18:24:20.03 ID:QWD6tIIM0.net]
- >>248
教えてもらって悪いんだけど、一体どういうことなんだぜ?
- 262 名前:デフォルトの名無しさん [2019/04/06(土) 19:26:12.20 ID:nnViyGGtM.net]
- 実現したいならタスクBが走ってるスレッドを殺すしかないが
その場合ILが半端なところで止まってクリーンアップ処理が正常に走らないからリークする 嫌なら249が言ってるような方法でタスクが自発的に止まるしかない 好きにしたらいい
- 263 名前:250 mailto:sage [2019/04/06(土) 20:05:47.05 ID:hyh7Xf1q0.net]
- >>254 そうじゃなくて、質問して「質問は・・ということなの?」的なレスが返ってきた状況のときに
「そうです。解決方法を教えてください」ってその人にレスしても放置されることが多々あるという経験を書いただけ。 別に質問の大半が放置されたわけではないよ。 あと理系の人が書いた本とかマニュアルは難解でも当方は理解しますし「分かりやすく書けや」とはそれほど思いません。 理解しやすい文章を書けと思う人は経験不足です。
- 264 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 20:12:41.03 ID:gcTy2CwVM.net]
- はやくゴミクズから人間になろうな
- 265 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 20:15:14.96 ID:MA8UEjRg0.net]
- でも>>236と>>240ってわかりにくい云々の前に
頭がおかしいレベルだよね? 流石に今後の人生のために改善したほうが良くね?
- 266 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 20:28:05.68 ID:MT95SofI0.net]
- 質問の意味を確認される時点でそもそも伝わりにくい文章だと思うけど。
コミュニケーションは相対的なものとはいえ、相手に負担を押し付けるやりとりをしていることに気づいてないのでは。
- 267 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 20:43:07.38 ID:j7WnBgX90.net]
- >>260
一緒にしたら失礼。 難解な本は読み手に前提となる知識が足りないから読み難いが、書くべきことはちゃんと書いてある。 あなたのは書くべき情報が欠落していて単に文章として破綻してるだけ。ついでにその後のコミュニケーションも酷過ぎる。
- 268 名前:250 [2019/04/06(土) 20:44:56.97 ID:hyh7Xf1q0.net]
- 240見直したけど
「サブフォームFORM2を作って右上の×で消した時」が分かりにくいかな? ※1 form2 = new Form2(); ※2 form2.Show(); 「サブフォームFORM2を作って※1表示した後※2にFORM2の右上の位置の×をクリックしてFORM2を閉じた時」 って書かないと駄目だったのかな?でも回答を教えてくれた人居るし分かってほしいな〜
- 269 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 20:58:19.18 ID:YyWMpA9h0.net]
- いや、動作がわからないんじゃなくてお前さんがやりたいことがわからないって話な
- 270 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:01:04.80 ID:Gnot3kBPd.net]
- 小手先に頼らず全部書け
質問に関係なさそうなところも全部書け 関係ないと断言できるだけ知識があるならそもそも質問は生まれない だから頭からケツまで全部書け 全部書いたつもりでも情報は足りないんだから小学生に伝えるつもりで書け
- 271 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:01:50.77 ID:J4U0pcz9a.net]
- いわゆるバカの壁だねw
彼はたぶん自分の何が問題なのか本気で分かってない。 仕事で取引先とかとメールでやりとりしてる人なら同意すると思うけど、 日本人は案外彼みたいな人が多い。 多いというか、日本人全体を母集団にとるとたぶん90%以上が彼みたいなタイプだw これは(実は案外昔から指摘されてるんだけど)日本の初等教育に問題があるんだよねw 日本の国語教育は何であんなくだらない文学観賞と子供を嘘つきにする作文に偏重してるのか。 思いっきりスレ違いなのでこの辺で
- 272 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:01:55.77 ID:ZE/404d00.net]
- >>260
理系の人が書いている文章は、内容が難解であっても文意は明確で読みやすい。君の文章はそうではない。むしろ逆で、平易なことが上手く伝えられず理解してもらえない。 君が「難解だが上手い文章」を読みやすいということと、他の人が「君の下手な文章」を理解しにくいということはまったく別のことだが、何でそこから他人を経験不足だと断じる結論になるのだろうか? 君の方が、他人とのコミュニケーションについて経験不足なのでは? 他人に理解してほしいというのは自然な欲求だが、相手に労力を求めるのでなく自分が理解される努力をしなよ。
- 273 名前:250 [2019/04/06(土) 21:25:08.15 ID:hyh7Xf1q0.net]
- >>266-269
要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。 でも回答を教えてくれた人居るし・・。
- 274 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:26:09.76 ID:Hw9bu2CQ0.net]
- >>240は「右上の×で消した時」が分かる人には引っ掛け問題になってるな
単に「サブフォームが閉じられたかどうかを判別したい」なら問題なかった 初心者スレだから質問者の文章が分かり難くてもある程度はしようがないし >>240もその範疇だと思うけど、>>250はあり得ない 叩かれまくってるが自業自得だ
- 275 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:31:28.36 ID:7yOX3K990.net]
- >>270
何度も書かれているけれどお前の説明が致命的に下手すぎるのが原因
- 276 名前:デフォルトの名無しさん [2019/04/06(土) 21:49:22.76 ID:l9A0t+NU0.net]
- >>260
>質問して「質問は・・ということなの?」 っていうのは、おまいさんの質問文そのままじゃわからないので経験を加味して質問文を解読して少しでも回答できるやつを増やそうとしてくれてるんだよ。 おまいさんの質問文そのままじゃ超絶エスパーがスレに降臨するまで話がすすまないよ。
- 277 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 21:50:12.97 ID:1moq2C1C0.net]
- いろいろな人がいろいろな表現で指摘しているけど、
結局のところのお前が程度が他人とコミュニケーション取るレベルに至ってないって指摘だ 早く人間に達しろゴミクズ
- 278 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 22:35:24.43 ID:YyWMpA9h0.net]
- >>270
> 要するに、やったことが無いから何故俺がそれをやりたいことがわからないんだね。 逆、下手に「右上の×で消した時」とか書くからやりたいことがわからないって話 フォームの閉じ方は「右上の×で消す」だけじゃないから知ってる人は特別に「右上の×で消した時」を区別したいのか?とか思うんだよ >>242-243でも指摘されてるだろ > でも回答を教えてくれた人居るし・・。 >>243はかなり親切だからいくつかのケースを書いてくれてるけどそれでも > 具体的に何が目的かを書いてもらった方が答えやすいと思う って書かれてる意味を考えなよ
- 279 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 22:47:01.10 ID:ZtBD8DJx0.net]
- みんな優しいな
- 280 名前:デフォルトの名無しさん mailto:250 [2019/04/06(土) 23:04:06.29 ID:hyh7Xf1q0.net]
- >>275
>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき? 242には触れたくなかったけど、こんなこと240に書いてないし242は馬鹿なんだと思う。 それをおかしいと思わない275もどうかなと思う。close()で閉じてもIsDisposedで判別できるし 何で気にするか分からないな。ていうかウィンドウの右上にXが無いのかな?
- 281 名前:デフォルトの名無しさん mailto:sage [2019/04/06(土) 23:14:09.25 ID:j7WnBgX90.net]
- >>277
日本語が拙いから推測されただけだろ。エスパー求めてるのに何言ってる。
- 282 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:08:13.42 ID:fnPZIWU30.net]
- ここまでいろんな人が指摘してるのに論点が噛み合わないのは逆に逸材なのでは
なんかモスバーガーの包み紙のスレを思い出した
- 283 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:36:33.50 ID:yNnH+Rdg0.net]
- 初歩的な質問で申し訳ないのですが、c#のガベージコレクション機能は循環参照状態にあるインスタンスも破棄してくれるのでしょうか?
暫く調べたのものの「リークするから弱参照を使う」「GCに頼っていい」「javaなど一部言語は破棄する」など多くの話があり混乱しています より専門的な、ガベージコレクションの内部的な仕組みそれ自体を説明しているサイトは私の知識では理解できませんでした 例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、 aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか
- 284 名前:デフォルトの名無しさん [2019/04/07(日) 00:37:08.32 ID:AJMxYZfA0.net]
- でもさぁ、サブフォームをXボタンで閉じた時と閉じてないときの判別方法を聞いてるのに
>242 Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき? で選択肢が1個増えて余計ややこしくしてるだけだし 本当に240だけの問題なの?241=242=262の頭に問題は無いの?
- 285 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:40:32.22 ID:Lr+Z70d50.net]
- じゃあ、もう一回確認な
サブフォームFORM2を作って右上の×で消した時 どうすれば(どこを調べれば)よいですか? を A=サブフォームFORM2 B=右上の×で消した で置き換えたとき Aを作ってBのとき どうすればよいですか? って何言ってるのかさっぱりわからないよね? これで世の中渡っていけると本気で思っているのか?
- 286 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:44:13.15 ID:Lr+Z70d50.net]
- >>281
じゃあ、質問に答えてね サブフォームFORM2を作って右上の×で消した時どうすれば(どこを調べれば)よいですか?
- 287 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:49:36.20 ID:vK2HJm7v0.net]
- >>282
気持ちは分かるが落ち着けw >>236は>>240で意味不明だっと認めて訂正してるぞ。
- 288 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 00:55:57.83 ID:Lr+Z70d50.net]
- >>284
そんなの考慮する必要ない だって彼にもその気はないんだから
- 289 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 01:00:11.33 ID:h90p5IeD0.net]
- >>281
いったい何に拘ってるんだ?そこまで自分に非があることを認めたくないのか? >>241,242で君の説明が理解されなかったのは別に変でもないし頭がおかしいという訳ではないぞ。>>262も攻撃的ではあるが頭がおかしいというのとは違う。 誰も>>241等のレスに無関係に、君の一連のレスに対して、説明が下手であること、態度に問題があること、それについて君がいっこうに理解できていないことを指摘しているだけ。
- 290 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 01:58:10.82 ID:73jPe6360.net]
- >>280
こっちの話の方が面白そうだよ
- 291 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 05:53:56.72 ID:vRdyA0zq0.net]
- >>280
そういう単純なケースならc,dともに回収されるので気にするな
- 292 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 06:41:43.95 ID:u8jd6Keja.net]
- >>280
GCの方式が参照カウンタ方式というものなら循環参照があると回収されないけど C#(.NET)は世代別GCという方式だから循環参照があっても未使用なら回収される > 例えばa→b→c←→dという向きで参照しているインスタンスの組み合わせがあったとして、 > aからbの参照を切ってもGCで回収されるのはbだけでcとdの組は残り続けるのでしょうか b, c, dが他から参照されていなければ、b, c, dすべて回収される
- 293 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 07:40:40.19 ID:AvqFg2320.net]
- >>277
う~ん、引っ込みがつかなくなってるのか本当に初心者で何を指摘されてるのか理解できてないのかよくわからんけどここ初心者用だから初心者として仮定して… Xボタンでフォームを消すと言うのはどちらかと言うと一般的じゃない(普通のフォームならOk/Cancel/閉じるボタン等を配置するよね)ので「右上の×で消す」と書くとなにか特別なことをしようとしてるのかと思われるの ただ初心者だとXボタンで消すのが当たり前と思ってる人もいるから確認の為に>>242みたいなことを聞いてるわけ あとそもそもサブフォームの状態を調べると言うのもあまり一般的じゃない GUIだとイベントで処理するのが普通だから>>238みたいなことを言われる
- 294 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 07:58:43.91 ID:AvqFg2320.net]
- >>280
初歩的な質問じゃない気がするがw まあこのスレとしては「GCに頼っていい」が正解かな >>289も書いてるけどGC持ってる最近の言語の実装は世代別(と言ってもたいてい2世代だけど)GCになってるのが多く最終的にはマーク&スイープで回収されるのが一般的なので全部回収されると思ってていい
- 295 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 14:00:44.14 ID:yNnH+Rdg0.net]
- >>287-289,>>291
ありがとうございます、助かりました もう少しC#に慣れるまでメモリ管理は忘れます
- 296 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 16:38:33.55 ID:gLMV6b6F0.net]
- Listboxにデータをバインディングするときに、XAMLにBinding記述する方法と、コントロールに名前を付けてコード上からやる方法がありますが、どちらがよいのでしょうか
- 297 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:07:02.76 ID:yVw8pf+H0.net]
- 好きにすれば良いけど転がってるサンプルコードはほぼXAMLでやってるな
- 298 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:24:40.28 ID:bCl1La9L0.net]
- GCがちゃんと動いてオブジェクトが解放されたのかは、デストラクタに
Console.WriteLine("解放されますた!"); と書いておくと安心できる。 メモリリーク発生の可能性も減る。
- 299 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:48:15.95 ID:zc2PfqGUM.net]
- >>295
心の安寧が欲しいなら止めないけど C#では、パフォーマンスを低下させるため、プログラムの動作に必要がない ファイナライザを実装すること自体が推奨されないことは、知っておいた方がよい パフォーマンスが低下するのは、ファイナライザの実装されていると GC時にファイナライザキューを介してファイナライズが行われるが このファイナライズを行う際はStop the worldする必要があるためだ ファイナライザを保険として実装した上で、前述のパフォーマンス低下を避けるには 自分でファイナライザ相当の処理をした上でSuppressFinalizeを呼び出しておく必要がある この場合、ファイナライザは実行されなくなり、パフォーマンスの低下も起きない
- 300 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 18:49:09.04 ID:QS/EO+8da.net]
- デストラクタにはなるべく頼らないようにしようぜ
デストラクタを記述するにしてもDispose()されたときにGC.SuppressFinalize(this)しようぜ >>295 出力の有無でメモリリークに気づける可能性はあるが「発生の可能性も減る」について詳しく
- 301 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:36:38.60 ID:AJMxYZfA0.net]
- 既にスレを荒らした状態になってるから、もうこれで最後にするけど
>>290 の上8行「右上の×で消す」という書き込みは初心者が使うフレーズだから 中〜上級者の俺様は深読みして間違えたと解釈したけど 本物の中上級者でも「右上の×で消す」の意味は「右上の×マークをクリック して窓を消す」以外ありえません。そういうわけであなたは 初心者でも中〜上級者でもない別の何かです。 初心者の書く「右上の×で消す」の文が不満で何で 「Xボタンで消したときと、Xボタン以外の何らかの方法で消したとき?」 何で選択肢が増えるんだよw プログラムより国語の勉強しないと。 回答側に回りたいなら模範回答できる質問だけにしてください。
- 302 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 19:41:49.21 ID:AvqFg2320.net]
- >>298
> 「右上の×で消す」の意味は「右上の×マークをクリックして窓を消す」以外ありえません。 どうしたらこんな頓珍漢なレスができるんだよ… 誰もその意味がおかしいとか言ってるわけじゃないぞw
- 303 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:15:40.25 ID:AJMxYZfA0.net]
- >>299 何でイベントのclosedでは駄目かというと、閉じた瞬間の情報が欲しい訳ではないからです。
窓閉じてしばらくして閉じたかどうか知りたいってことなので。なんでそんなこと知りたいんだよ(怒) って言われても別にいいだろとしか。c#はイベントで処理するからって考えの人にあれこれ 言う義務は俺には無いよ。
- 304 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:16:16.95 ID:QS/EO+8da.net]
- >>298
初心者様ってすごいね ちゃんとした回答が欲しいなら質問をちゃんと書いてね https://teratail.com/help/question-tips#questionTips3 ここは5chだから多少は違いがあるけど「正しく伝わる質問の仕方」は同じだよ
- 305 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:32:13.15 ID:E1covCOyM.net]
- 昨日今日はどのスレもこんなのばっかりだぜ
金払ってスクールでも通えよって
- 306 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:37:07.02 ID:AvqFg2320.net]
- >>300
別に閉じてるかどうかを知りたいことがないわけじゃなくて珍しいって話な たいていの場合はなにか設計がおかしい可能性が高い まあ俺に影響あるわけじゃないから好きにすればいいと思うけどw
- 307 名前:デフォルトの名無しさん mailto:sage [2019/04/07(日) 20:56:30.81 ID:AJMxYZfA0.net]
- >>301
回答は貰ったんだよ。 質問はその後訂正してる。他の上級者は理解して神回答を頂きました。 >>281-285見たら誰が問題か分かる。284に変なレスしてる奴。 C#はイベントだけで処理すると考える学生がイベントのclosedで解決すると思ったら 解決しないから発狂してキチガイとか日本語が変とか難癖つけたんだろ。
|

|