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


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

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



1 名前:デフォルトの名無しさん [2022/09/18(日) 14:39:29.51 ID:VjUDO6tf0.net]
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
https://mevius.5ch.net/test/read.cgi/tech/1655422932/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
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
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

573 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 20:51:00.83 ID:SIAjnkFo0.net]
引数は変数だぞ
イベントハンドラを登録する時には演算子を使うけどその奥ではイベント登録関数の引数としてデリゲートが渡されてる

574 名前:.NET MAUI HighScool [2022/11/02(水) 21:35:00.76 ID:v08tA7cv0.net]
ラムダ式の話じゃないの?

575 名前:デフォルトの名無しさん [2022/11/02(水) 21:38:51.07 ID:owhI4Qa1p.net]
プロパティに式を仕込むと、思わぬ副作用があって詰むぞ
少なくとも中から呼ぶときくらいは実データにアクセスしようず

576 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:46:41.09 ID:SIAjnkFo0.net]
>>574
ラムダ式はデリゲートを作るための書き方にすぎんよ
それがデリゲート変数に代入されて初めて関数になる
Expressionに代入されると関数じゃなく式木になる

577 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:47:28.98 ID:SIAjnkFo0.net]
>>575
お前は式という言葉の意味も高階関数も知らんのか

578 名前:.NET MAUI HighScool [2022/11/02(水) 23:25:22.77 ID:v08tA7cv0.net]
助けてくれうぜぇやつに絡まれたんだがHttpClientでjsでロードされる画像のURLを取得する方法ある?
プログラミングって実際もの作らないと身につかないよな
https://mi.5ch.net/test/read.cgi/news4vip/1667395380/

579 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 00:13:01.70 ID:0QCo1mM00.net]
>>578
まずそのスレの1がうざい
どうせお前だろ

580 名前:.NET MAUI HighScool [2022/11/03(木) 00:33:32.59 ID:LxUg3x+60.net]
>>579
俺だけど?
それより絡んでくるやつのほうがウザくね?

581 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 01:17:54.26 ID:M3w0A0V30.net]
jsでロードされるってなんなの?どういうこと?
HTMLに書かれたJavaScriptを動かしてHTMLというかDOMを更新して結果表示される画像のURLを取得したいってこと?

HttpClientで取得したHTMLをWebViewなりで解釈して実行しないとダメでは?ならWebViewで直接やれよという話でもあるが。
JavaScriptだけでロードされてるわけでもないんだし。



582 名前:.NET MAUI HighScool [2022/11/03(木) 01:39:58.55 ID:LxUg3x+60.net]
>>581
多くの検索エンジンの画像検索は最初から全部画像を読み込むと膨大な量のデータをやり取りしないといけなくなりサーバーの負荷が大きくなるので
スクロールするとjsによりほしい分だけデータがロードされるというふうな実装になってる
俺はこういうサイトだとWebViewでjs使ってスクロールしてデータをロードさせてるんだけどこのクソうぜぇやつが言うにはそれはインスタントカレーで湯煎しかしてないゴミカスだと言ってくるわけ

583 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 01:44:02.63 ID:M3w0A0V30.net]
だから、それはJavaScriptだけではなくてDOMがないとあかんのではという話。
エンジンとして何を用意しないといけないか変わってくるじゃん。
(JavaScriptで画像を取得するロジックを走らせる、という言い方だと、プラグインシステムがJavaScriptでできてるとかそういう話になるんでは?)

スレ見てきたけど、そう言うところがダメなんじゃないの?

584 名前:.NET MAUI HighScool [2022/11/03(木) 01:47:04.02 ID:LxUg3x+60.net]
DOMじゃなくてRegexでhtmlのimgタグの中身取ってきてるんだが
たぶんこいつはDOMを使ってないDOM使ってたらもっと謙虚だろ
むしろこれでDOM使ってたらブチギレるわ

585 名前:デフォルトの名無しさん [2022/11/03(木) 02:24:14.27 ID:rfkx/Wsp0.net]
要はこのうざい奴はjavascriptでやってることを解析してC#するのがスマートだと言いたいんだろ
実際はアホな努力だが

586 名前:デフォルトの名無しさん [2022/11/03(木) 02:27:39.09 ID:rfkx/Wsp0.net]
つっても画像検索の読み込みくらいなら単純なのかもな

587 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 05:39:29.72 ID:vGCYuyMq0.net]
たった1行の処理でも関数化してもいいのでしょうか?
大げさな感じもしますが

588 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 08:34:14.06 ID:NbsIPyEs0.net]
>>542
ケースバイケース
よくあるのはその関数を多くの場所で使っててなんかの拍子にその関数をおっきに変更することが想定される場合
あとはその関数にわかりやすい名前をつけたい場合とか

589 名前:.NET MAUI HighScool [2022/11/03(木) 09:00:00.75 ID:LxUg3x+60.net]
>>585
だよな
なんでこいつはこれでイキってんのか不明

590 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 10:00:51.31 ID:q0+PchV30.net]
JavaScript なら、scrollTop とか、

最近は、IntersectionObserver とかもあるらしい

591 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 10:53:54.12 ID:dhtr0mvLa.net]
とりあえずjsでできることは全部c#でできるようにしてくんないと
誰かポリフィル作れということか



592 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:16:01.97 ID:M3w0A0V30.net]
>>584
imgタグを作ってるのがJavaScriptのDOM APIじゃない?

593 名前:.NET MAUI HighScool [2022/11/03(木) 12:17:32.39 ID:Kj7ywx2W0.net]
>>592
つまりこいつはDOMを使ってるくせにイキってたってわけか?
だっさw

594 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:28:05.12 ID:M3w0A0V30.net]
DOM APIって何かわかってる?

595 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:31:33.00 ID:irjlHMAba.net]
>>594
BlazorはそれをRenderFragmentで作るんだぞ
これ読んでみろ
https://learn.microsoft.com/ja-jp/aspnet/core/blazor/components/virtualization?view=aspnetcore-6.0

596 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:39:09.32 ID:M3w0A0V30.net]
>>595
DOM APIを作るの?ちゃうでしょ…。

BlazorのうちWebなものはDOMを(もちろん内部的にはDOM APIを使って)作るけど、DOM APIを作ってるわけじゃ無いでしょ。

あくまでブラウザ、WebViewだったりWPFやXamarin.formsといった、レイアウトやレンダリングを行うエンジンへの架け橋で、そのレイアウト・レンダリングエンジンがWebViewなら、それはDOM APIを使って実現されると言う感じで。

これが俺が想定してたレンダリングエンジンで、その主語がデカかった理由。

597 名前:.NET MAUI HighScool [2022/11/03(木) 12:41:37.25 ID:Kj7ywx2W0.net]
つまりそのGoでスクレイピングを作ってる奴は結局ルウからカレー作ってるように見せかけてインスタントカレー作ってたってことだろ?

598 名前:.NET MAUI HighScool [2022/11/03(木) 12:42:38.00 ID:Kj7ywx2W0.net]
じゃあWebView使ってスクレイピングする方法と何ら変わらんだろって思ってブチギレるわけよ
あんだけ突っかかってきて作ったのインスタントカレーじゃんwってなるわけよ

599 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:44:00.31 ID:M3w0A0V30.net]
DOM → Document Object Modelなデータや構造
DOM API → Document Object Modelなデータや構造を操作するAPI群
という一般的な定義で話してる。

jsのライブラリで言えばparse5とかとjsdomの違いぐらいの話。jsdomがDOM APIを持ってるのが話がややこしい。

600 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:47:38.39 ID:M3w0A0V30.net]
>>598
何を怒ってるかわかんない。甘く見られたって事?
そんな事で怒らんでも良いじゃん。アホ過ぎるとこっちの話が理解できないこともあるよ。俺は計算資源さえ許せばちゃんとレンダリングした方がええでしょ、WebViewでもpuppeterとかでも。

うーん、jsとdomをエミュレートしてレンダリングするタイプは、要は突き詰めるとヘッドレスなブラウザを作ることと変わんなくなるので、確かに味は変わるが、ルーから作ると失敗するぞ言いたい。

601 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:48:40.21 ID:M3w0A0V30.net]
ええでしょ、と思うよ、だった。すまんね。



602 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:49:54.05 ID:irjlHMAba.net]
>>596
何を言ってるんだ
スクロールに従って画像を表示するのにDOMは使わないって話をしてるんだよ
<img src=@(img)/>と書きゃimg変数のURLにある画像が表示される
画面に表示されるとこだけそのタグを作る
タグを作るのにDOMは使わない
そういう話だ

603 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:55:41.20 ID:M3w0A0V30.net]
>>602
え?何言ってるの?「DOM APIが何かわかってる?」に対して「Blazorはそれを…」の返事に「違うよ」って返したんじゃん?

しかも、結局それBlazorはDOM APIを使って画面に表示するところだけそのタグ作ってるからね。

604 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 12:57:28.19 ID:irjlHMAba.net]
とりあえず元のスレでやれ
何がしたいのかよくわからんがお前がウザいのはわかった
スクレイピングの話なら素直にセレニウム使っとけ

605 名前:.NET MAUI HighScool [2022/11/03(木) 13:01:54.15 ID:fiCeisHS0.net]
>>604
だからSelenium使わずにWebViewでやったらキチガイがSeleniumやWebViewは初心者wとか言って絡んで来たんだが

606 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:06:30.69 ID:irjlHMAba.net]
読む気にもならんから知らんが初心者が初心者向けの方法を使って悪いことは何もあるまい
お前が上級者だと言うなら他のやり方を気にせず上級者のテクニックを使ってスクレイピングとかいう糞みたいな作業を続ければいい

607 名前:.NET MAUI HighScool [2022/11/03(木) 13:09:44.54 ID:fiCeisHS0.net]
>>606
バカにされたままだとうぜえからこのスキル使えるようになりたいと思ったがなんか無理そうだな

608 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:09:44.56 ID:WOBTUDvw0.net]
初心者がスクレイピングとか迷惑でしか無い

609 名前:.NET MAUI HighScool [2022/11/03(木) 13:09:55.62 ID:fiCeisHS0.net]
>>608
なぜ?

610 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:18:41.93 ID:kiz4JKw0a.net]
Javascriptのインタプリタをつくればいいだけじゃないの?

611 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:39:14.90 ID:q0+PchV30.net]
漏れは、Ruby Selenium Webdriver で、ブラウザを自動操作してる。
サイトのログインとか

更に、Nokogiri でスクレイピングもできる



612 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:39:56.44 ID:m6o3Pqh2d.net]
MAUI「htmlを、regexでアクセスしてる」
うざいやつ「htmlは、DOM APIでアクセスしろ」

って事??

613 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:41:07.19 ID:x8JkO9N7M.net]
ていうかさあ
よそのスレで起こした(しかもお前が立てたスレの)揉め事をこのスレに持ち込んで助けを求めるようなことするなよ
ここで付け焼刃の知識を仕入れて建てたスレでイキりたいんだろうけど
そんなことやってて恥ずかしくないの?

614 名前:.NET MAUI HighScool [2022/11/03(木) 13:44:22.86 ID:ymgDfjLU0.net]
>>613
俺は恥ずかしくないよ?

615 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:45:03.53 ID:x8JkO9N7M.net]
と思ったらMAUIの人か
じゃあ諭すだけ無駄か・・・・・

まあなんだ、VIP板とやらで頑張ってくれ
こっちに帰ってくるなよ

616 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:52:27.10 ID:j+eH91hfa.net]
MAUIに変なイメージついたな
マウイ高校の人に謝れ

617 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 14:03:01.23 ID:tn2ZhR3p0.net]
せっかくXamarinについた変なイメージを隠したのにな。

618 名前:.NET MAUI HighScool [2022/11/03(木) 15:12:06.23 ID:ymgDfjLU0.net]
なんで俺は.NET MAUIの地位向上に努めてるのに避難されなきゃいけねぇんだ

619 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 15:34:50.67 ID:WOBTUDvw0.net]
>>609
・まともなクローラーが作れない
・テストを知らないから、未完成状態でサイトに頻繁にアクセスする
・例外処理の設計ができていないから、サイト側からフィルタされてもアクセスし続ける

結果:監視カメラの前で裸踊りしてる様子を記録されていることに気が付かない

スクレイピング対象になりえるサイトのデータの二次利用は民法的に大体アウト(良くてグレー、真っ白は基本的にありえない)
そのクソみたいなアクセスのせいで、サーバリソース追加しなきゃならんケースがあるからサイト側からすると迷惑でしかない

620 名前:デフォルトの名無しさん [2022/11/03(木) 15:37:50.67 ID:2Kw6fOvE0.net]
散々イキりまくった挙句技術力不足で他人を頼ってくるとか情けなさすぎる
MAUIの地位を貶めるためにやってるんじゃないなら相当やばい

621 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 22:02:04.04 ID:20/srh0o0.net]
>>619
ヘッドレスブラウザでトライ&エラー繰り返されたらあれだろうがHttpClientでhtml単品要求してくるくらいなら別に自由にしたらって思うけどな



622 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 00:40:17.01 ID:IgmKO4aZ0.net]
HttpClient使わないとrobots.txtが取りづらいよな?という嫌味ならなるほどなとは思う。

623 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:03:03.51 ID:nywf9UY+0.net]
boolでは2つの返り値を持つ事はできないですか?
https://i.imgur.com/6s9o15k.jpg
ゲームで接地判定を作っているのですが、真ん中からレイを飛ばすと崖でレイが反応しなくなるので、このように両脇から2本飛ばしています。
判定用の関数を作ってます。

624 名前:デフォルトの名無しさん (ワッチョイ 8bbb-/OGx) mailto:sage [2022/11/04(金) 19:12:28.11 ID:7HgZbeW40.net]
>>621
同じアドレスにウェイトなしアクセスをぶん回してくるやつとかいるんだぜ

625 名前:デフォルトの名無しさん (ワッチョイ d941-2RrB) mailto:sage [2022/11/04(金) 19:22:14.68 ID:IiXUZSOe0.net]
>>623
boolでは2つの返り値を持つ事はできないです。
なぜならboolはメソッドではなく型だからです。

626 名前:デフォルトの名無しさん (ラクッペペ MMeb-YnjT) mailto:sage [2022/11/04(金) 19:33:46.65 ID:5m02ltgpM.net]
Win32/C++
BOOL GetMessage(略) ・・・

627 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 19:37:37.70 ID:kqfS0jzoM.net]
>>623
(bool foo, bool bar) F() {
return (true, false)
}

var x = F();
WriteLine(x.foo);
WriteLine(x.bar);

(var a, var b) = F();
WriteLine(a);
WriteLine(b);

628 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 20:31:37.30 ID:nywf9UY+0.net]
>>627
bool型の関数の場合は1つしか持てないじゃないでしょうか

629 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 20:49:12.99 ID:T0hKgiyQa.net]
戻り値では無く引数にrefでboolを2つ渡せばいいんじゃ無い

630 名前:.NET MAUI HighScool [2022/11/04(金) 20:50:56.37 ID:OnPQoW1c0.net]
.NET 7いつ降りてくるんだ?

631 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:08:53.29 ID:u3TD418O0.net]
>>629
相手すんなよ...



632 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:27:00.15 ID:Fl24BIVd0.net]
論理演算で一つにまとめればいいじゃん

633 名前:デフォルトの名無しさん mailto:sage [2022/11/04(金) 21:31:27.64 ID:SZTCZ5vE0.net]
タプル使うと後が大変かも

634 名前:デフォルトの名無しさん [2022/11/04(金) 21:57:15.77 ID:8LyOgWL1a.net]
タプルってディクショナリーで複合キーみたいに使えるんかね
dict[("aaa",1)]=456.8

635 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 00:03:26.00 ID:z7QTqWos0.net]
進次郎構文を質問に応用するとこうなるのか...

636 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 01:03:31.06 ID:zPyCNtrD0.net]
複数の引数を戻り値で受け取りたいとか言う奴いるけど
参照でええやん・・・

637 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 05:24:52.32 ID:tZqy6bJ10.net]
>>636
参照?どういうこと
普通に関数2つ作るのがシンプルかもしれませんね

638 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 06:12:30.08 ID:tZqy6bJ10.net]
プログラミングは日本語で言語化することが大事でしょうか
それがフローチャートだったりするのでしょうが

639 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:08:07.32 ID:qYBt5eWid.net]
「何をするプログラムなのか」「なぜこうするのか」といった仕様や意図を自然言語で分かりやすく正確に記述できる能力は重要
一般に日本人はそれを苦手とする者が多く、安易に図表に頼ったり、
自然言語で書くとなるとプログラムと逐次対応するような低レベルな記述(実質的にExcel方眼紙上でコーディングしているだけ)をする傾向がある

