1 名前:デフォルトの名無しさん mailto:sage [2020/05/27(水) 20:28:41.27 ID:Pggemlyq0.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980 を踏んだ人は新スレを建てて下さい。>>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part147 mevius.5ch.net/test/read.cgi/tech/1582100741/ ■関連スレ C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ■コードを貼る場合は↓を使いましょう。 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/ ・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
766 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 22:38:58.86 ID:5TTB8+bC0.net] チャゲアスASUKAのギフハブに監視されてるネタに掛けてGitHubをギフハブと呼ぶのは5chの標準語だと俺も思ってたがそこまで浸透してないのか
767 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 22:42:09.42 ID:T9vV3uABa.net] なんとも不思議な世界があるんだなあ・・・・ TryGetValueを使うのが今どきの常識的なコーディングだと思ってた自分としては 老害(あるいは悪意があって不適切なコーディングを押し付けようとしてる人)が世迷言をほざいてるだけにしか見えないや
768 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 22:53:33.81 ID:yrxBBFH+0.net] >>755 その理屈で行くとコードレビューなんて出来なくなるな (これ明らかに意味のない文だけど何かスピリチュアル的な深い意味があるのだろうか…?配慮して指摘すべきではないか…?)なんて一々考察しなきゃいけないのかよ
769 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:00:13.09 ID:YUoXGIHl0.net] 了解
770 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:03:55.81 ID:YUoXGIHl0.net] >>754 MISRAにもあるし高信頼性を要求される場面ではそれなりにありがちな話だよ
771 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:14:22.90 ID:iy3zNsHi0.net] >>759 レビュー受けてるような新人はそんなこと考えなくていいと思うよ 多次元辞書でアクセスそのまま返す利点が分からないならまだお勉強段階なんだから、そういうやり方もあると素直に学んでおけば良い とりあえずチューニングはベテランがもっと後でやる仕事だから、パフォーマンスがーとか言い出すのは十年早い
772 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:30:20.42 ID:yrxBBFH+0.net] そう主張するのであれば具体的な利点を述べろよ TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない 勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
773 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:51:14.64 ID:kxXRvhGP0.net] >>761 ねーよ
774 名前:デフォルトの名無しさん mailto:sage [2020/11/29(日) 23:59:15.56 ID:AAs5LLYH0.net] 宗教論争オモロイなw
775 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:00:33.52 ID:n5NKB6GR0.net] >>763 しょうがないな こういうケースは極端化すれば明確になる dic.TryGetValue(a, out var dic2) dic2.TryGetValue(b, out var dic3) dic3.TryGetValue(c, out var dic4) dic4.TryGetValue(d, out var dic5) dic5.TryGetValue(e, out var value) vs var value = dic[a][b][c][d][e] とりあえず値の取得を比較した場合こうなる 非常に馬鹿げたコードだが後者の方が察しやすくバグりにくいのは分かるはず これは分岐を差し込んでも同じこと こんなコードは現実にあり得ないから無効と言い張るなら、所詮はその程度のレベルなんだから黙るべき
776 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:20:59.97 ID:9x2/PpIx0.net] TryGetValue vs ContainsKey+[]の争いでしょ? なら下はちゃんと一つ一つにContainsKey挟むべき そして後者の方がバグりにくい理由が全く分からない。まず何のバグを対象としているのか明確に
777 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:25:39.57 ID:G1P0/YpK0.net] レビューを受けるのが新人とか言ってる時点でまともじゃないでしょ いつの時代のエンジニア思想よw
778 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:26:29.87 ID:E5czHbG2a.net] なんというかb7e4-nc77みたいなのがレビュアーやったら地獄だな 自分が新人だったらたまったもんじゃない
779 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:36:41.15 ID:EEdVS6ls0.net] >>767 お前さんプログラマ向いてないから転職した方が良いよ、マジで ちゃんと理屈で教えられたことを受け付けないとか先が無さすぎる
780 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:39:46.85 ID:qXuQLmTVa.net] どうせ過疎スレだからスレ消費するのは問題ないと思うけど あまりに下らな過ぎる論争で萎えるねw よく読んでないので素っ頓狂なこと言ってるかもしれないけど、 iniファイルぐらいなら馬鹿正直にDictionaryをネストなんかしなくても section+keyをキーにして平坦化しても良いような気もする
781 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 00:45:42.05 ID:9x2/PpIx0.net] >>770 答えられないんだね
782 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 01:29:55.64 ID:a85534SW0.net] ini parserの中身を見たらContainsKey + インデクサだった https://github.com/rickyah/ini-parser/blob/development/src/IniParser/Model/SectionCollection.cs#L62-L77 自分なら使う側のコードがシンプルになるようにini[section][key]かini[section]?[key]の形で sectionかkeyがnullならnullを返すようにDictionaryを少し拡張するかな
783 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 05:30:56.15 ID:lgcZd+iw0.net] >>764 お前がそういう世界を知らんだけ
784 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 08:23:44.56 ID:gN60+pZv0.net] 相変わらず質問者無視で議論してるのウケる テンプレ読めない人多すぎでしょw
785 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 08:57:23.41 ID:8S8hZPx60.net] >>771 そもそもini直接操作するならWin32APIにセクション名とキー名と無かった場合の規定値を突っ込むだけで良いからDictionaryすらも何もいらない pascalにはMemIniみたいな基本はファイルには書き込まないクラスがあるからそれを実装しようと思ったらDictionaryがベストなんじゃない >>775 section一覧を返す方法は一昨日の一番最初のレスでしたって昨日言ったはずだが無視してるのはお前の方だろ
786 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 09:04:32.51 ID:8S8hZPx60.net] >>773 そのプロジェクト見た感じTryGetValueを一度も使ってないから恐らくJavaか何か出身で存在知らないんだろうな ContainsKeyは割と色んな言語にあるからこっちの方が認知度高いのは間違いない なので昨日も言ったが一々C#に学習コスト払いたくないって人もいるだろうからそういう場合は好きにしたらいい
787 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 10:07:26.68 ID:3MSQwEh40.net] >>776 テンプレ読めよ 「議論」するなと言っているんだが
788 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 10:12:11.16 ID:I8/NWgIp0.net] テンプレ読めないって事はレスも読めないんだから言っても無駄 粛々とNG
789 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 10:29:32.82 ID:lgcZd+iw0.net] >>766-767 まあここまで極端な例なら try { var value = dic[a][b][c][d][e]; } catch(){ } ってやる事を検討してもいいかも
790 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 10:45:42.20 ID:0LXXOsdO0.net] >>777 お、ようやく自分の間違いを認めたか まあContainsKeyの方が可読性高いのは当たり前なんだが 762 名前:デフォルトの名無しさん (ワッチョイ 9f24-GtYN) [sage] :2020/11/29(日) 23:30:20.42 ID:yrxBBFH+0 そう主張するのであれば具体的な利点を述べろよ TryGetValue派は俺以外にもメリット述べてる奴いるけどContainsKey派は「そのほうが見やすい」程度の個人の感想以上は出てきてない 勿論それもメリットではあるがTryGetValueの方が見やすいと言う人もいるのでそこでは差は付かない
791 名前:デフォルトの名無しさん [2020/11/30(月) 11:16:43.36 ID:o8riI3080.net] >>781 可読性と認知度は全然違う意味だと思うけど、っていうのは置いといて >>733 とか>>766 とかさすがに釣りでしょって思わせるレスがちらほらあるから、喧嘩両成敗はちょっと可哀想な流れ
792 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 11:55:30.78 ID:tpJ2df0N0.net] >>774 ちょっとはググれよ
793 名前:デフォルトの名無しさん [2020/11/30(月) 11:58:06.51 ID:UK/ABAdxa.net] 認知度と可読性が別物か 職場で宇宙人って呼ばれてそう
794 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:11:19.73 ID:zbjAWIZjd.net] >>780 これでええやん 例外が重い?知るかよ
795 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:13:44.19 ID:lgcZd+iw0.net] >>783 > ちょっとはググれよ ブーメラン過ぎる、ってかググっても悪魔の証明はできないぞw
796 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:15:09.00 ID:0LXXOsdO0.net] TryGetValueを使うことに拘りすぎててアスペ臭しか感じない 好きにしろと言いながら必死で反論してんのが特にな 多様性を許容するっていうのは>>755 みたいなスタンスなんだよ ここまで言われて「何言ってんのか分かんない」と騒ぎ続けるのは感情で理解を拒んでるだけの地雷君 「そういうの嫌われるからやめよ?」って指摘されてるのに「なんで? 俺が正しいじゃん?」って返すのは馬鹿を通り越した何かだわ
797 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:26:00.27 ID:tnWbc17e0.net] こういうレスちんぽバトルやめねぇ?
798 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:51:21.50 ID:tpJ2df0N0.net] >>786 MISRAって名前まで分かってるのに?
799 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 12:52:22.17 ID:PPubPKASd.net] いまだに複数リターン禁止なんて言ってる時代錯誤なやつがいるのかよ…
800 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 14:08:46.39 ID:lgcZd+iw0.net] >>789 ??? ないことの証明だよ? 悪魔の証明って知らんの?
801 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 14:09:59.63 ID:lgcZd+iw0.net] >>790 だからお前等の知らない世界があるって話 まあC++とかC#だと例外とか使えるからだいぶ緩和されるけど
802 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 14:11:44.42 ID:tpJ2df0N0.net] >>791 まずはあることを示してから
803 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 14:31:16.69 ID:zbjAWIZjd.net] >>792 アセンブラ以外でFalseは即リターンなんてベストプラクティスやん if elseとか基本ダサいんだよね
804 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 15:11:50.10 ID:lgcZd+iw0.net] >>793 それこそ misra multiple return とかでググればいくらでも出てくるだろw https://www.viva64.com/en/w/v2506/ >>794 だからそう言うのが非推奨な現場があるというだけの事 個人的には関数の頭でのエラーチェックでエラーだったら即リターンとかよくやってる
805 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 15:27:06.61 ID:tpJ2df0N0.net] >>795 それのどこがC#なんだ?
806 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 16:36:59.20 ID:r8rQ87Qr0.net] 関数の出口が、複数ある奴か。 危険だから、MISRA-C の禁止事項 一方、Linux では関数の冒頭で、処理しない場合は、即リターンするとかやってる。 関数の出口に、goto で例外処理をまとめたりとか MISRA-Cを守らない場合は、逸脱手続きが必要。 トヨタなどは、MISRA-Cで、4/100 しか点数を取れなかったとか聞いたw MISRA-C研究会にも、トヨタのベテランが加入してるのに
807 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 16:46:43.31 ID:dO4rlTbV0.net] 俺社環だけど、これ指摘したらそれは例外処理や自動メモリ管理がないCであって、C#ではそこまで気にする必要ないんじゃね?で終わったな
808 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 16:53:06.40 ID:r8rQ87Qr0.net] 辞書のキーが存
809 名前:在しないのは、例外じゃない。 最初から想定内の事で、予想がつくから 例外はファイルが存在しないとか Go では例外を嫌って、複数の戻り値で、エラー値を返す [] [ここ壊れてます]
810 名前:796 mailto:sage [2020/11/30(月) 16:56:08.66 ID:r8rQ87Qr0.net] 漏れは、戻り値を変数に入れておいて、return は1つだけにしてる if 条件 result = 1 else result = 2 end return result
811 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 17:07:26.72 ID:pPofn0IB0.net] うっかりミスってreturnし忘れてもIDEが警告してくれるから、分岐それぞれでreturnするほうが好き
812 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 17:08:29.73 ID:8S8hZPx60.net] 複数returnとかワンライナーとかはそれこそ正解の無い事だから各々好きにしてくれよ TryGetValueとContainskey+インデクサは正解があると思ってるからこっちはつい反論し続けてしまったが
813 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 17:11:06.92 ID:DAJE5R+zd.net] なぜこのスレはテンプレを見る限り質問スレなのにスレタイにそれを示唆する文言が入っていないのですか?
814 名前:デフォルトの名無しさん [2020/11/30(月) 17:15:26.09 ID:3PLmCTmV0.net] ヌルチェックやりはじめてから一刻も早くreturnすることを考えて書くようになった 階層が深くならないので見やすいし、上の部分だけである条件にあてはまった処理が完結してるので読みやすい
815 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 17:24:24.88 ID:tpJ2df0N0.net] >>798 ね、Cですら"推奨"なのに
816 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 18:17:44.47 ID:a85534SW0.net] >>797 >危険だから、MISRA-C の禁止事項 Mandatory, Required, Advisoryの3段階のうちAdvisoryなので禁止事項ではないね
817 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 18:30:53.38 ID:n+7nNLssM.net] >>801 さすがにMISRAとかが言ってるのはそう言う低レベルな話じゃなくて途中脱出でのリソース開放漏れとかを心配してる なのでC#なら例外とかusingとかを適切に使えばそれほど問題にならない クラス継承させた時のIDisposeのコーディングが面倒なのがたまにキズだけど
818 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 18:52:25.38 ID:+JMSCADPD.net] 議論は然るべきスレでどうぞ ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net https://mevius.5ch.net/test/read.cgi/tech/1469538912/
819 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 19:48:14.13 ID:xZxi3SwM0.net] >>806 またRuby君がいい加減な知識で嘘を垂れ流そうとしてたわけか
820 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 21:11:19.50 ID:X4ikUZ5gM.net] いい加減なのは知識じゃなくて遺伝子じゃねえのか 欠陥品なんだから
821 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 21:11:29.21 ID:a85534SW0.net] 少し調べてみたけどMISRAがsingle returnを推奨する根拠に上げてるIEC 61508には ”subprograms should have a single entry and a single exit only;”と書かれているだけ そこに参考文献としてヨードン/コンスタンティンの「ソフトウェアの構造化設計法」を上げてるが ヨードンやダイクストラが提唱したsingle exitは時代的にも意味が違うのでルール自体の根拠が薄い https://softwareengineering.stackexchange.com/questions/118703/ 1993年出版のCode Completeでも今回のようなケースはmultiple returnが推奨されてるくらいなので single returnはリソースクリーンアップが必要だけど 他の方法がどうしても取れないような特殊なケースでしか意味がないと思って良さそう
822 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 21:15:38.40 ID:tnWbc17e0.net] どうでもよくねw
823 名前:796 mailto:sage [2020/11/30(月) 21:56:17.24 ID:r8rQ87Qr0.net] Cプログラミングの落とし穴 C Traps and Pitfalls, Andrew Koenig, 1989 ここから、Lint, MISRA-C などが出来た
824 名前:デフォルトの名無しさん mailto:sage [2020/11/30(月) 22:27:10.33 ID:n5+DCEBK0.net] c#スレなんですがそれは
825 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 11:25:23.55 ID:ZwYRJuoF0.net] C#とはC++++、つまりCとC++を継承した言語である よってC#スレにおいてCとC++は範囲内 悔しかったら言語名を変えることだな
826 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 11:27:04.96 ID:vLuBExG+d.net] キチガイ
827 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 11:45:19.44 ID:K5BMxGNOM.net] 似た話でelseを省略するな派もたまにいるけど、元はCOBOLの文法ではelse書かないとブロックの区切りが分かりにくいかららしいね
828 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 12:14:20.95 ID:k3h/30i7a.net] そんな流派の人に会ったことないけど、意図はたぶん古典的なぶら下がり問題対策だろうね 俺はこんなミスしたことないしIDEの時代には杞憂だと思うけど if (true) if (false) {} else Console.WriteLine("来ないはず");
829 名前:デフォルトの名無しさん mailto:sage [2020/12/01(火) 14:56:29.62 ID:6hEFZljjM.net] elseを省略しちゃダメって言うのは俺も見たことないな >>818 みたいなのを避けるために { } を省略しちゃダメって言うのは見かけるけど
830 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 00:57:12.14 ID:+AssLSaA0.net] 最近久しぶりに起動したらVSのテキストエディタの「自動メンバー表示」の項目ををカーソルキーで動かすのがとんでもなく重いんだけど俺環?
831 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 01:47:00.65 ID:HjUyDubp0.net] Dispose()しないといけない条件がいまいち分からないんですが、 コンポジションとして参照を保持しているメンバーがDispose()メソッドを持ってたら、Dispose()を実装しないといけない、ていう理解でいいんでしょうか?
832 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 10:14:54.41 ID:ebqkblVHH.net] >>821 たとえばファイルを開いて中身を書き換える処理をFileStreamでするじゃん 開いてる間は他の人やプログラムがそのファイルを使えない状況になるから 使い終わったらちゃんとDisposeで閉じましょうねって事
833 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 12:15:24.35 ID:q6qthHEM0.net] 画像とかメモリ消費量が多いオブジェクトに対して、使い終わったらちゃんとDisposeで破棄しましょうねって事
834 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 12:32:26.40 ID:/5AdVnEZ0.net] >>821 基本はYes 内部でそのメンバをDisposeする仕組みが他にあるなら別に実装しなくても良いが、とは言えIDisposableを実装しておけばそのラップクラスでもusingステートメント使えるから分かりやすいしね IDisposableはコードでDisposeせずともGCによる破棄タイミングでDisposeしてくれるから最悪し忘れても大丈夫だが(GCによるオートDisposeはパフォーマンスが悪いので出来れば避けるべきだが)
835 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 12:51:23.41 ID:VuN4nxV5M.net] >>821 そうとは限らない たとえば外部のAPIを使っていて、使い終わったら必ずある処理を最後に呼ばなければならないという決まりがある場合 たとえばある一連の処理の間は一時ファイルを作り、最後に消す必要がある場合 そういったユースケースをクラスにするならDisposeを実装することになるだろうな Disposeってのはつまり、最後に特定の処理を必ず呼ばなければならないという規約に他ならない
836 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 18:14:26.77 ID:w77bbFvMa.net] >>821 エンジニアは教条主義的に考えてはいけない。 何も難しくない。 オブジェクトが自分のメンバー(フィールドかプロパティ)のDisposeを呼ぶべきタイミングを 自分で判断できるならわざわざDisposeを実装して他人にそれを任せる必要はない。 できないならDisposeを晒して他人にお願いする。 それだけでしょ。 でも「Disposeを呼ぶべきタイミングを自分で判断できる」のはメソッド呼び出しが 完了した後も別のスレッドで動作を続けるタイプのオブジェクトだけなので そうは多くないはずだよね。
837 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 19:47:17.83 ID:o81q9kO+D.net] >>1 > なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#, C♯, C#相談室 Part94 mevius.5ch.net/test/read.cgi/tech/1553075856/ ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net https://mevius.5ch.net/test/read.cgi/tech/1469538912/ テンプレも読めない奴らがする議論は、 もはや議論ではなくマウンティング合戦
838 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 20:41:49.29 ID:w77bbFvMa.net] >>827 君がやってるのもそのマウンティング合戦のうちなのは自覚して欲しいよねw もはや5ch全体がそうだけど特にここは過疎スレなわけで、そんな目くじら立てることないと思うよ 誰か困る奴いるの?w 誰もいないって。
839 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 21:21:31.32 ID:hwkqsjy70.net] 過疎スレでもルールは守れよ
840 名前:デフォルトの名無しさん mailto:sage [2020/12/02(水) 21:58:13.02 ID:4huF2MSH0.net] マウンティング合戦なんか起こってたら 初心者が尻込みして書き込むのをやめてしまったりするわな
841 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 00:08:24.38 ID:AfLSjnCy0.net] winformでwebview2を使ってるんですけどcookieをセットする方法がわからなくて困ってます どなたかわかる方教えて下さい
842 名前:820 mailto:sage [2020/12/03(木) 02:05:41.69 ID:plL1xX/c0.net] みなさんありがとうございます。 そして何かすみませんでした。
843 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 06:58:36.35 ID:HwhU8QlY0.net] >>832 絶対に許さねぇからな 末代まで祝ってやるから覚悟しろよ
844 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 07:07:12.64 ID:UmUyqAch0.net] 今更訊きづらいけどgoto文のラベルの命名ルールって goto maki; hirohisa: System.Console.WriteLine("誰だよ"); goto hell; maki: System.Console.WriteLine("知ってる"); goto hirohisa; hell: System.Console.WriteLine("そうだな"); こんなんでいいの?
845 名前:デフォルトの名無しさん [2020/12/03(木) 09:22:44.20 ID:Mqqeu2dm0.net] >>831 webView2.CoreWebView2.CookieManagerはどう?
846 名前:デフォルトの名無しさん mailto:sage [2020/12/03(木) 16:26:09.15 ID:UmUyqAch0.net] webview2とCEFSharpのどっちがいいのか
847 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 01:59:10.27 ID:/XRPGQMq0.net] IDisposable obj = otherObj; using(obj){ obj = anotherObj; }
848 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 03:16:37.86 ID:yDsXPkFS0.net] >>837 これビルド通るの? >オブジェクトは、using ブロック内では読み取り専用です。変更したり再割り当てしたりすることはできません。
849 名前:デフォルトの名無しさん [2020/12/04(金) 16:12:00.25 ID:ZsgfFad40.net] nugetからインストールしたライブラリですが 別のパソコンから同じプロジェクトを開けるとusing句がエラーになってしまい ライブラリを一度アンインストール→インストールし直さなくてはなりません 複数のパソコンで同一プロジェクトを編集するときnugetは使えないのでしょうか
850 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 16:16:23.76 ID:0hbyHhKrd.net] nugetの修復みたいなことすれば足りないもの探して再DLしてくれるよ
851 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 16:31:08.42 ID:e5C89TYX0.net] ”別のパソコンから”ってもしかしてネットワーク共有して直接開いてるの?
852 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 16:55:03.48 ID:ot5BaqCCa.net] >>839 COMじゃないならライブラリのアセンブリをプロジェクトのフォルダ内に置いて それを参照すれば一応できるんじゃないの? やったことないから知らんけど
853 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 16:55:13.19 ID:edWfS5jb0.net] >>839 nugetのライブラリって各PCっていうかVS毎に管理しているから、ソースを別の場所に 持っていったらその環境で指定されているライブラリを拾わないとダメなんじゃ なかったっけ? >>840 が言ってるみたいなことがnugetの管理ツールだかメニューにあったような
854 名前:デフォルトの名無しさん [2020/12/04(金) 17:04:36.37 ID:ZLeuk8KN0.net] >>839 チキンマックナゲットは セールのときは5個入り200円だから そのときに買うのがベストだと思うよ。
855 名前:デフォルトの名無しさん [2020/12/04(金) 17:05:31.23 ID:ZLeuk8KN0.net] ソースは必ずバーベキューを。 バーベキュー以外は糞まずくハズレ。
856 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 17:25:30.91 ID:0hbyHhKrd.net] CIでビルドするとき、確実にnugetの修復が必要になるから構築したことあるならわかるはず コマンドラインからnugetにsln渡してやればDLしてくれる つうかオンラインからいつでも好きなversionを落としてこれるのがnuget等ライブラリ管理ソフトの強みなんだからプロジェクト内にファイルなんて置いたらメリットが減る 外部ライブラリを編集しないのにバージョン管理下においてプロジェクトを肥大化させる意味がない
857 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 17:50:19.19 ID:EWRKs4L00.net] Nugetってmpnと比べて なんでなんなにトラブルの?
858 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 17:56:44.09 ID:vwTMj3ZS0.net] mpn…なんな…?
859 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 18:37:31.14 ID:4RJVpdFOr.net] わりっ!
860 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 18:50:13.35 ID:V5csDP6P0.net] dotnet restoreすればいいけどdotnet buildとかやれば勝手にやってくれる
861 名前:デフォルトの名無しさん mailto:sage [2020/12/04(金) 18:57:48.00 ID:L60rBM570.net] >>838 適当なクラスに置き換え
862 名前:スらビルドできますよ。 [] [ここ壊れてます]
863 名前:デフォルトの名無しさん [2020/12/04(金) 22:05:08.94 ID:9AUT9QCq0.net] 新潟から週2回東京に出勤、サイボウズの複業採用社員に聞く複業ライフのリアル。 https://www.businessinsider.jp/post-166126 兼業でフリーライター、サイボウズ社員・明石悠佳に学ぶパラレルワーク術 https://www.wwdjapan.com/articles/752575 「複業を解禁しなければ人も企業も成長しない」複業全面OKのサイボウズ社長と実践社員の本音対談 https://www.businessinsider.jp/post-33893 育休は最長6年、副業もOK! サイボウズはなぜ「100人100通りの人事制度」を作ったのか https://logmi.jp/business/articles/50252 超異例「週休4日制」の導入をSMBC日興証券社長が決めた理由 https://diamond.jp/articles/-/223832 週休3日制をさらに進めた週休4日制 https://www.k-society.com/recruit/why-four-days-off-a-week/ 採用情報(週休3日制を超えた週休4日制の正社員求人 | 副業OK https://www.k-society.com/recruit/ 2020年4月より「週休3日制」を導入。テックカンパニー化に向け、好循環を生み出すエンジニアリング組織へ https://prtimes.jp/main/html/rd/p/000000096.000016431.html
864 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 09:07:58.88 ID:7mh3qGhb0.net] ライブラリの話ですみません SevenZipSharpにてSolid圧縮ファイルを[STAThread](FormやWPFのメインスレッド)にてExtractArchiveするとフリーズしてしまうのは私だけでしょうか? 別スレッドやTask化したり、そもそもSTAThreadが使われないConsoleアプリでは同期でも全く正常にSolid圧縮も解凍されるのですが
865 名前:デフォルトの名無しさん [2020/12/05(土) 10:37:20.60 ID:kSej4vti0.net] List<List<List<int>>>→List<List<int>> List<List<int>>→List<int> にする方法ってLINQでは不可能ですか? 並び順は変えないとします。 for使うしかないですか?
866 名前:デフォルトの名無しさん [2020/12/05(土) 10:38:07.01 ID:kSej4vti0.net] 後者が {1,2,4}{3,9,8}→1,2,4,3,9,8って感じ
867 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 11:00:35.05 ID:DXfBmITDd.net] >>854 var result = iList.SelectMany( i => i )
868 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 11:12:57.38 ID:+y18mv1b0.net] ぐぐればすぐ見つかるわよ
869 名前:デフォルトの名無しさん [2020/12/05(土) 11:31:13.29 ID:CCPlFK06M.net] >>857 なぐるわよ
870 名前:デフォルトの名無しさん [2020/12/05(土) 11:42:56.05 ID:kSej4vti0.net] >>856 順番変わりますか?
871 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 11:52:38.53 ID:qYbtudQ20.net] TOARRAYのADDRANGEだよさっさとしろよグズ
872 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 12:31:48.70 ID:fwzFFaeU0.net] >>859 多分変わらないけど、やってみて。
873 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 12:39:27.19 ID:qL2nBB2w0.net] >>853 それは本来1秒とかで終わるはずがいつまで経っても終わらないってこと? まあUIスレッドでやることじゃないからTask使ってればいいよ
874 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 13:26:31.39 ID:UBJq3HVh0.net] nlogで入れた.configが読み専になったから、しょうがなくありものを先に置いといてnugetしなおしたらなんとかなった
875 名前:デフォルトの名無しさん mailto:sage [2020/12/05(土) 14:02:33.08 ID:cSIoQ91v0.net] >>859 仮に駄目なら自分で拡張メソッド書けばいいだけだよ 数分で書ける程度のもの
876 名前:デフォルトの名無しさん [2020/12/05(土) 15:30:56.23 ID:OcFAL7DuM.net] 手元では大丈夫でもリリースした先でダメでした、というオチがたのしそう
877 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 10:13:12.99 ID:a+vxG21/r.net] c#9.0でガラッと変わるので皆さん頑張ってお勉強してください
878 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 10:18:38.00 ID:a+vxG21/r.net] C#の思想が塗り替えられています
879 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 10:20:10.96 ID:xxrxxdsn0.net] たとえば?
880 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 10:26:12.41 ID:a+vxG21/r.net] recordです 他の言語から輸入した超便利機能です
881 名前:デフォルトの名無しさん [2020/12/06(日) 11:07:39.97 ID:GAck2gc00.net] recordは便利だけど勉強しなおさなきゃいけないレベルでもない 新しいこといくつか覚えればいいだけ
882 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 11:11:11.75 ID:HPmVPA7T0.net] expression blocksあたりが来たらC#はC#とは違う別のなにかになりそうな勢いだな
883 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 11:38:38.75 ID:q4vfNSTS0.net] recordって別にただのstructだろ? 比較の仕方が違うだけで
884 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 11:42:51.47 ID:bQe6lBYR0.net] 参照型のイコールの動作がわかんなかった
885 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 11:51:20.42 ID:oEu15NIyd.net] >>872 根本的に勘違いしてるぞお前 record はstructじゃねーよ
886 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 12:22:22.88 ID:3Mg1tJ4o0.net] >>874 KWSK
887 名前:デフォルトの名無しさん [2020/12/06(日) 12:41:32.76 ID:GAck2gc00.net] https://docs.microsoft.com/ja-jp/dotnet/csharp/whats-new/csharp-9#record-types レコード型を使用すると、変更できない参照型を .NET で簡単に作成できます。 従来、.NET 型は、参照型 (クラス型と匿名型を含む) と値型 (構造体とタプルを含む) に大別されています。
888 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 12:56:19.96 ID:E6YSEnmp0.net] つまり、リードオンリーで参照するみたいな感じか?
889 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:08:05.96 ID:e5/goOFG0.net] record自体に動的な参照型は持てない感じ?
890 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:08:42.54 ID:a+vxG21/r.net] 多分今後recordを使ってないコードを見るとイライラするようになるでしょう 今すぐにじゃなくてもそのうち確実に 古いコードは全部打ち捨てられるでしょう ただMVVM命の人には関係ないでしょう
891 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:13:29.20 ID:a+vxG21/r.net] そして普通にprivateを使わなくなる可能性もあります C#の初期の思想が徐々に塗り替えられ捨てられていきます
892 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:18:25.99 ID:3Mg1tJ4o0.net] 既にキマイラだよなぁ
893 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:23:50.76 ID:a+vxG21/r.net] どうせrecordで既存のコード捨てられるから言語ごと最初から作り直したほうが良いかもしれない 最初から作り直せるとしたらデリゲートはなくなるのかどうか C#+F#のような言語ができたら非常に面白い
894 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:30:56.71 ID:e5/goOFG0.net] 作成後に変更できないって言ってるのに比較なんてする必要あるの? ってのが疑問
895 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:37:19.87 ID:a+vxG21/r.net] Listから特定のインスタンス削りたい場合で位置がわからなければ比較するしかないでしょう
896 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 13:40:30.34 ID:e5/goOFG0.net] そういうの言語の機能使うのは俺的にNG doubleのイコール比較は誤差入るのか?
897 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 14:29:36.48 ID:a+vxG21/r.net] Linq使うにせよなんにせよ比較は使う 初心者以下のレベルの話
898 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 14:57:26.26 ID:E6YSEnmp0.net] ん?レコードってのは何が嬉しいの?
899 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 15:11:34.04 ID:3Mg1tJ4o0.net] PASCALとかALGOLにあった奴の 先祖帰りかなぁ?
900 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 15:15:02.40 ID:wbXowyVSa.net] 亡き飼い主の声が聞こえる
901 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 16:04:31.40 ID:+WMwzRY70.net] 変更できない参照型って言うのはそれなりに使えるとは思うがなんでrecordなんて名前なんだ?
902 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 16:16:48.48 ID:wcxECur/M.net] OCaml由来
903 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 16:19:27.32 ID:oEu15NIyd.net] >>890 Javaがrecord を採用したから 最初はdataだった
904 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 16:20:25.26 ID:oEu15NIyd.net] >>875 structにもrecord つけられるようにする対応はC#10.0以降
905 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 17:02:01.60 ID:3Mg1tJ4o0.net] >>893 THX
906 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 17:09:37.16 ID:L/mxF/rBa.net] >>876 このスレのレスだけ見てたらそんなの何が嬉しいんだと思ったが、 なるほどそれなりに便利そう ただ、MSのドキュメントに列挙されてる - 値ベースの等価比較のためのメソッド - GetHashCode() のオーバーライド - コピー メンバーとクローン メンバー これらが自動実装されるのは確かに嬉しいが、これを実現するために何でイミュータブルにする 必要があるのかいまいちよく分からない
907 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 17:40:09.94 ID:R+T9okNaa.net] エミュー食べる必要は無いからなあ
908 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:18:00.03 ID:4CZ8QguV0.net] むしろimutableなものが欲しい、からスタートした機能
909 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:29:39.04 ID:ozrCEgJEd.net] 普通に作ってる分にはいらんわな
910 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:31:30.50 ID:Cw8pwO+X0.net] 変なところで値書き換えるやつがいるから、それを型として禁止したってだけだと思ってた
911 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:43:23.29 ID:e5/goOFG0.net] doubleの比較は何? また、c#のウンコみたいなイプシロン使って 同値判定してんの?
912 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:49:40.35 ID:Cw8pwO+X0.net] 勘違いしてた。わざわざ書いてたいつものコードを書かなくて済むようになるのがメリットか ところで、「record Person」の例で同姓同名の別人を区別したくなったらどうすればいいのん?
913 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 18:55:24.02 ID:e5/goOFG0.net] 大丈夫だ それはDNAListが異なるので判別できる
914 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:03:18.97 ID:atqZF9NJ0.net] 「Effective 何々」とかによく書いてある、3種の神器だろ Ruby なら宇宙船演算子、<=> で比較関数を再定義する。 ハッシュ関数を再定義する。 p 関数を再定義する。 こういう謎のようなインスタンスID ではなく、分かりやすい表示を再定義する class A end p a = A.new #=> #<A:0x00000000031c2f98>
915 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:10:34.23 ID:a+vxG21/r.net] recordはプロパティが基本publicになった 今まではprivateで隠蔽されていて外部から変更されなかった これはカプセル化なんだけどこれがpublicになっただけじゃ意図しない変更をされる場合がある 非常に困る だいたいのケースでは参照されても変更されなければ問題がないのでイミュータブルにするじゃねーかなと
916 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:16:53.81 ID:4CZ8QguV0.net] だから順番が逆 immutableな型が欲しい→immutableなんだからpublicでok
917 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:18:27.50 ID:a+vxG21/r.net] 世の中もイミュータブルが求められていると言うのもその通り ValueObjectはいったん値を設定したら変えない 値を変えたくなったら新しいValueObjectをnewして挿げ替える
918 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:23:32.30 ID:iGfaGXq00.net] 別にrecord = イミューダブルじゃないからね?
919 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:23:45.93 ID:iGfaGXq00.net] イミュータブル
920 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:29:20.15 ID:a+vxG21/r.net] 他の簡易な言語などでもデフォルトはprivateじゃなくpublic イミュータブルかどうかは別としてデフォがpublicが流行り
921 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:48:28.39 ID:a+vxG21/r.net] どちらにせよ C#は9.0で大変身した
922 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 19:50:57.76 ID:+WMwzRY70.net] >>901 社員番号とかを追加しときゃいいだろ
923 名前:デフォルトの名無しさん mailto:sage [2020/12/06(日) 20:39:59.39 ID:5/KOVLSv0.net] >>901 それはべつにrecordで初めて発生する問題じゃないいな。 識別できる情報が足りないならそれを追加しなきゃならんというだけ。
924 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 02:42:51.99 ID:FMWF8Lcl0.net] 9に限らず今までのversion upはどれも影響度が大きい 8のnullable、7のtuple、6の自動実装プロパティ、5の非同期、4のdynamic、3のlinq 他にもいっぱいあるけど どれも現状のC#にとって超重要な内容
925 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 03:27:02.89 ID:1hmL4SHh0.net] 10年ぶりにwindowsアプリ作りたいんだけど最近は何で作るのが主流ですか? まだwinformsだったりする?
926 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 03:34:00.01 ID:obD3rptW0.net] 結局WinFormsかWPF
927 名前:デフォルトの名無しさん [2020/12/07(月) 06:24:24.79 ID:AjKIX7D20.net] バージョン9が話題らしいですがc#のバージョンてどこ見りゃわかるの?
928 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 07:20:40.19 ID:VGjx4xxr0.net] >>916 VS2019なら、ソースの適当なとこに、 #error version って書いて、versionにマウスカーソル合わせると表示される。 あと、9かそうでないかの判断だけなら、setの代わりにinit使ったプロパティが認識されるなら9。 int Hage{get; init;}
929 名前:デフォルトの名無しさん [2020/12/07(月) 07:27:50.50 ID:AjKIX7D20.net] >>917 ありがたう。言語バージョン7.3て書いてあった。 保守的な現場だから簡単にバージョンあげたりはしないのだろうな。 recordか。仕事で使ってみたかった。
930 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 07:33:11.23 ID:jipj8SHtM.net] >>918 お大事に。
931 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 07:47:15.09 ID:B8tartMNM.net] Record型って最初聞いた時に、データベースのレコードを突っ込む型と思ってたわ… 更新できないってことは 中身書き換えてEFに投げてデータベース更新することができないってことだよな。 俺もいまいち使い道がわからんわ。 どういうシステムで使うんだろ。
932 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 09:03:38.47 ID:qwdGv73V0.net] 多値からなる識別子とか
933 名前:デフォルトの名無しさん [2020/12/07(月) 09:15:00.72 ID:5xO4uxgk0.net] >>918 .NET Frameworkだと7までしか使えないんじゃなかったかな 8も設定すれば使えるけど一部機能に制限あったはず
934 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 10:31:45.42 ID:mtQ69pRI0.net] .NET Core〜.NET5でWindows用アプリをビルドするとexeやdllやjsonが生成されてそれら全て必要なようですが、.NET Frameworkのようなスマートな出力には出来ないんでしょうか? 丸々exe一本にしたい訳ではなくライブラリは別にしたいので単一ファイル化とはちょっと違うのですが
935 名前:デフォルトの名無しさん mailto:sage [2020/12/07(月) 12:22:21.16 ID:obD3rptW0.net] Framework dependent
936 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 00:25:30.96 ID:8YwC0Fuu0.net] >>920 DDDとかValueObjectとかに関わってないと分からんかもな
937 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 08:36:58.75 ID:qADZolAoM.net] >>925 そのキーワードでググってみた とにかく Record型ってのはValueObjectを作ることを目的としたクラスであって DBから取得したレコードを突っ込むクラスではないのね https://www.infoq.com/jp/articles/DDD_ValueObject_0325/ …じゃあValueObject型って名前にしろよ!
938 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 08:59:31.84 ID:QL1pojox0.net] >>926 DBのレコード突っ込む型とか、自分で言ってて頭悪いと思わないのかな
939 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 09:04:14.01 ID:ThBsNynLd.net] 名称なんて年単位で議論してたんだから提案あるならしてくりゃ良かったのに
940 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 09:08:19.56 ID:qADZolAoM.net] >>927 我ながらアホっぽいな しかしレコード型と言われて、はいはいレコード型ねって理解できる奴いるのかね。
941 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 09:25:23.43 ID:WA2T93A40.net] レコードなんだから再生できても録音できないのは当たり前だろ
942 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 09:30:24.02 ID:qADZolAoM.net] 確かにそうだな データベースのレコードを更新するってよく考えたら変な言い回しなんだな
943 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 09:44:59.64 ID:0unpAQOY0.net] >>929 新しいキーワードや概念が出てきたなら名前から安易に決めつけたりせずにどんなものか調べるのが当たり前の行動でないの?
944 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 11:08:44.41 ID:CR6HP8eG0.net] DVD-ROM型
945 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 11:09:42.33 ID:+Hjnd8Yr0.net] Spanで返してくれるHtmlパーサーってある? そもそも標準のパーサーってあったっけ jsと同じ感覚でquerySelectorとか使えると良いんだけど
946 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 12:04:51.25 ID:GTdYvNE8a.net] >>925 プロパティーの型はイミュータブルなのが好ましいのは誰でも分かると思う。
947 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 12:20:44.27 ID:MydVvHcuM.net] >>930-931 ネタだと思うがマジで言ってたら単なる老害だぞw レコードは記録 一般でもコースレコードを更新しましたとか言うだろ
948 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 12:27:24.23 ID:QPlJJaQdr.net] >>932 漢字文化圏では字面から意味がだいたい分かることに甘えたやつが多い
949 名前:デフォルトの名無しさん [2020/12/08(火) 12:35:05.35 ID:f+ofKIWhM.net] 全く関係ないが昔ログインの事を略してログと呼んでいる奴がいて それに気が付くまで話が全く理解できなかった
950 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 12:42:21.79 ID:Jz5aG9hcM.net] ログオンしないの?
951 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 12:57:17.36 ID:UAWkpbVf0.net] 爪折ったカセットテープ型
952 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 13:07:42.70 ID:u9TUBJ18p.net] 平和守る名前さ〜♪
953 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 13:23:08.32 ID:v7gdDVm90.net] ダグオンwww
954 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 14:49:14.43 ID:qADZolAoM.net] >>932 おっしゃる通りだが、名前にもう少し情報をいれてほしいなあ こんなわかりにくい名前つけていいのか 英語圏の人はピンとくるのかな
955 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 15:12:08.46 ID:L/fvSJtl0.net] >>936 「更新」の意味を古い記録を新しい記録で差し替えるという意味にとるか 古い記録自体を変更して最新状態にするという意味にとるかの違い 前者はイミュータブルで後者はミュータブル
956 名前:デフォルトの名無しさん [2020/12/08(火) 15:23:20.07 ID:0ctxmOmz0.net] >>923 必要ないのも混ざってるよ
957 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 15:29:38.69 ID:bfWpuCm70.net] >>944 そういうどっちにも取れるような名前を付けていいんか? って話じゃね? 少なくともデータベースやPascal系言語ではレコードの内容を書き換えられるんだし
958 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 16:14:06.02 ID:KeS4W5RD0.net] くそコード書いといて えー読めないのみたいな顔するやつ死ね
959 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 16:43:14.25 ID:v7gdDVm90.net] だからrecord 自体は別にイミュータブルでも何でもないんだってば
960 名前:デフォルトの名無しさん [2020/12/08(火) 19:03:10.97 ID:f+ofKIWhM.net] デビュー前にレコード大賞を盗った場合はどうなるの?
961 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 19:32:57.86 ID:MwY7tEEj0.net] tmpとかもやめて欲しいな。
962 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 19:33:13.64 ID:y8tTQ7tr0.net] 質問スレで平日の昼間からずっと雑談づくしってお前らそういう仕事なの?
963 名前:デフォルトの名無しさん mailto:sage [2020/12/08(火) 19:54:46.60 ID:+Hjnd8Yr0.net] >>951 このご時世で昼間に家からカキコできないほうが終わってる定期
964 名前:デフォルトの名無しさん mailto:sage [2020/12/09(水) 02:33:30.28 ID:WuZTb4kZM.net] なにごちゃごちゃ抜かしとるんじゃ我ェ!?
965 名前:デフォルトの名無しさん [2020/12/11(金) 09:52:21.87 ID:xnlTyNu60.net] エンディアンのバイトスワップめんどくせー
966 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 11:23:36.63 ID:RmJd06BU0.net] あるウェブサイトにWebrequestを使ってアクセスしようとしたところ、 「ご使用のブラウザはCookieまたはJavaScriptの設定が無効です」 と出てウェブブラウザでは表示されるページが取得できませんでした。 webrequestは今まで何度も使っていますがこんなことになったのは初めてです。 ↓のようにどこの解説サイトでも掲載されているような普通のやり方でやっているだけなのですが、回避する方法はあるのでしょうか? CookieContainer myCC = new CookieContainer() HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.CookieContainer = myCC:
967 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:09:30.98 ID:RmJd06BU0.net] すいません、自己解決しました
968 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:28:58.18 ID:e2z+8YzhM.net] プロジェクト内で定義された派生クラスを全てリストする方法ってあるでしょうか? 例えば動物という基底クラスがあり、 派生クラスに猫、犬と2つ作ったとします。 基底クラスには鳴き声メソッドがあるとします。 猫の鳴き声メソッドは「ニャーニャー」と返します。 ある関数で「ワンワン」という文字列が来た際に プロジェクト内の動物派生クラスを個別に生成して鳴き声メソッドを叩き、 ワンワンと鳴く派生クラスを特定する逆引きのような処理をしたいです。 if文で全派生クラスを書けばいいですが、派生クラスはガンガン増えていくので、派生クラスを定義するたびににそのif文をメンテするのはメンテ漏れのバグのリスクがあるので プロジェクト内に現在定義された動物派生クラスを全部取ってくる事が出来れば、それをグルグル回せばメンテナンス不要のコードにできるのですが
969 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:46:55.66 ID:VHLzC15hd.net] SourceGeneratorならできるだろうけど、何の情報もなしにclass探すのは無理じゃない? テーブル内のclassに対して全部処理するとかはできるだろうから編集箇所は最小限で済ませられるけど
970 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 12:49:19.99 ID:9hZE0nsxd.net] >>957 リフレクションで頑張れば行けるかもね
971 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 13:03:11.90 ID:exUCYAAha.net] >>957 動的にサブクラスを列挙するのはたぶん無理じゃないの? public abstract class Animal { public Animal(Animal a) { ... } } こういう風にAnimalのコンストラクタでthisを渡すことを強制しておけば 少なくともインスタンス化されたものは把握できるね。
972 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 14:37:47.39 ID:m/dnIqsS0.net] typeof(Animal).Assembly.GetTypes().Where(_type => _type.IsSubclassOf(typeof(Animal))) 型の列挙自体はこんなんでできるけど インスタンスどうするの?っていう 全部の型にpublicな引数なしコンストラクタが必ずありますならなんとかなるけど
973 名前:デフォルトの名無しさん [2020/12/11(金) 15:40:59.87 ID:69jKb/QY0.net] そういやクラスに、静的に実行される静的イニシャライザを書けるようにしてくれたらいいのにと思うことあるな
974 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 16:53:05.38 ID:CVvHA/5PM.net] >>962 書けるぞ
975 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 18:41:57.69 ID:bOY22DN70.net] >>960 それthisじゃない。
976 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 19:31:50.50 ID:exUCYAAha.net] >>964 意味が分からんけど public class Cat:Animal { Cat():base(this){ ... } } これはNGみたいだね。 別にこれで良かったのか public abstract class Animal { private static List<Type> Animals = new List<Type>(); public Animal() { var t = this.GetType(); Animals.Remove(t); Animals.Add(t); } }
977 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 19:37:25.05 ID:PS9oWtr00.net] >>961 自分のインスタンスを返す静的メソッドって作れないのか それを親クラスかインターフェイスで規定しておけばよいんじゃ つかわざわざインスタンス生成しなくても、鳴き声が自分かどうか判定する静的メソッドで事足りる気がするな
978 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 20:32:27.16 ID:ZS/vCbaU0.net] >>941-942 渋谷で超勇者展始まったぞ!
979 名前:デフォルトの名無しさん [2020/12/11(金) 21:16:51.65 ID:69jKb/QY0.net] >>963 ま、まじで? なんて機能名でググれば出てきそう?
980 名前:デフォルトの名無しさん mailto:sage [2020/12/11(金) 21:34:43.36 ID:bOExnmUya.net] 「C# 静的イニシャライザ」で検索して普通に引っかかるでしょ イニシャライザ/コンストラクタと呼び方が異なるだけで
981 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:19:21.24 ID:1g8P/X2hM.net] c#でRSSリーダー作れましゅか?
982 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 02:27:42.98 ID:mhM78eSV0.net] もちろん作れるさ
983 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 06:26:58.36 ID:TsdjEAD7M.net] c#では作れないものはありますか?
984 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 07:37:48.18 ID:18RrlrES0.net] >>966 全ての派生クラスで同じ名前の静的メソッドやプロパティを強要できるならそれでよさそうだけど出来なくね?
985 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 09:06:36.69 ID:unG5NNsQ0.net] >>973 静的メソッドって継承できないのか。知らなかったぜ C#8.0でインターフェイスに定義できるようになったのかな
986 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 10:08:37.85 ID:3XNF+7/F0.net] >>972 お前の能力を超えたソフト
987 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 10:11:14.52 ID:7La4X7B8a.net] ネイティブDLLが作れるようになってくれないかな
988 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 10:21:46.03 ID:BQqdDV6m0.net] >>972 カーネルドライバ
989 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 10:26:06.52 ID:QKeUnYpp0.net] >>972 完全なマシン語にコンパイルされるプログラム これでないとOSカーネルとかデバイスドライバとか作れない
990 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 11:14:15.79 ID:KcA96kkp0.net] マシン語にしたバイナリを出力するアプリをC#で作ればなんでもできることになる
991 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 14:02:37.13 ID:U1NW+seS0.net] nativeaot(-llvm)?(旧corert)ってのがあってぇ…
992 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 14:07:55.69 ID:3XNF+7/F0.net] .NETNative をちゃんと作ればC#でもネイティブコードにコンパイルできるだろうし、そもそも性能がたいして必要ないならインタプリタでもドライバを書くことはできるだろうけどGCに依存してる言語はタイミングが読めないから難しいわな
993 名前:デフォルトの名無しさん mailto:sage [2020/12/13(日) 14:47:32.03 ID:E31xy0lw0.net] C++/CLI復権してくれたらなぁ。まずないとは思うが。
994 名前:デフォルトの名無しさん [2020/12/14(月) 19:47:40.61 ID:EY+baBGY0.net] WEBの写真ダウンロード処理をしてるのですが、出来るものと出来にくいものがあります。 出来にくいもの(EDGEブラウザで開けるとすぐ見れるがダウンロードでは20秒くらいかかる) https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg 出来るもの(すぐにダウンロードできる。EDGEブラウザでもすぐ見れる) https://i.imgur.com/bnUR6en.png System.Net.WebClient client = new System.Net.WebClient(); client.DownloadFile("https://i.dailymail.co.uk/i/pix/2013/05/09/article-2321812-19B162BA000005DC-124_634x449.jpg", @"D:\tmp.jpg"); こういうのはサーバー側でアクセス種類がブラウザかプログラムか見分けられて 対策されてるのでしょうか?
995 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 20:29:19.80 ID:w+atsEVh0.net] 出来る出来ないなら、サーバー側でUserAgentやクッキーやその他ヘッダを見てブロックするというのは普遍的な手法だからよくある事だけど 出来るものと出来にくいものはよくわからないが、一応ダウンロード前にこれ挟んで試してみるといい client.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36");
996 名前:デフォルトの名無しさん mailto:sage [2020/12/14(月) 21:37:41.18 ID:A7r1gxtPa.net] ブラウザでの表示が早いのはキャッシュされてるだけだと思うけど・・・・ キャッシュ全クリアしても本当にすぐ見れる?
997 名前:デフォルトの名無しさん [2020/12/15(火) 10:35:58.18 ID:md2wlUIm0.net] >>984 やってみましたら止まらずすぐにダウンロードできるようになりました。 サーバー側でUSERAGENTが入ってるか入ってないかでプログラムアクセスかどうかの選り分けをして USERAGENTが空のものには20秒くらいわざとジラシが入ってるようです。 一括ダウンローダーとかの対策かなんかかもしれませんね。 ありがとうございました。
998 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 12:40:58.94 ID:uedfi1MA0.net] UA偽装とかリファラ偽装とか懐かしいワードを思い出した
999 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 13:14:41.01 ID:fP0YYSyi0.net] >>986 ちなみにChromeはかなり小まめにアプデ入る訳だが Botは往々にして"Chrome/87.0.4280.88"の部分が古いままという特徴があって最新版一つ手前よりも前のバージョンだと弾くって言う対策してる鯖
1000 名前:もある まぁここまで対策してくるのは稀だから放置でも大方問題にはならないが、インスコフォルダやレジストリや最悪webなどからバーション取得する方法あった気がするから暇なら最新版のUAにするロジックも入れておいた方がいい [] [ここ壊れてます]
1001 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 21:23:57.67 ID:2D6p9tgnM.net] 規模のでかいプロジェクトを開発してるといつもどのファイルを開いてるのかわからなくなったり、目的のファイルが見つからなかったり大変なんですけどどうしたらいいですか? 目的のフォルダに対してブックマーク的なものが設定できたりしたら迷子にならなくてすむんですがそんなのないですか?
1002 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 23:06:40.58 ID:fP0YYSyi0.net] ref readonly変数のstructのメンバ関数呼ぶと防御コピーが発生するのは仕様? refだけなら防御コピー発生しないのは確認できたんだけど
1003 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 23:23:22.02 ID:j+VqSr9F0.net] >>989 フォルダじゃなくてファイルだけどvisual studioならブックマークあるよ ただ、そもそも大規模になっても迷子にはあんまならないかな?
1004 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 23:26:47.80 ID:OK3TNwGLM.net] >>991 クソみたいな設計だから困ってたんですよ ありがとうございます
1005 名前:デフォルトの名無しさん mailto:sage [2020/12/15(火) 23:32:36.78 ID:korWFWn50.net] >>989 同じ事思ってる。 VSだと開いてるファイルのタブに、プロジェクト毎に色分けする拡張入れてる。 あとソリューションエクスプローラーを複数開いたりしてる。
1006 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 01:40:22.65 ID:FCFqtT9K0.net] >>993 複数開くってどうやるの?
1007 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 03:17:07.88 ID:eAMqD84A0.net] 共通プラットフォームの .NET 5 が出てきたってことは、.net standard はもう次バージョンは出ないんですか?
1008 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 03:21:40.46 ID:4YU+JB8/0.net] うん
1009 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 07:09:48.69 ID:ksVkXCtR0.net] >>995 誰も新しい方使わなかったらまだワンチャンあるかも?
1010 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 11:31:10.25 ID:TSvQ057dM.net] 次スレ立てた ふらっと C#,C♯,C#(初心者用) Part149 https://mevius.5ch.net/test/read.cgi/tech/1608085775/
1011 名前:デフォルトの名無しさん mailto:sage [2020/12/16(水) 20:14:15.21 ID:p7rmX8ox0.net] >>990 そりゃメソッドは内部でメンバを書き換えてるかもしれないからな readonlyなメソッドならコピーされない
1012 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 20:00:41.21 ID:Z1ozW/Gv0.net] >>998 スレたて乙
1013 名前:デフォルトの名無しさん mailto:sage [2020/12/17(木) 20:54:36.61 ID:czJEN8EN0.net] 埋め
1014 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 204日 0時間 25分 55秒
1015 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています