ふらっと C#,C♯,C#(初心者用) Part148at TECH
ふらっと C#,C♯,C#(初心者用) Part148 - 暇つぶし2ch930:デフォルトの名無しさん
20/12/07 07:33:11.23 jipj8SHtM.net
>>918
お大事に。

931:デフォルトの名無しさん
20/12/07 07:47:15.09 B8tartMNM.net
Record型って最初聞いた時に、データベースのレコードを突っ込む型と思ってたわ…
更新できないってことは
中身書き換えてEFに投げてデータベース更新することができないってことだよな。
俺もいまいち使い道がわからんわ。
どういうシステムで使うんだろ。

932:デフォルトの名無しさん
20/12/07 09:03:38.47 qwdGv73V0.net
多値からなる識別子とか

933:デフォルトの名無しさん
20/12/07 09:15:00.72 5xO4uxgk0.net
>>918
.NET Frameworkだと7までしか使えないんじゃなかったかな
8も設定すれば使えるけど一部機能に制限あったはず

934:デフォルトの名無しさん
20/12/07 10:31:45.42 mtQ69pRI0.net
.NET Core~.NET5でWindows用アプリをビルドするとexeやdllやjsonが生成されてそれら全て必要なようですが、.NET Frameworkのようなスマートな出力には出来ないんでしょうか?
丸々exe一本にしたい訳ではなくライブラリは別にしたいので単一ファイル化とはちょっと違うのですが

935:デフォルトの名無しさん
20/12/07 12:22:21.16 obD3rptW0.net
Framework dependent

936:デフォルトの名無しさん
20/12/08 00:25:30.96 8YwC0Fuu0.net
>>920
DDDとかValueObjectとかに関わってないと分からんかもな

937:デフォルトの名無しさん
20/12/08 08:36:58.75 qADZolAoM.net
>>925
そのキーワードでググってみた
とにかく
Record型ってのはValueObjectを作ることを目的としたクラスであって
DBから取得したレコードを突っ込むクラスではないのね
URLリンク(www.infoq.com)
…じゃあValueObject型って名前にしろよ!

938:デフォルトの名無しさん
20/12/08 08:59:31.84 QL1pojox0.net
>>926
DBのレコード突っ込む型とか、自分で言ってて頭悪いと思わないのかな

939:デフォルトの名無しさん
20/12/08 09:04:14.01 ThBsNynLd.net
名称なんて年単位で議論してたんだから提案あるならしてくりゃ良かったのに

940:デフォルトの名無しさん
20/12/08 09:08:19.56 qADZolAoM.net
>>927
我ながらアホっぽいな
しかしレコード型と言われて、はいはいレコード型ねって理解できる奴いるのかね。

941:デフォルトの名無しさん
20/12/08 09:25:23.43 WA2T93A40.net
レコードなんだから再生できても録音できないのは当たり前だろ

942:デフォルトの名無しさん
20/12/08 09:30:24.02 qADZolAoM.net
確かにそうだな
データベースのレコードを更新するってよく考えたら変な言い回しなんだな

943:デフォルトの名無しさん
20/12/08 09:44:59.64 0unpAQOY0.net
>>929
新しいキーワードや概念が出てきたなら名前から安易に決めつけたりせずにどんなものか調べるのが当たり前の行動でないの?

944:デフォルトの名無しさん
20/12/08 11:08:44.41 CR6HP8eG0.net
DVD-ROM型

945:デフォルトの名無しさん
20/12/08 11:09:42.33 +Hjnd8Yr0.net
Spanで返してくれるHtmlパーサーってある?
そもそも標準のパーサーってあったっけ
jsと同じ感覚でquerySelectorとか使えると良いんだけど

946:デフォルトの名無しさん
20/12/08 12:04:51.25 GTdYvNE8a.net
>>925
プロパティーの型はイミュータブルなのが好ましいのは誰でも分かると思う。

947:デフォルトの名無しさん
20/12/08 12:20:44.27 MydVvHcuM.net
>>930-931
ネタだと思うがマジで言ってたら単なる老害だぞw
レコードは記録
一般でもコースレコードを更新しましたとか言うだろ

948:デフォルトの名無しさん
20/12/08 12:27:24.23 QPlJJaQdr.net
>>932
漢字文化圏では字面から意味がだいたい分かることに甘えたやつが多い

949:デフォルトの名無しさん
20/12/08 12:35:05.35 f+ofKIWhM.net
全く関係ないが昔ログインの事を略してログと呼んでいる奴がいて
それに気が付くまで話が全く理解できなかった

950:デフォルトの名無しさん
20/12/08 12:42:21.79 Jz5aG9hcM.net
ログオンしないの?

951:デフォルトの名無しさん
20/12/08 12:57:17.36 UAWkpbVf0.net
爪折ったカセットテープ型

952:デフォルトの名無しさん
20/12/08 13:07:42.70 u9TUBJ18p.net
平和守る名前さ~♪

953:デフォルトの名無しさん
20/12/08 13:23:08.32 v7gdDVm90.net
ダグオンwww

954:デフォルトの名無しさん
20/12/08 14:49:14.43 qADZolAoM.net
>>932
おっしゃる通りだが、名前にもう少し情報をいれてほしいなあ
こんなわかりにくい名前つけていいのか
英語圏の人はピンとくるのかな

955:デフォルトの名無しさん
20/12/08 15:12:08.46 L/fvSJtl0.net
>>936
「更新」の意味を古い記録を新しい記録で差し替えるという意味にとるか
古い記録自体を変更して最新状態にするという意味にとるかの違い
前者はイミュータブルで後者はミュータブル

956:デフォルトの名無しさん
20/12/08 15:23:20.07 0ctxmOmz0.net
>>923
必要ないのも混ざってるよ

957:デフォルトの名無しさん
20/12/08 15:29:38.69 bfWpuCm70.net
>>944
そういうどっちにも取れるような名前を付けていいんか?
って話じゃね?
少なくともデータベースやPascal系言語ではレコードの内容を書き換えられるんだし

958:デフォルトの名無しさん
20/12/08 16:14:06.02 KeS4W5RD0.net
くそコード書いといて
えー読めないのみたいな顔するやつ死ね

959:デフォルトの名無しさん
20/12/08 16:43:14.25 v7gdDVm90.net
だからrecord 自体は別にイミュータブルでも何でもないんだってば

960:デフォルトの名無しさん
20/12/08 19:03:10.97 f+ofKIWhM.net
デビュー前にレコード大賞を盗った場合はどうなるの?

961:デフォルトの名無しさん
20/12/08 19:32:57.86 MwY7tEEj0.net
tmpとかもやめて欲しいな。

962:デフォルトの名無しさん
20/12/08 19:33:13.64 y8tTQ7tr0.net
質問スレで平日の昼間からずっと雑談づくしってお前らそういう仕事なの?

963:デフォルトの名無しさん
20/12/08 19:54:46.60 +Hjnd8Yr0.net
>>951
このご時世で昼間に家からカキコできないほうが終わってる定期

964:デフォルトの名無しさん
20/12/09 02:33:30.28 WuZTb4kZM.net
なにごちゃごちゃ抜かしとるんじゃ我ェ!?

965:デフォルトの名無しさん
20/12/11 09:52:21.87 xnlTyNu60.net
エンディアンのバイトスワップめんどくせー

966:デフォルトの名無しさん
20/12/11 11:23:36.63 RmJd06BU0.net
あるウェブサイトにWebrequestを使ってアクセスしようとしたところ、
「ご使用のブラウザはCookieまたはJavaScriptの設定が無効です」
と出てウェブブラウザでは表示されるページが取得できませんでした。
webrequestは今まで何度も使っていますがこんなことになったのは初めてです。
↓のようにどこの解説サイトでも掲載されているような普通のやり方でやっているだけなのですが、回避する方法はあるのでしょうか?
CookieContainer myCC = new CookieContainer()
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.CookieContainer = myCC:

967:デフォルトの名無しさん
20/12/11 12:09:30.98 RmJd06BU0.net
すいません、自己解決しました

968:デフォルトの名無しさん
20/12/11 12:28:58.18 e2z+8YzhM.net
プロジェクト内で定義された派生クラスを全てリストする方法ってあるでしょうか?
例えば動物という基底クラスがあり、
派生クラスに猫、犬と2つ作ったとします。
基底クラスには鳴き声メソッドがあるとします。
猫の鳴き声メソッドは「ニャーニャー」と返します。
ある関数で「ワンワン」という文字列が来た際に
プロジェクト内の動物派生クラスを個別に生成して鳴き声メソッドを叩き、
ワンワンと鳴く派生クラスを特定する逆引きのような処理をしたいです。
if文で全派生クラスを書けばいいですが、派生クラスはガンガン増えていくので、派生クラスを定義するたびににそのif文をメンテするのはメンテ漏れのバグのリスクがあるので
プロジェクト内に現在定義された動物派生クラスを全部取ってくる事が出来れば、それをグルグル回せばメンテナンス不要のコードにできるのですが

969:デフォルトの名無しさん
20/12/11 12:46:55.66 VHLzC15hd.net
SourceGeneratorならできるだろうけど、何の情報もなしにclass探すのは無理じゃない?
テーブル内のclassに対して全部処理するとかはできるだろうから編集箇所は最小限で済ませられるけど

970:デフォルトの名無しさん
20/12/11 12:49:19.99 9hZE0nsxd.net
>>957
リフレクションで頑張れば行けるかもね

971:デフォルトの名無しさん
20/12/11 13:03:11.90 exUCYAAha.net
>>957
動的にサブクラスを列挙するのはたぶん無理じゃないの?
public abstract class Animal
{
  public Animal(Animal a)
  {
  ...
  }
}
こういう風にAnimalのコンストラクタでthisを渡すことを強制しておけば
少なくともインスタンス化されたものは把握できるね。

972:デフォルトの名無しさん
20/12/11 14:37:47.39 m/dnIqsS0.net
typeof(Animal).Assembly.GetTypes().Where(_type => _type.IsSubclassOf(typeof(Animal)))
型の列挙自体はこんなんでできるけど
インスタンスどうするの?っていう
全部の型にpublicな引数なしコンストラクタが必ずありますならなんとかなるけど

973:デフォルトの名無しさん
20/12/11 15:40:59.87 69jKb/QY0.net
そういやクラスに、静的に実行される静的イニシャライザを書けるようにしてくれたらいいのにと思うことあるな

974:デフォルトの名無しさん
20/12/11 16:53:05.38 CVvHA/5PM.net
>>962
書けるぞ

975:デフォルトの名無しさん
20/12/11 18:41:57.69 bOY22DN70.net
>>960
それthisじゃない。

976:デフォルトの名無しさん
20/12/11 19:31:50.50 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:デフォルトの名無しさん
20/12/11 19:37:25.05 PS9oWtr00.net
>>961
自分のインスタンスを返す静的メソッドって作れないのか
それを親クラスかインターフェイスで規定しておけばよいんじゃ
つかわざわざインスタンス生成しなくても、鳴き声が自分かどうか判定する静的メソッドで事足りる気がするな

978:デフォルトの名無しさん
20/12/11 20:32:27.16 ZS/vCbaU0.net
>>941-942
渋谷で超勇者展始まったぞ!

979:デフォルトの名無しさん
20/12/11 21:16:51.65 69jKb/QY0.net
>>963
ま、まじで?
なんて機能名でググれば出てきそう?

