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