640 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:26:37.39 ID:2xMBgYRAM.net]
意味不明すぎる

641 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:34:43.47 ID:yxkEcNx60.net]
文章でグダグダ書かれるより図表や擬似コードで書いてくれた方が100倍マシ



642 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:36:00.30 ID:sjtvh1h/M.net]
visual transformer を図表無しで
納得させる資料を書いてから言え

643 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 08:43:50.98 ID:3YlQFQnT0.net]
質問者は投稿する前に、自分の質問をよく推敲しろよ。これはC#初心者以前の問題だ。
文章が意味不明で相手に伝わらず、あほな質問だと思われたらそれなりの答えしか返って来ないぞ。

644 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 09:40:58.84 ID:yYAK326QM.net]
>>638
大事ではないけど

言語化と言うかもともと何をしたいのかと言うことがはっきりしていて
それをコードに落とし込んでいるはず

ところが後でコードからその何をしたいかが読み取れない場合があるので
おおまかなコメントなどを残すことになる
細かく内容を記述するのは無駄だしコードを手直しするたびに書き換えるのは無理だ

フローチャートは階層が深くなる複雑な制御構造になる場合に脳で追いきれなくなる場合に描いたりすると便利なんだろうけど
大体みんなちゃんとしたものじゃなくて流れを落書きする程度だと思う

645 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 11:36:03.24 ID:cwSbm70XM.net]
>>638
よく言われるのは「How」はコードで書く
「What、Why」は自然言語や図表を使って書く、、、てこと

646 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 17:37:50.25 ID:tZqy6bJ10.net]
>>644
>>645
どうも
きれいなコードを書くことでフローチャートはいらないのかもしれないですね

処理は言語化しないと何をしてるのか分からなくなったりしますね

647 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 17:53:52.87 ID:zg6rbg9v0.net]
フローチャートなんてアセンブリ言語でしか使わんぞ
もしかしたらCでギリギリ使うこともあるかもしれんがオブジェクト指向言語では必要ない
オブジェクト指向言語でフローチャート使わなきゃならんとしたらその前にまずオブジェクトの設計がおかしい

648 名前:デフォルトの名無しさん [2022/11/05(土) 18:13:19.21 ID:jSE+d3f7M.net]
>>645
Whatもコードで表現しようぞ

649 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 18:22:12.07 ID:anrNho5cM.net]
>>648
宣言的プログラミングだね
理想的だけど手続きを全て無くすのは難しい
コードはどうしてもハイブリッドになってしまう

650 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 18:26:36.41 ID:pQZkgeTuM.net]
オブジェクト指向言語で処理の流れを図示するならシーケンス図やアクティビティ図
静的な構造の図示はクラス図やパッケージ図

651 名前:デフォルトの名無しさん (ワッチョイ 9279-YsF2) mailto:sage [2022/11/05(土) 18:43:24.92 ID:D4NMIenB0.net]
アクティビティ図書くなら
フローチャートのがわかりやすいな



652 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 20:41:38.38 ID:SeMW4Qkf0.net]
VSがある程度自動的にクラス関係図生成してくれねぇかなあ

653 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 20:58:35.47 ID:zg6rbg9v0.net]
クラスデザイナーというのがあるからインストーラの個別のコンポーネントで検索してみろ

654 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 21:29:39.32 ID:6Vg185nZ0.net]
>>653
あれってCore系未対応じゃなかったっけ?

655 名前:デフォルトの名無しさん [2022/11/05(土) 21:50:02.83 ID:mwXpY34pM.net]
>>649
HowだけでなくWhatもコードで表現しようとするのと宣言的プログラミングはちと違うんだが
いずれにしても重要なのは「仕様のWhat」を「コードのWhat」として対応付けること

656 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:06:58.20 ID:neflR3f7M.net]
>>652
クラス関係図ではないけどあるクラスのメソッドやフィールドと他のクラス(または外部ライブラリdll)への関係を図示するだけならコードマップ表示がある

657 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 22:57:43.05 ID:x8IGYLJlM.net]
Windowsフォームアプリ(.NET Core)のスケルトンコードより
フォーム初期化処理(InitializeComponent()メソッド)
https://i.imgur.com/ukmU36Z.png

658 名前:デフォルトの名無しさん mailto:sage [2022/11/05(土) 23:01:20.64 ID:mbE+OsReM.net]
>>655
ほとんど同じだよWhatをコードで表現しようとすると自然と宣言的になる
というか宣言的プログラミングがそういうもの
どうやってではなくてどうなって欲しいかを記述する

659 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 00:37:13.40 ID:zZNJQBYc0.net]
>>656
使用環境条件が厳しい

コード マップを使用して依存関係をマップする
https://learn.microsoft.com/ja-jp/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2022

>コード マップの作成および編集には、Visual Studio Enterprise エディションが必要です。
>ただし、Visual Studio Community および Professional エディションでは、Enterprise エディションで
>生成されたダイアグラムを開くことはできますが、編集することはできません。

660 名前:.NET MAUI HighScool [2022/11/06(日) 00:58:03.81 ID:Am1kuzif0.net]
.NET 7についての前情報得てるやついる?
どんな感じなんだろ?

661 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 02:59:28.10 ID:3Vlqt+cVa.net]
質問です。
構造体を使っていて関数内でnewしてそこで使い終わる(ボクシングしない)場合は、stackに乗るだけなので、heapは汚さないしgcには影響無い認識でいいですよね?ゲームを作ってるのでgcの影響を少なくしたいんです。



662 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 07:14:57.83 ID:t/MPMTDqM.net]
構造体でもインスタンス生成してる時点でガベージコレクションの対象
.NETでは値型であろうが参照型であろうがすべての変数は監視下に置かれる
ボクシングは値型の変数を参照型(object型)変数に代入する時に一時インスタンスを生成して値をコピーして渡す機能なので全く関係ない話

663 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 07:30:46.83 ID:mzFwuoQr0.net]
>>661
> 構造体を使っていて関数内でnew
よくわからんからコードで示して

664 名前:デフォルトの名無しさん (ブーイモ MMad-yfbC) mailto:sage [2022/11/06(日) 09:30:46.32 ID:OgJKt7GdM.net]
>>661の理解で正しいよ。>>662は間違い。
値型は単なるデータ構造であり、それ自身はGCの管理対象にならない。

665 名前:デフォルトの名無しさん (ブーイモ MMad-yfbC) mailto:sage [2022/11/06(日) 09:45:40.42 ID:OgJKt7GdM.net]
ただし、もちろん値型の変数を使ったらその先が全てGCの追跡の対象外になるわけではなくて、値型に定義された参照型の変数はGCの追跡対象となる。
上に述べた通り値型は単なる埋め込みのメモリのデータ構造なので、それ自体は単にGCをバイパスする。
そして、最終的にメモリ上に展開された構造のうちで参照型の変数だけが追跡対象となるわけ。

666 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:52:21.19 ID:mzFwuoQr0.net]
>>664
newしてても?

667 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:54:44.02 ID:zZNJQBYc0.net]
値型のintでも実際はSystem.Int32構造体のインスタンスではなかったっけ?
MaxValue、MinValueなどのプロパティやToString()などのメソッドが使えたはず
値型の変数でもGCが追跡しているのでは?

668 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 09:57:00.84 ID:OgJKt7GdM.net]
>>666
構造体のnewは、スタック又はそれを保持する参照型オブジェクト上に事前に確保された領域に対し、コンストラクタをインプレースで実行する
新たなインスタンスを生成している訳ではない

669 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 10:00:33.74 ID:OgJKt7GdM.net]
>>667
値型に対してObjectクラス又はValueTypeクラスのメソッドを呼び出そうとすると、その時点でボックス化が発生し、ヒープ上に新たなインスタンスが生成される

670 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 10:06:01.01 ID:sZiKsnj+0.net]
ポインタがオマケでつくかつかないかだけなのか

671 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 11:39:39.10 ID:8lzCZdko0.net]
なんか久し振りにここでためになる話を聞けた気がする。
横からだけど、ありがとう。



672 名前:デフォルトの名無しさん [2022/11/06(日) 12:23:04.83 ID:eRXytuty0.net]
>>662のしったか具合がやばい

673 名前:デフォルトの名無しさん mailto:sage [2022/11/06(日) 12:28:55.33 ID:46oDEsAIa.net]
このスレは前からそんなもんだろ
素人が知ったかして嘘ばかり教えるスレ






[ 続きを読む ] / [ 携帯版 ]

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

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