[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/23 02:37 / Filesize : 278 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part148



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

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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<278KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef