1 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:53:21.18 ID:dhjmiKBp0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part152 mevius.5ch.net/test/read.cgi/tech/1629888256/ ■関連スレ C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ■コードを貼る場合は↓を使いましょう。 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
670 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 02:49:41.70 ID:mkRG7Oi7a.net] 「早い者勝ち」にしちゃうのもありかなとか思った。いやねーかw public class Key { public int Value { get; private set; } private static int serial = 0; private static Func<Key> func = () => new Key(serial++); private Key(int val) { Value = val; } public static Func<Key> GetCreator() { var ret = func; func = null; return func; } }
671 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 03:06:56.37 ID:ccrjJyGq0.net] >>649 関数内にyield returnがあったらイテレータブロック扱いになって普通の関数じゃなくなる IEnumerable<T>の約束通り、Tの要素を返してって終端がきたらおわり
672 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 11:19:56.44 ID:6qmp/Z4R0.net] >>649 FromTo()が返すのはIEnumerable foreachは大雑把に言えば↓に展開される var iterator = FromTo().GetEnumerator(); while (iterator.MoveNext()){ var I = iterator.Current; Console.WriteLine(I); } イテレータとかイテラブルでググるといい .NETの型名だとIEnumrator<T>とIEnumerable<T>
673 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 12:29:33.15 ID:mY1vrnaaM.net] >>651 有能 >>654 ,662 無能、聞きたいのはお前のチンケな知識じゃねーよ
674 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 13:44:23.87 ID:agiarv77a.net] >>663 馬鹿だねこいつw 質問した人と別人みたいだけど
675 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 14:20:07.42 ID:XKyr/S8qM.net] 馬鹿としか言えない無能w
676 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 14:24:42.58 ID:6Adwrh4F0.net] 今週のNDワッチョイ ドコグロ MM4f-KcIn
677 名前:デフォルトの名無しさん [2022/01/15(土) 14:48:33.55 ID:6bjOtxZz0.net] WindowFormでTimerクラスを使ってlabelのTextを定期的に変更したのですが 「有効ではないスレッド間の操作」ということでエラーになってしまいます。 どのようにすれば実現できるでしょうか? public Form1() { InitializeComponent(); var timer = new System.Timers.Timer(); timer.Elapsed += new ElapsedEventHandler(OnElapsed_TimersTimer); timer.Interval = 5000; timer.Start(); } private void OnElapsed_TimersTimer(object sender, ElapsedEventArgs e) { label1.Text = "1"; }
678 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 14:53:57.88 ID:OfoSB/Yx0.net] >>667 Timerには何種類かあって WinFormsならSystem.Windows.Forms.Timerクラスを使うのが簡単
679 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 14:56:31.51 ID:2bsBwYtoa.net] スレッド間の〜は Invoke((MethodInvoker)delegate{処理}); ってやればわんちゃん
680 名前:デフォルトの名無しさん [2022/01/15(土) 16:08:48.34 ID:6bjOtxZz0.net] Windows.Forms.Timerクラスでやりたいことができました! 後学のため、Invokeも調べたいと思います ありがとうございます
681 名前:デフォルトの名無しさん mailto:sage [2022/01/15(土) 20:02:17.15 ID:XKyr/S8qM.net] >>666 黙ってNGできない無能w
682 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 04:00:49.97 ID:az6Mfsfa0.net] OpenCVSharp入れたらexeのフォルダがdllだらけになったんですが、 これ全部リリースの時にこのまま一緒に渡さないといけないんですか? exe1個にまとめられないんですか?
683 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 07:00:20.21 ID:DVPU1vQA0.net] >>672 単一ファイルの配置と実行可能ファイル https://docs.microsoft.com/ja-jp/dotnet/core/deploying/single-file
684 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 10:03:18.59 ID:gWCKJdmK0.net] ネイティブじゃね?
685 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 10:19:22.15 ID:1ZlPRUHva.net] インストーラーのexeひとつ渡せばおk
686 名前:漆黒の翼 mailto:sage [2022/01/16(日) 20:01:08.59 ID:VfeV/Qg80.net] 教えていただきたいのですがWindowsでc#のプログラムが落ちた時にメモリダンプを吐くようにするにはどうすればいいのでしょうか? よろしくお願いいたします
687 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:14:28.43 ID:8g0F/aL60.net] メモリダンプ吐くと何かわかるん?
688 名前:漆黒の翼 mailto:sage [2022/01/16(日) 20:18:34.35 ID:VfeV/Qg80.net] >>677 メモリダンプをvisual studioに食わせるといろいろ分かります!!
689 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:19:29.37 ID:el47HiNu0.net] メモリダンプを解析できない人たちのスレですよ、ここは。
690 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:22:15.01 ID:F2RYBHf20.net] 明らかに"初心者用"の範疇を超えているよね
691 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:34:12.82 ID:T486FPBl0.net] C#でゲロ吐く方法はしらん Windows Error Reportingで取得するはずなので、呼び出せば行けるかもしれない
692 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:41:28.24 ID:X0X6y0PK0.net] 先輩社員から「まずはメモリダンプとって調べてみろよ」と無理難題言われたとか
693 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 20:47:08.84 ID:el47HiNu0.net] Drワトソンって解雇されてたのか。
694 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 21:01:51.64 ID:uYZKVP770.net] メモリダンプを見ると 変数とかスタックとの内容がじかにわかるので デバグの助けになるかもしれない そこまで必要になることは珍しいけど
695 名前:デフォルトの名無しさん [2022/01/16(日) 21:18:19.12 ID:VfeV/Qg80.net] >>677 ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング - Grani Engineering Blog の説明読むとどういうことがわかるかわかります
696 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 21:38:53.48 ID:zIpkfF6j0.net] >ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング 読んでみたけど支離滅裂な記事だった でもメモリダンプ吐くよう設定する方法はちゃんと書いてたぞ
697 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 21:40:20.63 ID:P0LzLgpAM.net] >>683 出世して Watson Server として MS で働いてます
698 名前:デフォルトの名無しさん [2022/01/16(日) 21:42:20.27 ID:VfeV/Qg80.net] https://docs.microsoft.com/ja-jp/dotnet/core/diagnostics/dumps ここ読むと環境変数だけでいけそうだができませんです
699 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:06:33.35 ID:aMgjkUSV0.net] C#でメモリダンプが必要って、C#の利点捨てまくったクセの強い作りしてるんちゃうか UnsafeゴリゴリとかそれC#で作る意味あるのっていう
700 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:08:28.63 ID:8g0F/aL60.net] >>686 書くやつも書くやつなら読むやつも読むやつってことだな
701 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:17:34.06 ID:8g0F/aL60.net] まあ、そんなもん調べても結局使ってるライブラリがタコでしたなんて可能性もあるし それより先にやることあんじゃねーの? 的な
702 名前:デフォルトの名無しさん [2022/01/16(日) 22:20:42.02 ID:VfeV/Qg80.net] 長時間連続運転するプログラムなんだけど、ちょっとずつメモリ使用料が増えていくななんて 時はメモリダンプ一択だと思うんだが・・・ というかID:8g0F/aL60さんはC#のメモリダンプ何回くらい使った経験あるの? ゴミクズのような経験から導かれた結論は、やっぱりゴ
703 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:24:55.74 ID:el47HiNu0.net] 例外機構が当たり前になった今ではアプリ内でcatchするだけですからね。 仮にテストですり抜けてもcatchしたらエラーログに吐けよと。 今ではWinDbgでカーネルダンプ解析するぐらいかな。
704 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:27:14.39 ID:el47HiNu0.net] C#はガベコレあるからメモリリーク気にしないでいいって後輩が言ってました!!!
705 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 22:41:54.12 ID:RG8YDX1E0.net] 少しずつメモリ使用料が増えていくとか、 Ruby みたいに、世代別GC を使っていたら、 古世代は閾値を越えるまで実行されないかも知れないし、 さらに、メモリ領域が大きいと、閾値もかなり大きいだろうし、なかなか実行されない
706 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 23:17:44.09 ID:8g0F/aL60.net] >>692 正直ないね 無駄だから c#でリークの対応なんて無駄 精々頑張った挙げ句にウチの会社が組んだところじゃない箇所でリークしてて対応できません みたいな事実がわかるだけ まず、c#みたいな 厳密なメモリ管理ができない言語での 組み方を学ぶべき 3日に一度再起動するとか 機能毎にモジュール化して動かすたびに破棄するとかな 廃棄したらガベコレ適当に実行してりゃOSが片付けてくれるだろ
707 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 23:31:50.74 ID:I0k7QK8La.net] 何のお役にも立てんけど、「メモリ使用料」って結構じわるねwww まあマネージドなユーザーコードでリークが発生する原因は限られてるし、 ユーザーコードじゃないならどうしようもないし、ブル中野みたいな大鉈振るう必要って 確かにあるのかなという気はする
708 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 23:40:43.96 ID:zIpkfF6j0.net] >>692 メモリ使用量が増えるならまずはプロファイラーじゃないか?
709 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 23:42:20.42 ID:zIpkfF6j0.net] C#でも断続的に性能が極端に悪化する問題みたいなのが発生したときに 性能悪化したタイミングでダンプ吐かせると糸口がつかめたりする そういうのはだいたい.NET Frameworkとか下位の部分が原因だけど 原因が明確になれば回避策が取れる
710 名前:デフォルトの名無しさん mailto:sage [2022/01/16(日) 23:44:56.33 ID:8g0F/aL60.net] >>699 それもうガチでわかんねーときの最後の手段で まずはデバッガで見てみるべきじゃね? 最近は結構いい機能が付いてる VC6の時代とは違う
711 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 00:12:14.01 ID:BWxacq0R0.net] C#でのリークは大抵長寿命のeventに+=してるだけでしょ
712 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 07:41:52.27 ID:MbNkwuBfa.net] GDIなどのシステムリソースの解放忘れとか
713 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 09:30:07.53 ID:9uEhEVX70.net] リリースの特殊な(?)解放方法なんて半ば作ったやつの趣味だからな 可能であれば別モジュールにしてキックして終わりがいい 個人製作的な(会社内であっても)ライブラリだとusingのdispose実装忘れはよくある 信じて使うと後ろからバッサリだ
714 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 10:45:22.36 ID:TWhgTM4G0.net] もう半年以上起動しぱなっしの.NET5で作ったスクレイピンクツールあるけど25mbで安定してるな
715 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 12:44:47.10 ID:DKJy6PH50.net] >>704 25ミリバールって気圧かよw
716 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 13:14:05.94 ID:U4Fph
] [ここ壊れてます]
717 名前:VWG0.net mailto: ミリビットだろ、この板なんだから [] [ここ壊れてます]
718 名前:デフォルトの名無しさん [2022/01/17(月) 13:15:12.00 ID:XdTy16+8M.net] ミリバールって昭和かよ
719 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 13:45:40.07 ID:McAG9Ljja.net] マネージドな世界で閉じている限り、Disposeの実装ミスや呼び出しの忘れは リークの原因には普通はならないと思うけどね。 単にリソースの解放が逐次的でなくなるだけ。
720 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 13:52:14.45 ID:NIAK/ICvM.net] >>708 Disposeが呼ばれたらstaticなイベントからハンドラを削除するような実装は低品質なライブラリなんかだとたまに見かける
721 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 14:02:14.57 ID:s/zLKX0LM.net] >>708 > GDIなどのシステムリソースの解放忘れとか の話の流れで > マネージドな世界で閉じている限り とか頭おかしいのか?
722 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 14:05:18.68 ID:McAG9Ljja.net] >>710 頭がおかしいのは君の方 普通のプログラマはマネージドなライブラリを挟んで 間接的にGDIのリソースを利用するんであって直接使ったりしないの だからライブラリのコードにバグがない限りGDIを間接的に 利用しているからといってリークの原因にはならないんだよ
723 名前:デフォルトの名無しさん [2022/01/17(月) 14:10:54.78 ID:McAG9Ljja.net] ついでに言えば、俺は別に>>702 に反論したわけじゃないw すごい被害妄想だよねw ネトウヨさんじゃねえのw
724 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 14:26:56.43 ID:ly062VWjM.net] 普通のプログラマw 無能の言い訳に多用されてて笑う
725 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 14:40:41.16 ID:IUPVmsWca.net] 理想のマネージドだったらdisposeなんて関係ないし、メモリリークなんて起きない でもc#は理想のマネージドじゃないんだよ・・・
726 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 15:20:30.64 ID:C2NpqJUJM.net] ゲロみたいな話題で盛り上がってんなあ
727 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 17:33:38.89 ID:0pf4TYua0.net] っぱRustよ
728 名前:デフォルトの名無しさん mailto:sage [2022/01/17(月) 19:32:54.18 ID:rqpdgGXW0.net] mb ミリビットもジワるwww
729 名前:デフォルトの名無しさん [2022/01/18(火) 09:23:03.79 ID:HVobsaMl0.net] 低レベルな質問で恐縮です。VisualStudioを使っています。 やりたいことは、定期的に更新されるcsvからデータを取得しDataGridViewに表示させたいです。 (つまり、DataGridViewでリアルタイムに更新されているように見せたい) 取得・更新することはできたのですが、更新時にソート状態が解除されて困っています。 DataTable・DataSet・DataSource・データバインドなどのキーワードを見つけて調べているのですが、理解力が乏しく解決できていません。 こんな方法があるよと、ヒントになる助言をいただけたらありがたいです。 よろしくお願いします。
730 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 10:13:54.13 ID:Tap2eyJjM.net] >>718 DataGridViewのSort順を復元するだけでは?
731 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 10:18:04.98 ID:jhcMMPao0.net] ・DataGridViewにどうデータをセットしているか、どう更新しているか ・どうソートさせているか ・ソート状態が解除というのは結局どういう状況になっているのか を具体的に
732 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 11:36:28.39 ID:HVobsaMl0.net] 反応ありがとうございます。 >>719 更新前にソートされている列を取得して、更新後に強制ソートする という感じですね。試してみます。 >>720 >DataGridViewにどうデータをセットしているか 今の状態は、あるサイトにのっていたコードをコピペして試しています。 //フォームデザイン //csvデータ:person_read.csv //button4のソース ソースコードはこちら ttps://dotnetfiddle.net/i89pR3 ///////////////////////////////////
733 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 11:37:01.32 ID:HVobsaMl0.net] >・どう更新しているか button4を押すたびにcsvからデータを更新しています(実現したらtimerで自動更新に変更予定) >・どうソートさせているか >・ソート状態が解除というのは結局どういう状況になっているのか button4クリック→初期状態(csv並び順) GUIのdataGridViewの任意の列(
734 名前:痰ヲば年齢)をクリックしソート 1,山田,25 3,鈴木,28 2,佐藤,30 4,山田,46 csvに 5,田中,37 が追加される button4クリックで更新 csvの並びに戻る(希望はこの順で表示させたい) 1,山田,25 → (1,山田,25) 2,佐藤,30 → (3,鈴木,28) 3,鈴木,28 → (2,佐藤,30) 4,山田,46 → (5,田中,37) 5,田中,37 → (4,山田,46) 以上です。 [] [ここ壊れてます]
735 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 11:43:01.00 ID:HVobsaMl0.net] リンクが404になっていたので貼り直しします。 これで大丈夫か心配ですが。 https://dotnetfiddle.net/ulZ3M9
736 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 13:08:53.17 ID:jhcMMPao0.net] DataTableの場合ソート順は dataTable.DefaultView.Sort に文字列で格納されるからこれを使えばいい
737 名前:デフォルトの名無しさん [2022/01/18(火) 13:20:14.01 ID:k1mhP8XB0.net] C#で正規表現のperlでの「tr」と同じ事をしたいのですが、 Regexクラスにそれっぽいのがありません。 何か方法はありませんでしょうか?
738 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 13:29:49.03 ID:pQS/rHaxa.net] trは置換なのか?だったらc# regex 置換とかでぐぐりゃ方法出るだろ 痴漢じゃないなら知らない
739 名前:デフォルトの名無しさん [2022/01/18(火) 13:41:14.96 ID:k1mhP8XB0.net] 置換ではあるのですが、 pattern [a-z] replacement [a-z] とすると半角英字が全角英字に変換されるといった感じです
740 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 13:52:43.16 ID:pQS/rHaxa.net] 正規表現でマッチした位置とマッチした文字列を取り出すのはできる 正規表現関係なく文字列を全部変換するってならできる これを組み合わせて自分でやるしかないんじゃない?
741 名前:デフォルトの名無しさん [2022/01/18(火) 13:54:14.42 ID:9szJ9jA+0.net] Regex.Replace(mojiretsu, "[a-zA-Z]", p => ((char)(p.Value[0] - 'a' + 'a')).ToString()); 動確はしてない。
742 名前:デフォルトの名無しさん [2022/01/18(火) 14:04:35.01 ID:k1mhP8XB0.net] なるほど、やはりないですか ありがとうございました
743 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 18:17:30.27 ID:UqX3jEvG0.net] 全角半角ならVB.NetのStrConv使えばいいじゃね
744 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 18:27:21.22 ID:80llBYJsr.net] c#って全角半角変換でまともなメソッド用意してないよな
745 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 18:49:27.58 ID:HVobsaMl0.net] >>718 です。 .SortedColumn で現在のソート選択列を取得 ListSortDirection で昇順・降順の状態を取得 データ更新後、.Sort で更新前のソート状態を復元することができました。 >>719 さん>>724 さんヒントをありがとうございます。 >>720 さん、気にかけていただいてありがとうございます。 また何かあればよろしくお願いします。
746 名前:デフォルトの名無しさん [2022/01/18(火) 19:17:27.38 ID:DZmAMHWt0.net] >>732 C#の言語仕様にそんなのあるわけないだろうが 頭がおかしいのかな?
747 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 19:30:02.02 ID:uGAsykz90.net] .NETのことだろ。 あれ本当に不便。
748 名前:デフォルトの名無しさん mailto:sage [2022/01/18(火) 19:44:39.78 ID:g9d5Z42+a.net] 全角無視した比較はあるんだから変換もあればいいのにな .net6はいたるとこでCultureInfo受け取れるようになってるから、オリジナルCultureInfo作ってやればtolowerなんかはできそう
749 名前:デフォルトの名無しさん mailto:sage [2022/01/19(水) 04:15:15.58 ID:4BL/bkWB0.net] nuget辺りに.net言語で使える漢字処理モジュールみたいのないの
750 名前:デフォルトの名無しさん [2022/01/19(水) 13:57:55.37 ID:b1tRS/0c0.net] あの、Asp.netMVCでサイトを作ったんですが、 robots.txtって Global.asaxと同じ場所もしくはViews\Layout.cshtmlと同じ場所 のどっちに置けばいいんでしょうか?
751 名前:デフォルトの名無しさん [2022/01/19(水) 22:04:21.46 ID:67zDZ4RH0.net] WebProgという板があるからそっち言ってみれば?
752 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 08:59:26.49 ID:fgAfnzipM.net] >>738 デプロイしてみればわかる話を
753 名前:、何故聞いてしまうのか? [] [ここ壊れてます]
754 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 10:11:03.18 ID:8HL1zORE0.net] めんどいじゃん ネットでクダ巻いてるゴミが代わりに試して教えてくれれば儲けもんだろう?
755 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 12:57:10.80 ID:MJ6I7RR7r.net] おっ、そうだな
756 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 14:46:47.86 ID:n7chvAG30.net] >>741 うそを教えられるという可能性は考えないのか?
757 名前:デフォルトの名無しさん mailto:sage [2022/01/20(木) 18:34:05.33 ID:NL1fx3HA0.net] すでにサイト作ってる段階なら、掲示板で聞くより自分で試すほうが早いと思うんだがなぁ
758 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 00:57:35.59 ID:yyC8EMRk0.net] 共変と反変という言葉がよく分かりません アップキャスト/ダウンキャストと何が違うんでしょうか?
759 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 02:01:57.32 ID:r2dC59Vr0.net] class B{} class C:B{} class D:C{} static D Function(B b){ return new D();} Func<C,C> fp = Function; Functionの返り値DはCの派生クラスだから返り値CのFunc扱いしても大丈夫だよねってのが共変 Functionの引数BはCのベースクラスだから引数CのFunc扱いしても大丈夫だよねってのが反変 両方ともアップキャスト(asがいらない)が約束されてるから許される
760 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 04:17:33.74 ID:9FYmM/Q0a.net] ハロウィンの子供にチョコレートを渡せることが反変で チョコレート工場をお菓子工場とみなせることが共変ってことか
761 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 08:32:03.92 ID:kufT2hajr.net] よく理解できるね これを理解したとしても他人がコードを読むの大変だよね コメントに書いておくものなの?
762 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 10:57:27.37 ID:r8LIAXWEM.net] c#自体にそういう機能があるので楽だねって感じ うまくいかない場合は何か思い違いしてる
763 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 22:48:46.71 ID:0wwLw+zrM.net] >>746-747 めちゃくちゃ分かりやすいです ありがとうございました
764 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 22:52:58.30 ID:DQ1OUxKV0.net] なにこれ もしかしてnullになるかもしれんやつは片っ端から?つけなきゃいけなくなったの??
765 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 23:17:35.13 ID:Yoc43dCB0.net] そうだぞ
766 名前:デフォルトの名無しさん mailto:sage [2022/01/21(金) 23:37:35.61 ID:DQ1OUxKV0.net] なんか俺かっぺになった気分だべ・・・
767 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 01:35:08.87 ID:xgyvtLBZ0.net] nullチェックをコンパイラが管理するやつだから慣れれば神機能
768 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 06:49:46.16 ID:sQZaaq50M.net] 参照前に必ずnullチェックというコーディング規約から解放される?
769 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 07:48:24.01 ID:dpfIrrzB0.net] なわきゃあない
770 名前:デフォルトの名無しさん mailto:sage [2022/01/22(土) 08:36:39.06 ID:odBVOzqN0.net] on/offを行単位で切り替えられるから混乱すると思う