980:デフォルトの名無しさん
20/12/11 21:34:43.36 bOExnmUya.net
「C# 静的イニシャライザ」で検索して普通に引っかかるでしょ
イニシャライザ/コンストラクタと呼び方が異なるだけで

981:デフォルトの名無しさん
20/12/13 02:19:21.24 1g8P/X2hM.net
c#でRSSリーダー作れましゅか?

982:デフォルトの名無しさん
20/12/13 02:27:42.98 mhM78eSV0.net
もちろん作れるさ

983:デフォルトの名無しさん
20/12/13 06:26:58.36 TsdjEAD7M.net
c#では作れないものはありますか?

984:デフォルトの名無しさん
20/12/13 07:37:48.18 18RrlrES0.net
>>966
全ての派生クラスで同じ名前の静的メソッドやプロパティを強要できるならそれでよさそうだけど出来なくね?

985:デフォルトの名無しさん
20/12/13 09:06:36.69 unG5NNsQ0.net
>>973
静的メソッドって継承できないのか。知らなかったぜ
C#8.0でインターフェイスに定義できるようになったのかな

986:デフォルトの名無しさん
20/12/13 10:08:37.85 3XNF+7/F0.net
>>972
お前の能力を超えたソフト

987:デフォルトの名無しさん
20/12/13 10:11:14.52 7La4X7B8a.net
ネイティブDLLが作れるようになってくれないかな

988:デフォルトの名無しさん
20/12/13 10:21:46.03 BQqdDV6m0.net
>>972
カーネルドライバ

989:デフォルトの名無しさん
20/12/13 10:26:06.52 QKeUnYpp0.net
>>972
完全なマシン語にコンパイルされるプログラム
これでないとOSカーネルとかデバイスドライバとか作れない

990:デフォルトの名無しさん
20/12/13 11:14:15.79 KcA96kkp0.net
マシン語にしたバイナリを出力するアプリをC#で作ればなんでもできることになる

991:デフォルトの名無しさん
20/12/13 14:02:37.13 U1NW+seS0.net
nativeaot(-llvm)?(旧corert)ってのがあってぇ…

992:デフォルトの名無しさん
20/12/13 14:07:55.69 3XNF+7/F0.net
.NETNative をちゃんと作ればC#でもネイティブコードにコンパイルできるだろうし、そもそも性能がたいして必要ないならインタプリタでもドライバを書くことはできるだろうけどGCに依存してる言語はタイミングが読めないから難しいわな

993:デフォルトの名無しさん
20/12/13 14:47:32.03 E31xy0lw0.net
C++/CLI復権してくれたらなぁ。まずないとは思うが。

994:デフォルトの名無しさん
20/12/14 19:47:40.61 EY+baBGY0.net
WEBの写真ダウンロード処理をしてるのですが、出来るものと出来にくいものがあります。
出来にくいもの(EDGEブラウザで開けるとすぐ見れるがダウンロードでは20秒くらいかかる)
URLリンク(i.dailymail.co.uk)
出来るもの(すぐにダウンロードできる。EDGEブラウザでもすぐ見れる)
URLリンク(i.imgur.com)
System.Net.WebClient client = new System.Net.WebClient();
client.DownloadFile("URLリンク(i.dailymail.co.uk) @"D:\tmp.jpg");
こういうのはサーバー側でアクセス種類がブラウザかプログラムか見分けられて
対策されてるのでしょうか?

995:デフォルトの名無しさん
20/12/14 20:29:19.80 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:デフォルトの名無しさん
20/12/14 21:37:41.18 A7r1gxtPa.net
ブラウザでの表示が早いのはキャッシュされてるだけだと思うけど・・・・
キャッシュ全クリアしても本当にすぐ見れる?

997:デフォルトの名無しさん
20/12/15 10:35:58.18 md2wlUIm0.net
>>984
やってみましたら止まらずすぐにダウンロードできるようになりました。
サーバー側でUSERAGENTが入ってるか入ってないかでプログラムアクセスかどうかの選り分けをして
USERAGENTが空のものには20秒くらいわざとジラシが入ってるようです。
一括ダウンローダーとかの対策かなんかかもしれませんね。
ありがとうございました。

998:デフォルトの名無しさん
20/12/15 12:40:58.94 uedfi1MA0.net
UA偽装とかリファラ偽装とか懐かしいワードを思い出した

999:デフォルトの名無しさん
20/12/15 13:14:41.01 fP0YYSyi0.net
>>986
ちなみにChromeはかなり小まめにアプデ入る訳だが
Botは往々にして"Chrome/87.0.4280.88"の部分が古いままという特徴があって最新版一つ手前よりも前のバージョンだと弾くって言う対策してる鯖


1000:もある まぁここまで対策してくるのは稀だから放置でも大方問題にはならないが、インスコフォルダやレジストリや最悪webなどからバーション取得する方法あった気がするから暇なら最新版のUAにするロジックも入れておいた方がいい



1001:デフォルトの名無しさん
20/12/15 21:23:57.67 2D6p9tgnM.net
規模のでかいプロジェクトを開発してるといつもどのファイルを開いてるのかわからなくなったり、目的のファイルが見つからなかったり大変なんですけどどうしたらいいですか?
目的のフォルダに対してブックマーク的なものが設定できたりしたら迷子にならなくてすむんですがそんなのないですか?

1002:デフォルトの名無しさん
20/12/15 23:06:40.58 fP0YYSyi0.net
ref readonly変数のstructのメンバ関数呼ぶと防御コピーが発生するのは仕様?
refだけなら防御コピー発生しないのは確認できたんだけど

1003:デフォルトの名無しさん
20/12/15 23:23:22.02 j+VqSr9F0.net
>>989
フォルダじゃなくてファイルだけどvisual studioならブックマークあるよ
ただ、そもそも大規模になっても迷子にはあんまならないかな?

1004:デフォルトの名無しさん
20/12/15 23:26:47.80 OK3TNwGLM.net
>>991
クソみたいな設計だから困ってたんですよ
ありがとうございます

1005:デフォルトの名無しさん
20/12/15 23:32:36.78 korWFWn50.net
>>989
同じ事思ってる。
VSだと開いてるファイルのタブに、プロジェクト毎に色分けする拡張入れてる。
あとソリューションエクスプローラーを複数開いたりしてる。

1006:デフォルトの名無しさん
20/12/16 01:40:22.65 FCFqtT9K0.net
>>993
複数開くってどうやるの?

1007:デフォルトの名無しさん
20/12/16 03:17:07.88 eAMqD84A0.net
共通プラットフォームの .NET 5 が出てきたってことは、.net standard はもう次バージョンは出ないんですか?

1008:デフォルトの名無しさん
20/12/16 03:21:40.46 4YU+JB8/0.net
うん

1009:デフォルトの名無しさん
20/12/16 07:09:48.69 ksVkXCtR0.net
>>995
誰も新しい方使わなかったらまだワンチャンあるかも?

1010:デフォルトの名無しさん
20/12/16 11:31:10.25 TSvQ057dM.net
次スレ立てた
ふらっと C#,C♯,C#(初心者用) Part149
スレリンク(tech板)

1011:デフォルトの名無しさん
20/12/16 20:14:15.21 p7rmX8ox0.net
>>990
そりゃメソッドは内部でメンバを書き換えてるかもしれないからな
readonlyなメソッドならコピーされない

1012:デフォルトの名無しさん
20/12/17 20:00:41.21 Z1ozW/Gv0.net
>>998
スレたて乙

1013:デフォルトの名無しさん
20/12/17 20:54:36.61 czJEN8EN0.net
埋め

1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 204日 0時間 25分 55秒

1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch