1 名前:デフォルトの名無しさん mailto:sage [2019/07/16(火) 15:36:23.74 ID:i1fbuZ/pM.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part95 https://mevius.5ch.net/test/read.cgi/tech/1508168482/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part143 https://mevius.5ch.net/test/read.cgi/tech/1558002486/ ■情報源 https://docs.microsoft.com/ja-jp
446 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 00:35:03.80 ID:D54D8pf80.net] >>436 OpenFileDialogでした cymon.sysの件は見つけましたけど家のPCにはありませんでした 地道にバグを見つけます
447 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 01:40:22.77 ID:YZSrPKBs0.net] List<Employee> のIDとList<int> の一致するEmployeeを取得したいです。 List<int>をforeach、その中でList<Employee>をFirstOrDefaultで探して 新たなList<Employee>にAddする方法はできました。 これのforeachを撲滅して簡潔に書きたいのですがいい方法はありますか?
448 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 01:54:35.76 ID:XYz1A7/c0.net] var employees = new List<Employee>(); var ids = new List<int>(); ・・・・ var hitEmployees = employees.Where(employee => ids.Where(id => id == employee.id).Any()).ToList();
449 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 05:09:56.54 ID:d+oJYvyp0.net] employees.Join(ids, _emp => _emp.ID, _id => _id, (_emp, _id) => _emp) joinはクエリ構文の方が読みやすいな from emp in employees join id in ids on emp.ID equals id select emp
450 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 06:09:07.86 ID:LiZWIy1C0.net] Find
451 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 07:20:31.54 ID:H4cvWJOz0.net] employees.FindAll(emp => ids.Contains(emp.ID))
452 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 08:56:15.22 ID:WqA3OufOM.net] EnumSetってEnumの値を2のベキにすればいいから存在しないの?
453 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 11:40:26.35 ID:Rhz6dR8od.net] イベントハンドラのいなづまアイコンってどういう意味なの? 気になって開発が手につきません。
454 名前:デフォルトの名無しさん [2019/08/26(月) 12:01:50.23 ID:EHOEsFfWa.net] 地下鉄漫才かよw
455 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 16:00:24.81 ID:7fzFkpCMr.net] execute 神がいかずちをもって手を下す 的な
456 名前:デフォルトの名無しさん mailto:sage [2019/08/26(月) 22:32:00.17 ID:YZSrPKBs0.net] >>440-443 どれもなるほど!と勉強になりました ありがとうございます 今回はシンプルな>>443 さんのでいきます!
457 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 07:54:15.38 ID:wbq0Lfqra.net] おお、なるほど。LINQのクイズ集があれば面白そうだな。
458 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 08:59:40.07 ID:S6vHFDx3d.net] 443はlinqじゃないぞ 2.0の頃からあるListクラスのメソッドだけだ
459 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 10:18:31.48 ID:AUeyxvTx0.net] >>450 ラムダ式が使えるようになったのはC#3.0から
460 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 11:47:29.33 ID:S6vHFDx3d.net] >>451 そうそう。なのでデリゲート使って書く必要はあるけど
461 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 19:15:36.40 ID:4aKZbpn00.net] 次のようなことをしたいのですが、どうすればいいでしょうか。 async、awaitを使えばいいようにも思えたのですが、クラス内のループが止まらず・・・ 1.ボタン押下でとある処理をするクラスのインスタンスを生成し、クラス内で処理を無限ループ 2.ボタン押下でクラス内のループを停止
462 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 19:21:08.99 ID:a3Zgv65M0.net] >>453 ループさせているクラス内に止めるメソッド付けてボタン押したときにそれ呼び出せばいいだけでは イベントメソッドは別のクラスでもできるから直にボタンのイベントに追加してもいいし
463 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 20:10:30.11 ID:2XS9VBdia.net] CancellationTokenSourceを使うのが比較的妥当なやり方かな 2でボタンを押したらcancellationTokenSource.Cancel() 無限ループ側の処理では適宜cancellationToken.ThrowIfCancellationRequested()
464 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 20:56:45.60 ID:LqXN8ItS0.net] 低レベルな実装だと終了フラグの参照を渡しておくとか
465 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:11:30.63 ID:fYPVnhP50.net] >>455 単純なループ処理でキャンセル例外が必要なければ CancellationToken.IsCancellationRequestedをチェックするのでも良いね
466 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:12:50.98 ID:4aKZbpn00.net] 皆さん、ご回答ありがとうございます。 >>454 停止メソッドにより、ループ条件から外れるフラグを立てて 処理停止させるイメージでしょうか。 >>455 CancellationTokenSource初めて聞きました。 便利ですね! >>456 すみません。フラグでの終了処理しか思いつきませんでした・・・ もう少しマシな実装になるとどうなるのでしょうか。 教えてもらえると助かります。
467 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 21:26:09.47 ID:4aKZbpn00.net] >>457 そういった方法もあるのですね。ありがとうございます。
468 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:06:20.98 ID:GZd8Fc/Qp.net] 無限ループなんか組むな。
469 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:40:07.64 ID:4aKZbpn00.net] すみません・・・ あるフォルダにファイルが保管されたときに そのファイルを処理したくて監視に無限ループを使ってしまいました。 他に良い方法があれば、お教え願えないでしょうか。
470 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:43:30.90 ID:4WMOl80S0.net] >>461 System.IO.FileSystemWatcher
471 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:46:14.03 ID:4WMOl80S0.net] もしくは、win32ApiのFindFirstChangeNotification()か
472 名前:デフォルトの名無しさん mailto:sage [2019/08/27(火) 22:46:46.91 ID:4aKZbpn00.net] >>462 そんな便利なものまであるんですね!びっくりしました! 全然C#のこと知らなくて恥ずかしいです・・・ 教えてくださってありがとうございました。
473 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 09:31:28.37 ID:jmHHdju80.net] 自分はC#といえば当たり前のようにWindowsFormでやってたけど みんなは何使ってるの?
474 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:09:54.59 ID:xlt6w80MM.net] >>465 特に必要なければwinform というか、初期のブレンドが使い物にならなかったので、WPFやUWP?は必要になるまで覚えないことにした
475 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 11:18:52.44 ID:kf58t1t/0.net] WinformからUWP APIを呼び出すことも出来るしな
476 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:01:00.80 ID:nq/8XfUOM.net] WPFでやってるけど誰かにお勧めしたことはないしとてもお勧めできない
477 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:10:35.61 ID:biFO59Yua.net] >>465 Winformなプロジェクトだが、XAMLでのレイアウトが好きだから自分の担当画面はWPF使ってる
478 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:29:45.46 ID:XsRrDAKXd.net] >>465 ASP.NET Core
479 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 12:34:32.95 ID:in2U0t2Ud.net] >>465 WinFormsやらWPFやらXamarin
480 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 14:05:53.46 ID:xlt6w80MM.net] >>465 アンカーやドック追加してくれたのが嬉しすぎて、他に浮気してまで新たに覚える気にならないってのもあるかな
481 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:18:04.95 ID:h4zgSqGZd.net] [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow(); アクティブウィンドウのクライアント領域を取得するにはどうすればいいでしょうか? 上のメソッド使えば行けそうなんだけど、行き詰まってます。
482 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:23:25.50 ID:7/MPDbwD0.net] C#関係ない
483 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 20:39:43.87 ID:j6ZvHlbE0.net] >>473 それはアクティブになっているウインドウのハンドルを返すだけのもの https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getclientrect RECTの構造体は自分で用意して上のURLではポインタが引数になっているけどC#なら [DllImport("user32.dll")] private static extern int GetClientRect(IntPtr hwnd, ref RECT Rect); みたいに構造体をrefかoutで指定したらそこに戻ってくる
484 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 23:28:13.40 ID:1vTqziPj0.net] c#楽しいね 直感ですぐGUIアプリ作れるからプログラミング覚えたいけど特に目標がないって人にはc#一択だと思う
485 名前:デフォルトの名無しさん mailto:sage [2019/08/28(水) 23:50:51.61 ID:RWMmexzc0.net] >>475 ほぼそのまんまのサンプルを見つけて問題はとりあえず解決しました。 https://ja.stackoverflow.com/questions/21328/c-processで指定した別プロセスのウインドウを-クライアント領域のみキャプチャしたい アクティブウィンドウのクライアント領域の取得は、 c# + netframework ではできないのですか?
486 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 00:27:03.61 ID:yP1vALXb0.net] できるよ お前には一週間早い
487 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 01:19:09.27 ID:wYLP5dcN0.net] 次はListViewの要素の長方形を得たいとかかな 結局.netからは離れていきそう
488 名前:デフォルトの名無しさん [2019/08/29(木) 01:53:51.70 ID:KY//KYCr0.net] TreeViewの表示を標準の 項目1 ┗項目2 ┣項目3 ┗項目4 から、 項目1━項目2┳項目3 ┗項目4 にするにはどうすればよいでしょうか?
489 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 01:59:31.63 ID:AZY1Uw460.net] owner draw
490 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 02:11:15.91 ID:HoxlVuhE0.n
] [ここ壊れてます]
491 名前:et mailto: 普通にカスタムコントロールを作った方が早そう [] [ここ壊れてます]
492 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 07:51:27.50 ID:JXiDsy0oa.net] >>473 GetActiveWindow()って無かったっけ?
493 名前:デフォルトの名無しさん mailto:sage [2019/08/29(木) 07:52:24.70 ID:JXiDsy0oa.net] ↑ああ、早とちり
494 名前:デフォルトの名無しさん [2019/08/30(金) 21:10:43.61 ID:euEksp6k0.net] ドラッグアンドドロップで拡張子を.txt→.jsonに変更するプログラムのコードをください
495 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 21:15:43.51 ID:a95S+czO0.net] batでやったほうが早そうなレベルだけど fileをrenameするだけでしょ?
496 名前:デフォルトの名無しさん [2019/08/30(金) 21:18:37.15 ID:euEksp6k0.net] renameするだけですね どうしてもC♯でやりたいんです
497 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 21:30:48.63 ID:m5yHWiCc0.net] >>487 拡張子の書き換えは System.IO.Path.ChangeExtension(filepath, extension) ここはコードを代わりに書くスレじゃないのでキーワードはあるのだから後はググってください
498 名前:デフォルトの名無しさん [2019/08/30(金) 21:39:06.95 ID:euEksp6k0.net] 一日ググってもわからなかったので聞きに来ました
499 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:13:39.42 ID:LYP1s7Gj0.net] 誰が一日ググれば聞いていいって言ったんだよ ひと月はググれ
500 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:15:07.21 ID:gOJh05ROp.net] >>488 それだけじゃ変数領域にあるファイル名しかリネームされてない予感
501 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:16:45.05 ID:5knN0MFU0.net] むしろググる以外のことをしろ 一日やったらわかったこととわからんとこぐらいあるだろ
502 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:17:38.29 ID:a95S+czO0.net] どこがわからなかったのかくらい書いてくれないと説明できんよ ドラッグアンドドロップの受け取り方? 拡張子の変え方? コンソールアプリなの?デスクトップアプリなの?
503 名前:デフォルトの名無しさん [2019/08/30(金) 22:22:42.01 ID:euEksp6k0.net] https://www.ipentec.com/document/csharp-accept-drag-and-drop-from-explorer https://dobon.net/vb/dotnet/file/changeextension.html ここの二つのサイトを参考にして組み合わせれないかと色々やってみたんですけどうまくいかないんですよね それぞれ片方ずつならうまく動きます
504 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:27:14.34 ID:a95S+czO0.net] 上手く行かないとは何かを説明して コンパイルできない?エラーが出る?例外が出る? 実はmoveできてるけど別のフォルダに作ってるとかないよね?
505 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:27:46.98 ID:Eq4lHDlT0.net] 答えが出てるから色々試そうぜ あと1日試してやり方がわからないのなら >>1 にある >■コードを貼る場合は↓を使いましょう。 >ideone.com/ >https://dotnetfiddle.net/ にコードを張ってここからどうやれば良いかを聞いてくれ
506 名前:デフォルトの名無しさん [2019/08/30(金) 22:47:12.10 ID:euEksp6k0.net] ideone.com/4eJIcv これで貼れてますか?フォームアプリケーションです。 ここの57行目のファイルのパスをドラッグアンドドロップして得たパスに変更したいんですけどうまくいかないんですよね
507 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 22:58:41.75 ID:m5yHWiCc0.net] >>497 private void Form1_DragDrop(object sender, DragEventArgs e) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false); for (int i = 0; i < files.Length; i++) { string fileName = files[i]; textBox1.Text += fileName + "\r\n"; System.IO.File.Move(fileName, System.IO.Path.ChangeExtension(fileName, "bak")); } } これでいいでしょ ボタンクリックでやりたいのならフィールドでファイルパス持たないと
508 名前:デフォルトの名無しさん [2019/08/30(金) 23:12:12.27 ID:euEksp6k0.net] >>498 できました、ありがとうございます こんな簡単だったんですね・・・・・・
509 名前:デフォルトの名無しさん mailto:sage [2019/08/30(金) 23:59:42.45 ID:Nv4TyFgP0.net] >>498 重箱の隅で本質とは関係ないけど、 "\r\n"はEnvironment.NewLineの方が良いな
510 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:15:27.52 ID:yACTwzu40.net] テキストボックスのテキストも環境の影響受けるんか? おれは環境によらず出力一定のほうが安心する
511 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 00:24:05.20 ID:8S6g8PTE0.net] どちらかと言うと定義済みの定数としてだな
512 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 02:02:25.00 ID:XD/oUD8U0.net] コンソールとGUIの改行が同じという保証なんて無いんだが
513 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 04:03:11.60 ID:5bIs7pBL0.net] >>503 同意
514 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 08:13:13.94 ID:auI6O9iK0.net] JSONを扱いたいのですが.NET標準機能では JSON.NETにあるJsonPropertyのような変数名とは別の名前で 出力できるような機能は無いでしょうか?
515 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 08:26:54.85 ID:/xXRK3gd0.net] >>505 DataContractJsonSerializer使って [DataMember(Name="別の名前")] とか?
516 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 08:38:53.92 ID:auI6O9iK0.net] >>506 うぉぉぉ できました。ありがとうございます!
517 名前:デフォルトの名無しさん [2019/08/31(土) 15:26:10.82 ID:pxkHJ9ge0.net] クロームにURL開かせるプログラムって作れるのかな
518 名前:デフォルトの名無しさん [2019/08/31(土) 15:34:24.66 ID:pxkHJ9ge0.net] 標準ブラウザで開くのがありました
519 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 17:12:50.00 ID:3HNIz5om0.net] 引数にURLを入れて起動すればいいんじゃない? やったことないけど
520 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 18:30:37.90 ID:OVCgKeDNa.net] headlessでできるよー
521 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 18:34:41.41 ID:lSinYyRY0.net] >>510 どんなブラウザでも、標準でそうなってる(べき)と思ってる。meも
522 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 20:59:16.96 ID:DOQSWUJb0.net] start url って叩きゃ標準ブラウザが立ち上がるでしょ 引数ってブラウザのexeパス調べてそこに渡すの? OSが知ってんだからOSにぶん投げればいいだけじゃん
523 名前:デフォルトの名無しさん mailto:sage [2019/08/31(土) 22:02:09.86 ID:3KJgwSNk0.net] >>508 Seleniumだな、それこそ。
524 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 13:12:29.24 ID:x5YZ9uix0.net] Span<T>をコレクションに貯める事って出来ないんでしょうか? 受け取ったbyte[]から一部のみを必要としていますが、startIndexとlengthを一々記録するのも面倒であるため、現状は新たにnew byte[length]を作りコピーをして貯めています 別にこれでも全く困っていませんが、あんまりスマートではない気がしているので元のbyte[]を.AsSpan(startIndex, length)したものをコレクションに貯められればスッキリするのですが
525 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 13:30:51.46 ID:DTXhuRLF0.net] できないよ array[3..7]とかでSliceするとか元の配列を使うならArraySegment<T>使うとか
526 名前:デフォルトの名無しさん [2019/09/02(月) 14:07:32.18 ID:/BuOMso5a.net] へーSpanってそんな制約があるのか知らんかった https://stackoverflow.com/questions/52484998/the-type-spanchar-may-not-be-used-as-a-type-argument
527 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 14:41:25.59 ID:ZSYwkq3t0.net] >>508 例えば、Ruby, Selenium Webdriver なら、 下のファイルを、test.rb とすると、端末で、 ruby test.rb "ここにURL" と入力すると、引数がARGV[0] に入ってくる require "selenium-webdriver" options = Selenium::WebDriver::Chrome::Options.new options.add_argument('--headless') options.add_argument('--disable-gpu') driver = Selenium::WebDriver.for :chrome, options: options driver.navigate.to ARGV[0] # URL
528 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 17:47:47.05 ID:btOIY8sya.net] >>515 MemoryExtensions.AsMemory()を経由してSystem.Memory<T>を管理するのはどう?
529 名前:デフォルトの名無しさん mailto:sage [2019/09/02(月) 22:24:59.33 ID:yMcQzedZ0.net] >>518 C#で書かないならスレチ
530 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 00:14:45.15 ID:nBDYMOwL0.net] なんで突然ruby?
531 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 00:20:55.08 ID:UWVASv0T0.net] >>521 ソイツはいくつかのスレタイにRuby禁止といれることになった元凶だから、考えるだけ無駄よ
532 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 04:53:21.49 ID:uBbuO65f0.net] これもう半分まつもとゆきひろだろ
533 名前:デフォルトの名無しさん mailto:sage [2019/09/03(火) 07:44:05.39 ID:ZfMnDhcZ0.net] Matzから分離した闇の半身か何か(ダークファンタジー感)
534 名前:デフォルトの名無しさん [2019/09/03(火) 15:02:01.60 ID:qa0OGce90.net] zipファイルのパスワード総当たりのコードってどこかに落ちてたりしません?
535 名前:デフォルトの名無しさん [2019/09/03(火) 15:23:56.69 ID:gWEsYspAF.net] ム板なんだし自分で書いても大した手間じゃないだろ
536 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 23:01:10.22 ID:YAGCYgl00.net] ラプラス使ったほうが早い
537 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 23:19:14.03 ID:+3gE1skmF.net] ラプラス変換関係ないだろ
538 名前:デフォルトの名無しさん mailto:sage [2019/09/04(水) 23:23:33.02 ID:YAGCYgl00.net] フリーソフトなんだけど(´・ω・`)
539 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 08:24:49.80 ID:cdpeKhxuM.net] ラブプラスに見えたし
540 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 12:39:28.85 ID:mWzCSlDu0.net] 頭がc 胴体がDelphi 尻尾がJava これはなんという生き物か?
541 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 12:52:58.36 ID:IuZ8kmLDd.net] メインフォームと5つボタンがあるサブフォームあります。 サブフォームで押されたボタンをメインフォームに渡す方法として、下記のようなことが書いてあります。 「サブフォームの呼び出し時にメインフォームのインスタンスをサブフォームの変数に渡すか、もしくは Ownerプロパティを設定し、サブフォームにメインフォームのインスタンスを伝える必要があります。」 これ循環参照にならないのですか? owner プロパティならフレームワークでうまくやってくれそうですが、そうしないなら典型的な循環参照でメモリにいつまでも残るように見えます。
542 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 12:57:57.83 ID:IuZ8kmLDd.net] >532のコードで気になった部分 public FormMain() { InitializeComponent(); fs = new FormSub(); fs.formMain = this; } private void button1_Click(object sender, EventArgs e) { fs.Show(); }
543 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 13:07:57.99 ID:/TG+lkXnd.net] 昔のVBとかじゃないから 参照カウント方式とかじゃないから 大丈夫だよ
544 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 15:05:44.19 ID:olW2Z8c3M.net] >>533 循環になってないやん 相互参照になってるだけ
545 名前:デフォルトの名無しさん mailto:sage [2019/09/05(木) 15:11:39.37 ID:MYIgyYNAM.net] >>535 相互参照⊂循環参照
546 名前:デフォルトの名無しさん mailto:sage [2019/09/06(金) 07:39:44.27 ID:ON7V4Cum0.net] awaitの仕組みって面白いな プログラムは逐次実行と思い込んでいたから最初戸惑ったけど プログラムの可読性を上げつつ非同期が書ける仕組み