!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part150
https://mevius.5ch.net/test/read.cgi/tech/1616471904/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
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/
・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
ふらっと C#,C♯,C#(初心者用) Part151
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f2c-S5yT)
2021/05/16(日) 10:45:59.00ID:8qTwOc620558デフォルトの名無しさん (ワッチョイ 4d78-a+1V)
2021/07/11(日) 11:18:27.69ID:QsHvX08n0 VB6がずっとサポートされているから.NET Frameworkも同じようにサポートされ続けるだろ
559デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/11(日) 12:16:56.63ID:xAgoNPlJa VB6はサポート切れてるだろ、とっくの昔に
560デフォルトの名無しさん (ワッチョイ a52f-KGMb)
2021/07/11(日) 14:17:44.18ID:Lbkl8ipl0 開発環境はサポート切れてるが、ランタイムの動作はサポートされてるはず
561デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/11(日) 15:37:15.91ID:xAgoNPlJa 動く=サポートなら、そう
562デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 15:57:28.85ID:VpNTKYMHM563デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:00:55.69ID:A5YZ54Ww0 今時VBを押してるのも恥ずかしいんじゃ
564デフォルトの名無しさん (ワッチョイ 6352-Q14N)
2021/07/11(日) 16:17:44.15ID:KzRRh8fp0565デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:26:06.44ID:A5YZ54Ww0566デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 16:46:46.30ID:qTMmoATzM >>563,565
推してるとかどこから出てきたんだよ
単にVB6が今でもサポートされてるなら.NETFrameworkもサポートされんじゃね?
って話だろ
人が嫌われるかどうか心配する前に自分の理解力を心配しなよw
推してるとかどこから出てきたんだよ
単にVB6が今でもサポートされてるなら.NETFrameworkもサポートされんじゃね?
って話だろ
人が嫌われるかどうか心配する前に自分の理解力を心配しなよw
567デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 16:50:04.47ID:A5YZ54Ww0568デフォルトの名無しさん (ワッチョイ cbb0-U415)
2021/07/11(日) 16:58:33.98ID:LL6sPKEi0 言ってる言葉が全部自分に向かってるという、エッシャーの騙し絵みたいな奴だなw
569デフォルトの名無しさん (ワッチョイ 65ac-FVHZ)
2021/07/11(日) 17:03:40.26ID:A5YZ54Ww0 えへへ
これでスレ違いのVBの話題は終わったやろw
これでスレ違いのVBの話題は終わったやろw
570デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/11(日) 17:11:11.75ID:FD6lxZ3g0 severityがcriticalじゃなければセキュリティパッチも出ない状況を
「サポートされてる」の一言で済まされるとモヤるな
「サポートされてる」の一言で済まされるとモヤるな
571デフォルトの名無しさん (ワッチョイ cb63-XQdx)
2021/07/11(日) 17:16:20.09ID:BeeJLMuH0 モヤってもいいが続きはお家の人とやってくれなw
572デフォルトの名無しさん (アウアウウー Sa09-QOAx)
2021/07/11(日) 17:24:32.12ID:pF41bBSFa こう言ってはなんだけど、「サポート」されているかどうかは
営業面では重要な意味を持つけど、大半のエンジニアにとっては「それが何か実質的な意味を持つのか?」
っていうのが率直なところじゃないの?
営業面では重要な意味を持つけど、大半のエンジニアにとっては「それが何か実質的な意味を持つのか?」
っていうのが率直なところじゃないの?
573デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 17:37:23.51ID:y+4j5QejM574デフォルトの名無しさん (テテンテンテン MMcb-Yh25)
2021/07/11(日) 17:40:55.24ID:y+4j5QejM575デフォルトの名無しさん (ワッチョイ f573-DcAx)
2021/07/11(日) 21:48:39.79ID:cxQyUkFy0 .net frameworkはwindows updateに入ってるから勝手にセキュリティの穴や不備も塞がるが、
.netの方はどういう対策予定になってんの?
プログラム無知な個々人さえわざわざあの.net5のランタイムを細かなアップデートに合わせて取りにいく想定なの?
あるいらアプリ作者がこのランタイムの細かなアップデートに合わせてアプリ再配布する想定なの?
.netの方はどういう対策予定になってんの?
プログラム無知な個々人さえわざわざあの.net5のランタイムを細かなアップデートに合わせて取りにいく想定なの?
あるいらアプリ作者がこのランタイムの細かなアップデートに合わせてアプリ再配布する想定なの?
576デフォルトの名無しさん (ワッチョイ ab2d-O0xy)
2021/07/11(日) 21:55:49.88ID:JpOAcHlL0 Windows Updateのオプションの他のMS製品の更新プログラムを受け取るを有効にしたら
.NET 5や.NET Core 3.1のセキュリティアップデートが適用された
インストーラーで入れたやつだからかな
.NET 5や.NET Core 3.1のセキュリティアップデートが適用された
インストーラーで入れたやつだからかな
577デフォルトの名無しさん (テテンテンテン MMcb-u7yY)
2021/07/11(日) 21:55:56.30ID:gcLNEatSM 基本的に作者の責任だね
.NETに限らず、ライブラリをスタティックリンクしたりDLLを同梱したり普通にあるでしょ
デスクトップアプリが使ってるライブラリの脆弱性が問題になることなんて実際まず無い
そんなことを気にするよりREADMEにパスワード使いまわしはやめましょうとでも書いて啓蒙活動でもしたほうがよほど効果あるよ
.NETに限らず、ライブラリをスタティックリンクしたりDLLを同梱したり普通にあるでしょ
デスクトップアプリが使ってるライブラリの脆弱性が問題になることなんて実際まず無い
そんなことを気にするよりREADMEにパスワード使いまわしはやめましょうとでも書いて啓蒙活動でもしたほうがよほど効果あるよ
578デフォルトの名無しさん (ワッチョイ cba7-YGRz)
2021/07/11(日) 22:03:25.14ID:8QU6GoBD0 .netってなんですか?
579デフォルトの名無しさん (ワッチョイ cbb0-U415)
2021/07/11(日) 22:31:33.80ID:LL6sPKEi0 .NET Core 3.1インストールしてたはずなのにいつのまにか5になってた。あれはWindowsUpdateなんかな。
580デフォルトの名無しさん (ワッチョイ 4bda-2Uns)
2021/07/11(日) 22:35:19.64ID:NwP/aFzk0581デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/11(日) 23:56:07.09ID:W/0BfvqFM そもそも.NET5って来年2月でサポート切れてWindowsUpdateによる更新もされなくなるし、今後出るであろうLTSでもサポート期間は3年しかない
セキュリティアップデートなんて真面目に気にしてたら塩漬け運用は不可能だ
幸いにもアプリにスタティックリンクされたランタイムやライブラリの更新って組織のセキュリティポリシーでは見過ごされがちなんで、
サポートの切れた.NETランタイムのインストールをユーザーに要求するよりはSCDの方が面倒なことになりにくいだろうね
セキュリティアップデートなんて真面目に気にしてたら塩漬け運用は不可能だ
幸いにもアプリにスタティックリンクされたランタイムやライブラリの更新って組織のセキュリティポリシーでは見過ごされがちなんで、
サポートの切れた.NETランタイムのインストールをユーザーに要求するよりはSCDの方が面倒なことになりにくいだろうね
582デフォルトの名無しさん (ワッチョイ cb8e-Fz9b)
2021/07/12(月) 02:10:19.60ID:IjeYV4lO0583デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/12(月) 02:28:22.02ID:PmY8iF4Ja 正直ここ数年は.NETもC#も片手間以下にしか触ってなかったので
CoreってWindows 8の時代のPCLの延長線上のもの、要するに
最大公約数的なサブセット(要するに使えねえ)って認識だったんだけど、そうでもないのかw
CoreってWindows 8の時代のPCLの延長線上のもの、要するに
最大公約数的なサブセット(要するに使えねえ)って認識だったんだけど、そうでもないのかw
584デフォルトの名無しさん (ワッチョイ 355f-KGMb)
2021/07/12(月) 02:28:52.13ID:pg+kHsI00 >>538が正解じゃないの
どっちかだけってのがユーザーに不便強いてるよね
どっちかだけってのがユーザーに不便強いてるよね
585デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/13(火) 02:17:50.11ID:aO3Sze2Q0 変な質問だけどオフライン環境下でしか使わないアプリとかでも.netの更新はしなきゃいけない?
586デフォルトの名無しさん (ワッチョイ 4bda-2Uns)
2021/07/13(火) 03:27:36.04ID:YaNuVgTh0 電文パケットを全て破棄出来るなら
要らないんじゃね?
工場レベルで汚染ってニュースもあるので
そこいらはクリアされてる前提で
要らないんじゃね?
工場レベルで汚染ってニュースもあるので
そこいらはクリアされてる前提で
587デフォルトの名無しさん (ワッチョイ 054f-O0xy)
2021/07/13(火) 11:33:09.20ID:oyMxwOQE0 C#でアプリ作れるようになったらC++で応用って効きますか?
C++でただ球が跳ねつづける画像とかパックンみたいの作ってみたくて学習始めたんですが
ロベールのコピーコンストラクタ辺りで何してるのかよくわからなくなってしまって
C++でただ球が跳ねつづける画像とかパックンみたいの作ってみたくて学習始めたんですが
ロベールのコピーコンストラクタ辺りで何してるのかよくわからなくなってしまって
588デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/13(火) 11:38:39.95ID:ugiVX/deM それはC#もよく分かってないんじゃないかな
C#で値型と参照型を正しく理解していて、C++ではそれぞれがどう表現されるかが分かれば、
コピーコンストラクタがなぜ必要でどういう挙動をするかは自明なはず
C#で値型と参照型を正しく理解していて、C++ではそれぞれがどう表現されるかが分かれば、
コピーコンストラクタがなぜ必要でどういう挙動をするかは自明なはず
589デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:40:40.89ID:WUJYnH4rF C#とC++は全く別物
そりゃプログラミング未経験から学ぶのに比べればメリットあるけど
せいぜいその程度
そりゃプログラミング未経験から学ぶのに比べればメリットあるけど
せいぜいその程度
590デフォルトの名無しさん (ワッチョイ cbbb-iyCa)
2021/07/13(火) 11:40:46.31ID:npKAmtA00 >>587
文法が似ているとかデザインパターンの学習が無駄にならないっていう限度でなら応用が効くでしょう
しかし、それぞれの言語で難点となっている部分が全くもって別なので、学習が大変な部分には全くと言って良いほど応用が効きません
文法が似ているとかデザインパターンの学習が無駄にならないっていう限度でなら応用が効くでしょう
しかし、それぞれの言語で難点となっている部分が全くもって別なので、学習が大変な部分には全くと言って良いほど応用が効きません
591デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:41:00.44ID:WUJYnH4rF 場合によってはC#の知識がC++習得の邪魔をするかも知れないね
592デフォルトの名無しさん (エムゾネ FF43-Keio)
2021/07/13(火) 11:42:03.56ID:WUJYnH4rF Keioワロス
593デフォルトの名無しさん (ワッチョイ 054f-O0xy)
2021/07/13(火) 11:55:37.64ID:oyMxwOQE0 何の言語もまだ習得してない素人なのですが、この目的だとC#あんまり意味ないですか。
本変えてもっかいC++挑戦してみます。ありがとうございました。
本変えてもっかいC++挑戦してみます。ありがとうございました。
594デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/13(火) 11:58:30.95ID:ugiVX/deM >>591
俺はC#からの類推で自然に馴染めたけどな
C#からC++へ行くときのハマりポイントって多分RAIIの辺りだと思うけど、
C#においてオブジェクトが今どこにあるのかを意識してプログラミングしていればそんなにギャップはないと思う
俺はC#からの類推で自然に馴染めたけどな
C#からC++へ行くときのハマりポイントって多分RAIIの辺りだと思うけど、
C#においてオブジェクトが今どこにあるのかを意識してプログラミングしていればそんなにギャップはないと思う
595デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/13(火) 12:07:48.76ID:gERGfhJva C++だと学習のハードル高くない?
C#で取りあえず動くものを作りながら学ぶほうが良いと思う
C#で取りあえず動くものを作りながら学ぶほうが良いと思う
596デフォルトの名無しさん (ワッチョイ 852c-KGMb)
2021/07/13(火) 12:24:59.34ID:dtNqNBdW0 初心者は、Ruby で、
まず、ファイル操作・文字列処理だけを学ぶのが良い
その後、他の言語をやるべき!
まず、ファイル操作・文字列処理だけを学ぶのが良い
その後、他の言語をやるべき!
597デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/13(火) 13:00:54.76ID:oMy7Gq1va 最終目的はC++の習得で、そのためにC#を学ぶことに意味があるか、
それともただ回り道になるだけで無意味かって意味なら、
まったく無意味とも言えない思う。
少なくともOOP的な部分については後発のC#の方が
いきなりキメラでカオスなC++でやるより理解が早い気がする。
案外最短コースはC→C#→C++かもしれんよ。
いや知らんけど。
それともただ回り道になるだけで無意味かって意味なら、
まったく無意味とも言えない思う。
少なくともOOP的な部分については後発のC#の方が
いきなりキメラでカオスなC++でやるより理解が早い気がする。
案外最短コースはC→C#→C++かもしれんよ。
いや知らんけど。
598デフォルトの名無しさん (ラクッペペ MMcb-XQdx)
2021/07/13(火) 13:21:11.88ID:bYykchBXM >>596
お前はまず人間になろうな
お前はまず人間になろうな
599デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/13(火) 18:46:02.70ID:gERGfhJva C++, C標準関数, STL, MFC, ATL などなど覚えなきゃならない事がてんこ盛り
600デフォルトの名無しさん (ワッチョイ cd5f-U415)
2021/07/13(火) 22:08:38.28ID:pN4fUUEP0 ただ、C++のvectorとかあのあたりはC#でListをやってからの方が理解は早いと思う
601デフォルトの名無しさん (ワッチョイ 2390-epCi)
2021/07/14(水) 02:20:44.38ID:cEzLlJ010 でも、今はC++敷居下がってる
俺もずっと前にやったとき挫折したけど、数年前にやったらいけた
俺がその間に経験積んだのも事実だが、modern c++ってすげぇc++で作りやすくなってた
c++20でとりあえず低レベルなコルーチンきて?
c++23でasync/awaitな高レベルなインターフェース用意されるのかな
どんどん使い安くなってると思う
俺もずっと前にやったとき挫折したけど、数年前にやったらいけた
俺がその間に経験積んだのも事実だが、modern c++ってすげぇc++で作りやすくなってた
c++20でとりあえず低レベルなコルーチンきて?
c++23でasync/awaitな高レベルなインターフェース用意されるのかな
どんどん使い安くなってると思う
602デフォルトの名無しさん (ワッチョイ 2390-epCi)
2021/07/14(水) 02:24:40.48ID:cEzLlJ010 それでもまぁC#の方を先にやってからの方が楽だと思うな
C++だとややこしいからとりあえずどうでもいいこととかに足をとられたり
するかのしれない
C++だとややこしいからとりあえずどうでもいいこととかに足をとられたり
するかのしれない
603デフォルトの名無しさん (ワッチョイ 2de6-a+1V)
2021/07/14(水) 02:26:58.50ID:jkqZHJGB0 ネットで適当に検索して〜〜は無理だな
読めない
読めない
604デフォルトの名無しさん (ワッチョイ fd88-DcAx)
2021/07/14(水) 02:27:21.43ID:iC7aHD9J0 C++もany variant optionalなどが入ったからある程度はc#のマネージな考え方に近づいてるが、
今から始める人にはchar*とwchar_t*とwstringとstring に加えて u8string やu16string など文字列系がカオスだろなぁ。
しかもdll作る際は結局はインターフェースはプリミティブ型だけしとかないと、
まともに使えないdllになるから、テンプレートや新規に入った型も限定的な環境でしか役にたたんしw
今から始める人にはchar*とwchar_t*とwstringとstring に加えて u8string やu16string など文字列系がカオスだろなぁ。
しかもdll作る際は結局はインターフェースはプリミティブ型だけしとかないと、
まともに使えないdllになるから、テンプレートや新規に入った型も限定的な環境でしか役にたたんしw
605デフォルトの名無しさん (ワッチョイ 2390-EAnP)
2021/07/14(水) 02:33:39.69ID:cEzLlJ010 >>604
そうそれ。c++選択肢多いから、俺みたいに細かい人が最初やるには向いてない
文字列の話だって.netならutf -16の標準stringを取りあえず使っておけばいいけど
c++だとどのエンコード使おっかなとか下らない事で悩んで先に進まなくなる
そうそれ。c++選択肢多いから、俺みたいに細かい人が最初やるには向いてない
文字列の話だって.netならutf -16の標準stringを取りあえず使っておけばいいけど
c++だとどのエンコード使おっかなとか下らない事で悩んで先に進まなくなる
606デフォルトの名無しさん (ワッチョイ 8d54-8NFQ)
2021/07/14(水) 02:41:48.38ID:veS53koK0 自分の場合、Windows の GUI アプリ作りたくて C++ 始めたけど、プログラム知識ほぼ 0 の時に、C + API と、C++ + MFC のGUI アプリのサンプルソース読んで一回諦めた。
C# 始めてから C++ 始めたことで救われた。
細かい所を確認しながら進めないと気が済まない + 目標までのハードルがめっちゃ高いと感じると心が折れる。
こんな人は、C++ の前に C# やるべき。
C# 始めてから C++ 始めたことで救われた。
細かい所を確認しながら進めないと気が済まない + 目標までのハードルがめっちゃ高いと感じると心が折れる。
こんな人は、C++ の前に C# やるべき。
607デフォルトの名無しさん (ワッチョイ 355f-6wWl)
2021/07/14(水) 07:06:12.20ID:QQQ6x1zU0 C++にあっさり挫折した過去があるワイでも、C#だとそこそこに使えて助かってるわ
608デフォルトの名無しさん (エアペラ SD19-NlZa)
2021/07/14(水) 07:56:34.76ID:yzrBZN8qD そりゃレイヤーが全然違うしね
609デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 09:48:23.28ID:gix7WKJqM >>606
俺もそうだわ
C++はWINAPIだの仮想デストラクタだのと意味不明なお約束があまりにも多すぎて習得できる気がしなかった
C#の後だと重要なところと後回しでいいところの区別がついてすんなり入れたな
俺もそうだわ
C++はWINAPIだの仮想デストラクタだのと意味不明なお約束があまりにも多すぎて習得できる気がしなかった
C#の後だと重要なところと後回しでいいところの区別がついてすんなり入れたな
610デフォルトの名無しさん (ワッチョイ f5ad-oYkY)
2021/07/14(水) 12:52:36.76ID:89AG2aEZ0 Formにポトペタで作れるしね。
611デフォルトの名無しさん (ワッチョイ a5da-XPwB)
2021/07/14(水) 14:05:49.07ID:XRr9+sqQ0 自分はWTLでGUIアプリ組んでたな
C#は食わず嫌いだったけど今はC#だけだな
C#は食わず嫌いだったけど今はC#だけだな
612デフォルトの名無しさん (ワッチョイ bdae-6oml)
2021/07/14(水) 17:04:04.00ID:gWKZTcc80 BorlandのC++builderでは作れたけどMFCアプリは作れなかったな
C++じゃなくMFCに問題があるんじゃなかろうか?
C++じゃなくMFCに問題があるんじゃなかろうか?
613デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/14(水) 17:09:46.93ID:9x2VN1AY0 var test1 = メソッド1();
var test2 = メソッド2(test1)
var test3 = メソッド3(test2)
こんなふうに数珠繋ぎみたいに結果を渡していくやり方は作り方を見直したほうが良い?
メソッドの引数は値のコピーを渡してるから呼び出し元には影響ないのは分かるけど、どこでどの値を変えてるか分かりにくくなってバグを生み出しやすい作りな気もしてる
初歩的な質問で申し訳ないけどアドバイスいただきたい
var test2 = メソッド2(test1)
var test3 = メソッド3(test2)
こんなふうに数珠繋ぎみたいに結果を渡していくやり方は作り方を見直したほうが良い?
メソッドの引数は値のコピーを渡してるから呼び出し元には影響ないのは分かるけど、どこでどの値を変えてるか分かりにくくなってバグを生み出しやすい作りな気もしてる
初歩的な質問で申し訳ないけどアドバイスいただきたい
614デフォルトの名無しさん (ワッチョイ 23e4-4PPV)
2021/07/14(水) 17:28:30.06ID:+eseIR4Q0 test1とかtest2に使い道がないならば
var test3=method3(method2(method1()))
でもええって話ではあるけど
要は間の処理がどうなっているかによりけりだと思う
var test3=method3(method2(method1()))
でもええって話ではあるけど
要は間の処理がどうなっているかによりけりだと思う
615デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 17:34:07.92ID:gix7WKJqM >>613
うん、良くないね
君も気付いてる通り、引数のコンテキストがどんどん肥大化してどこで何やってんのか分からなくなる典型的なアンチパターンだ
ほんとにそのテスト2〜3は引数に渡されたオブジェクト全体を使ってるの?
やりたいことは、
var c = new C { A = test2(test1.X), B = test3(test1.Y) };
だったりしない?
うん、良くないね
君も気付いてる通り、引数のコンテキストがどんどん肥大化してどこで何やってんのか分からなくなる典型的なアンチパターンだ
ほんとにそのテスト2〜3は引数に渡されたオブジェクト全体を使ってるの?
やりたいことは、
var c = new C { A = test2(test1.X), B = test3(test1.Y) };
だったりしない?
616デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 17:50:29.76ID:QC3eIOjva >>613
いいと思うよ
例えばだけどこういうことだろ?
基本価格 = 基本価格取得();
割引価格 = サマーキャンペーン割引(基本価格);
税込価格 = 消費税加算(割引価格);
とてもクリーンで見やすいコードじゃないか
ただタイピングが楽になるからメソッドチェーンにしたい欲求はある
基本価格取得()
.サマーキャンペーン割引()
.消費税加算();
いいと思うよ
例えばだけどこういうことだろ?
基本価格 = 基本価格取得();
割引価格 = サマーキャンペーン割引(基本価格);
税込価格 = 消費税加算(割引価格);
とてもクリーンで見やすいコードじゃないか
ただタイピングが楽になるからメソッドチェーンにしたい欲求はある
基本価格取得()
.サマーキャンペーン割引()
.消費税加算();
617デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 18:16:23.00ID:gix7WKJqM >>616
どこでどの値を変えてるか分かりにくくなりそうって言ってるから、単純なスカラー値ではないんじゃないの
var 注文 = 注文を取得();
var キャンペーン適用済み注文 = キャンペーン適用(注文);
var 送料計算済み注文 = 送料計算(キャンペーン適用済み注文);
みたいな感じと想像した
どこでどの値を変えてるか分かりにくくなりそうって言ってるから、単純なスカラー値ではないんじゃないの
var 注文 = 注文を取得();
var キャンペーン適用済み注文 = キャンペーン適用(注文);
var 送料計算済み注文 = 送料計算(キャンペーン適用済み注文);
みたいな感じと想像した
618デフォルトの名無しさん (ワッチョイ 23e4-HFg0)
2021/07/14(水) 18:19:46.23ID:9x2VN1AY0 >>614 >>615
やっぱり良くないか…
引数に渡してるものは部分的にしか使ってない
例えば100個くらいの配列を渡してこの中の10個くらいしか使ってない
>>616
これはこの内容で良さそう
やる事が一貫してるというか意味が通じてるというか
最初に挙げた例と違って申し訳ないんだけど、実際にやりたいのはこんな感じ
数珠繋ぎとは少し違う、ごめん
@全装置データ = 装置A〜Zデータ取得()
A正常or異常 = 装置AデータDB書き込み(全装置データ)
B正常or異常 = 装置BデータDB書き込み(全装置データ)
.
.
.
C正常or異常 = 装置ZデータDB書き込み(全装置データ)
D正常or異常 = 装置へデータ書き込み(全装置データ)
メソッドに渡すのはコピーとはいえ、@で取得したデータを色んな所へ渡して使い回してて、どこかで値が変わってしまう可能性も含んでる作り方なのかなと思って>>613の質問に至ったの
やっぱり良くないか…
引数に渡してるものは部分的にしか使ってない
例えば100個くらいの配列を渡してこの中の10個くらいしか使ってない
>>616
これはこの内容で良さそう
やる事が一貫してるというか意味が通じてるというか
最初に挙げた例と違って申し訳ないんだけど、実際にやりたいのはこんな感じ
数珠繋ぎとは少し違う、ごめん
@全装置データ = 装置A〜Zデータ取得()
A正常or異常 = 装置AデータDB書き込み(全装置データ)
B正常or異常 = 装置BデータDB書き込み(全装置データ)
.
.
.
C正常or異常 = 装置ZデータDB書き込み(全装置データ)
D正常or異常 = 装置へデータ書き込み(全装置データ)
メソッドに渡すのはコピーとはいえ、@で取得したデータを色んな所へ渡して使い回してて、どこかで値が変わってしまう可能性も含んでる作り方なのかなと思って>>613の質問に至ったの
619デフォルトの名無しさん (アウアウウー Sa09-6Mb1)
2021/07/14(水) 18:32:18.26ID:aEJsAOR7a620デフォルトの名無しさん (ブーイモ MMeb-u7yY)
2021/07/14(水) 18:50:03.34ID:gix7WKJqM621デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 19:02:26.74ID:QC3eIOjva >>617
その場合はその業務は誰の知識なのか?に注目する
メソッドの引数と返り値をスカラーにした場合、そのメソッドの「呼び出し側」が
1 引数のエンティティから適切な属性を取得し、2 メソッドを呼び出し、
3 引数そのものあるいはクローンに対して適切な属性を更新する
方法を「知らなければならない」
例えばサマーキャンペーン割引のロジックが「注文の合計基本価格が10000円以上、注文明細のどれか1つでもキャンペーン対象商品フラグが立っていること」だったらどうだろうか?
メソッドの呼び出し側はきっとこう思う筈だ
俺は注文をサマーキャンペーン割引して欲しいだけなのに、
なぜかサマーキャンペーン割引に合計基本価格と注文明細のキャンペーン対象商品フラグが必要だという業務知識を知らなければならない
ただ黙って割引してほしいだけなのに、なんで俺が適切な情報をいちいち与えてやらなければならんのだ
そんなのはサマーキャンペーン割引の責務を担うメソッドが知っているべきだろう
その場合はその業務は誰の知識なのか?に注目する
メソッドの引数と返り値をスカラーにした場合、そのメソッドの「呼び出し側」が
1 引数のエンティティから適切な属性を取得し、2 メソッドを呼び出し、
3 引数そのものあるいはクローンに対して適切な属性を更新する
方法を「知らなければならない」
例えばサマーキャンペーン割引のロジックが「注文の合計基本価格が10000円以上、注文明細のどれか1つでもキャンペーン対象商品フラグが立っていること」だったらどうだろうか?
メソッドの呼び出し側はきっとこう思う筈だ
俺は注文をサマーキャンペーン割引して欲しいだけなのに、
なぜかサマーキャンペーン割引に合計基本価格と注文明細のキャンペーン対象商品フラグが必要だという業務知識を知らなければならない
ただ黙って割引してほしいだけなのに、なんで俺が適切な情報をいちいち与えてやらなければならんのだ
そんなのはサマーキャンペーン割引の責務を担うメソッドが知っているべきだろう
622デフォルトの名無しさん (アウアウウー Sa09-9K0I)
2021/07/14(水) 19:11:44.77ID:QC3eIOjva >>618
この場合もまずは責務を明確にしてメソッドを分けるといいよ
1. オンメモリのデータセットから特定のデータを正確に抽出する責務を担ったメソッド
2. 単にデータをDBに書き込む責務を担ったメソッド
つまりこういうこと↓
a = Aデータ抽出(全データ)
b = Bデータ抽出(全データ)
…
z = Zデータ抽出(全データ)
結果A = リポジトリA.save(a)
結果B = リポジトリB.save(b)
…
結果Z = リポジトリZ.save(z)
結果All = リポジトリAll.save(全データ)
この場合もまずは責務を明確にしてメソッドを分けるといいよ
1. オンメモリのデータセットから特定のデータを正確に抽出する責務を担ったメソッド
2. 単にデータをDBに書き込む責務を担ったメソッド
つまりこういうこと↓
a = Aデータ抽出(全データ)
b = Bデータ抽出(全データ)
…
z = Zデータ抽出(全データ)
結果A = リポジトリA.save(a)
結果B = リポジトリB.save(b)
…
結果Z = リポジトリZ.save(z)
結果All = リポジトリAll.save(全データ)
623デフォルトの名無しさん (ワッチョイ a301-knaX)
2021/07/14(水) 23:06:55.57ID:idSc395A0624デフォルトの名無しさん (ワッチョイ 9b62-yxX3)
2021/07/14(水) 23:09:43.35ID:ikn1S79j0 >>618
メソッドの引数として渡したパラメータを書き換えないというのが基本
コピーして渡さないといけないメソッドとして作られてしまってるのが問題で、更新日時とか何かしらの書き換えがあるならその結果を別途返すべき
メソッドのパラメータとして全データを渡すよりそのメソッドが使う必要最低限のものにしといた方がわかりやすい
まあ、条件にマッチしないデータは無視するという動作でも不自然じゃないからそんなに重要なことじゃないかな
メソッドの引数として渡したパラメータを書き換えないというのが基本
コピーして渡さないといけないメソッドとして作られてしまってるのが問題で、更新日時とか何かしらの書き換えがあるならその結果を別途返すべき
メソッドのパラメータとして全データを渡すよりそのメソッドが使う必要最低限のものにしといた方がわかりやすい
まあ、条件にマッチしないデータは無視するという動作でも不自然じゃないからそんなに重要なことじゃないかな
625デフォルトの名無しさん (アウアウクー MM21-HFg0)
2021/07/15(木) 18:33:23.51ID:YvGaZ0G0M レスくれた人ありがとう
貰ったアドバイスを自分なりにもうちょい整理してみる
>>622
細かくなるけど必要なもの毎に処理を分けるってことだよね
自分みたいな素人目線だとこういうのは小さい処理が増えるのが煩雑に感じてやるのは躊躇するけど一個一個が独立してるしこの方が結果的に良さそう
貰ったアドバイスを自分なりにもうちょい整理してみる
>>622
細かくなるけど必要なもの毎に処理を分けるってことだよね
自分みたいな素人目線だとこういうのは小さい処理が増えるのが煩雑に感じてやるのは躊躇するけど一個一個が独立してるしこの方が結果的に良さそう
626デフォルトの名無しさん (アウアウウー Sa09-oYkY)
2021/07/15(木) 18:53:56.43ID:p7EIkR62a 1つのメソッド(動作)に複数の動作をやらせない
627デフォルトの名無しさん (スププ Sdfa-VvAo)
2021/07/16(金) 05:44:43.56ID:kw030b9nd628デフォルトの名無しさん (ブーイモ MMde-uKKI)
2021/07/16(金) 10:50:53.05ID:5OijHeJ1M AWS LambdaをC#で使ってる人おる?
DIの正しいやり方がわからん
ググると
FunctionクラスのデフォルトコンストラクタでServiceCollectionをインスタンス化して
Serviceを追加して解決してprivateフィールドに代入
的なコードは出てくるんだけど
なんか無理矢理感があってすごく気持ち悪い
ASP.NET CoreのControllerみたいにコンストラクタインジェクションしてくれればいいんだけどAWS LambdaのFunctionはそういうのないのかな
DIの正しいやり方がわからん
ググると
FunctionクラスのデフォルトコンストラクタでServiceCollectionをインスタンス化して
Serviceを追加して解決してprivateフィールドに代入
的なコードは出てくるんだけど
なんか無理矢理感があってすごく気持ち悪い
ASP.NET CoreのControllerみたいにコンストラクタインジェクションしてくれればいいんだけどAWS LambdaのFunctionはそういうのないのかな
629デフォルトの名無しさん (ブーイモ MMa1-3nkv)
2021/07/16(金) 12:25:27.67ID:Oq98um8EM 謎のランタイムが勝手にどっかで注入してくる方が気持ち悪いわ
Azure FunctionsなんかだとAzure側のランタイムがASP.NETと統合されてて注入できたりするけど、依存関係地獄になりがちでぶっちゃけ糞
Lambdaはその点余計なこと一切しないから単純明快で楽だ
そもそもLambdaごときにいちいちDIなんか要らんわ
FaaS使うんだったら差し替えはFunctionレベルでやるのが基本だよ
Azure FunctionsなんかだとAzure側のランタイムがASP.NETと統合されてて注入できたりするけど、依存関係地獄になりがちでぶっちゃけ糞
Lambdaはその点余計なこと一切しないから単純明快で楽だ
そもそもLambdaごときにいちいちDIなんか要らんわ
FaaS使うんだったら差し替えはFunctionレベルでやるのが基本だよ
630デフォルトの名無しさん (ブーイモ MMa1-3nkv)
2021/07/16(金) 12:44:52.48ID:Oq98um8EM WindowsってPowerShell以前はコマンドラインシェルが貧弱だったから、開発者は伝統的に何でもかんでもアプリケーションコードの箱庭内でやってしまう傾向があって、
Azure Functionsの設計思想なんかもそういう箱庭コーディングの文化を引き継いでいるところがある
対してAWSは小物をシェルで組み合わせて使うUNIX的な文化の色が強くて、Lambda関数もコーディング環境というよりはあくまで「ちゃんと単独で機能する小さなコマンド」なの
その中でさらにドメイン切って差し替えられるようにして、みたいな発想はしないんだよ
Azure Functionsの設計思想なんかもそういう箱庭コーディングの文化を引き継いでいるところがある
対してAWSは小物をシェルで組み合わせて使うUNIX的な文化の色が強くて、Lambda関数もコーディング環境というよりはあくまで「ちゃんと単独で機能する小さなコマンド」なの
その中でさらにドメイン切って差し替えられるようにして、みたいな発想はしないんだよ
631628 (ブーイモ MMde-uKKI)
2021/07/16(金) 13:41:32.46ID:YjA+/kj2M すまん自己解決したわ
AWSオフィシャルのLambda/ASP.NET Coreアダプタがあるらしい
まあそらそうだよなDIもまともに出来ないとかゴミサービスでしか使えんし
AWSオフィシャルのLambda/ASP.NET Coreアダプタがあるらしい
まあそらそうだよなDIもまともに出来ないとかゴミサービスでしか使えんし
632デフォルトの名無しさん (ワッチョイ 9d5f-R8z5)
2021/07/17(土) 01:55:18.52ID:YUa2zwOi0 最終的に保守のしやすいコードが一番ってことになりそうだ
633デフォルトの名無しさん (ワッチョイ 0154-x4cL)
2021/07/17(土) 04:37:12.67ID:SWDN49PP0 どうでもいいけど、状況判定に
if(HogeButton.Text == "あ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。
明日から犯人探しかな・・・
if(HogeButton.Text == "あ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。
明日から犯人探しかな・・・
634デフォルトの名無しさん (ブーイモ MMde-nkhS)
2021/07/17(土) 05:05:25.92ID:rQBsLn9RM どうでもいいけど、状況判定に
if(HogeButton.Text == "ほ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。
明日から犯人探しかな・・・
if(HogeButton.Text == "ほ" && !int.TryParse(HageButton.Text,out _))
みたいにコントロールのテキスト使いまくってるクラス見つけてしまった。
明日から犯人探しかな・・・
635デフォルトの名無しさん (アウアウウー Sa39-kbnc)
2021/07/17(土) 09:29:37.87ID:hzHLbOfFa 数学の積分で使うSの大きなやつって
for文なの?
for文なの?
636デフォルトの名無しさん (ブーイモ MMde-84rc)
2021/07/17(土) 09:47:49.19ID:FY+xgTJtM そう妄想するのは自由
637デフォルトの名無しさん (ワッチョイ 3a52-KoI6)
2021/07/17(土) 10:05:47.56ID:wcPyadci0 数値積分でググるといいんでないかな
638デフォルトの名無しさん (スププ Sdfa-xGJc)
2021/07/17(土) 12:05:36.74ID:ED/D6NvId 時間の流れが乱れている…
639デフォルトの名無しさん (エムゾネ FFfa-E0YB)
2021/07/17(土) 15:01:08.33ID:eTC1af8gF Σはforだが(といってもΣの方が遥かに高速な訳だが)
∫はforではない
∫はforではない
640デフォルトの名無しさん (ワッチョイ b6da-3z6a)
2021/07/17(土) 15:50:53.78ID:IsTBXftL0 Πは?
641デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 15:59:07.68ID:oVxa7DA2a >>639
Σも普通は解析的に答えを出すので、数値演算(ループ)を連想するのはかなり違うと思う
Σも普通は解析的に答えを出すので、数値演算(ループ)を連想するのはかなり違うと思う
642デフォルトの名無しさん (エムゾネ FFfa-E0YB)
2021/07/17(土) 16:04:35.47ID:eTC1af8gF forの解釈として毎回実行時計算する言語ならそうだが
forでもコンパイル時にΣやΠが解析的に完了してる言語があっても良いだろう
C#スレだからどうでも良いけど
forでもコンパイル時にΣやΠが解析的に完了してる言語があっても良いだろう
C#スレだからどうでも良いけど
643デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 17:20:34.66ID:6qmea//qa 解析的に求めるっていうのは例えば等差数列の式から
その和の公式を導出するようなことを言うんですよ。
その和の公式を導出するようなことを言うんですよ。
644デフォルトの名無しさん (ワッチョイ 6102-u1ma)
2021/07/17(土) 18:21:36.91ID:tq+22Yf30 プログラマと数学屋で
用語の齟齬が起きているな
用語の齟齬が起きているな
645デフォルトの名無しさん (アウアウウー Sa39-E0YB)
2021/07/17(土) 18:51:59.16ID:6qmea//qa いやいや、解析的っていうのは数値計算の対義語みたいなもので「数学的に解く」
みたいなニュアンスだと思うから数学屋さんはあまり使わないと思うよ知らんけど。
情報屋の言い回しだと思うよ。
俺は大学のアルゴリズムの講義でニュートン法とかやった時に聞いたのが最初の気がする
先生はもちろん情報工学の先生だ
みたいなニュアンスだと思うから数学屋さんはあまり使わないと思うよ知らんけど。
情報屋の言い回しだと思うよ。
俺は大学のアルゴリズムの講義でニュートン法とかやった時に聞いたのが最初の気がする
先生はもちろん情報工学の先生だ
646デフォルトの名無しさん (ワッチョイ 615f-eSYY)
2021/07/17(土) 18:59:49.36ID:RupVd7jf0647デフォルトの名無しさん (ワッチョイ 76a7-XiFW)
2021/07/17(土) 19:16:24.85ID:NOfppBHx0 ロックマンで見た
648デフォルトの名無しさん (ラクッペペ MM0e-5SdA)
2021/07/17(土) 19:24:46.25ID:iVAlWQfZM649デフォルトの名無しさん (ワッチョイ 76f2-yayT)
2021/07/17(土) 19:29:45.80ID:ALTiYW8P0 シグマゼロビーム
650デフォルトの名無しさん (ワッチョイ b101-E0YB)
2021/07/18(日) 13:09:02.92ID:RVrShVdw0 ビジネスが破綻する大半の原因は、 ”ビジネスを始める人の大半が、真の意味での
「起業家」ではなく、 起業したい、という熱に浮かれた「職人」として働いているに過ぎない。”
という事実にあります。
「職人」によって運営されているビジネスは、ビジネスが働くのではなく、彼ら自身が毎日働くこと
によって、成り立っています。
彼らは毎日、自分がやり方を知っている仕事を一生懸命にこなしていますが、「起業家」としての
視点が無いために、成長に限界が生まれます。
そして、生計を立てるために、彼ら自身がずっと働き続けないとならないのです。
誰もが必ず陥る罠
私が見ている限り、起業熱にうなされる人たちは、必ずと言ってもよいほど誤った
「仮定」を置いてしまうようだ。実は、のちに彼らが苦難の道を歩むことになるのは、
この、「仮定」が致命的に間違っているからなのである
致命的な仮定とは・・・「事業の中心となる専門的な能力があれば、事業を経営する能力は
十分に備わっている」ということである
私がこの仮定を致命的だと書いたのは、この仮定が間違っているからにほかならない
事業の中で専門的な仕事をこなすことと、その能力を生かして事業を経営することは
全く別の問題である。高い専門能力を持つ人にとって、独立は他人の為に働くという苦痛から
解放されるということを意味していた。それにもかかわらず、前提となる「仮定」が致命的とも
いえるほど間違えているために、彼らは自由になるどころか、自分が始めた事業に苦しめ
られるようになってしまうのである
マイケルEガーバー「はじめの一歩を踏み出そう」P28~29
「起業家」ではなく、 起業したい、という熱に浮かれた「職人」として働いているに過ぎない。”
という事実にあります。
「職人」によって運営されているビジネスは、ビジネスが働くのではなく、彼ら自身が毎日働くこと
によって、成り立っています。
彼らは毎日、自分がやり方を知っている仕事を一生懸命にこなしていますが、「起業家」としての
視点が無いために、成長に限界が生まれます。
そして、生計を立てるために、彼ら自身がずっと働き続けないとならないのです。
誰もが必ず陥る罠
私が見ている限り、起業熱にうなされる人たちは、必ずと言ってもよいほど誤った
「仮定」を置いてしまうようだ。実は、のちに彼らが苦難の道を歩むことになるのは、
この、「仮定」が致命的に間違っているからなのである
致命的な仮定とは・・・「事業の中心となる専門的な能力があれば、事業を経営する能力は
十分に備わっている」ということである
私がこの仮定を致命的だと書いたのは、この仮定が間違っているからにほかならない
事業の中で専門的な仕事をこなすことと、その能力を生かして事業を経営することは
全く別の問題である。高い専門能力を持つ人にとって、独立は他人の為に働くという苦痛から
解放されるということを意味していた。それにもかかわらず、前提となる「仮定」が致命的とも
いえるほど間違えているために、彼らは自由になるどころか、自分が始めた事業に苦しめ
られるようになってしまうのである
マイケルEガーバー「はじめの一歩を踏み出そう」P28~29
651デフォルトの名無しさん (スップ Sdda-gawc)
2021/07/18(日) 19:33:43.97ID:j2ludHuAd652デフォルトの名無しさん (スップ Sdda-gawc)
2021/07/18(日) 19:34:39.70ID:j2ludHuAd >>454
ありがとうございます
ありがとうございます
653デフォルトの名無しさん (スッップ Sdfa-gawc)
2021/07/18(日) 19:35:09.34ID:G9pOURuid >>455
ありがとうございます
ありがとうございます
654デフォルトの名無しさん (ワッチョイ 0154-x4cL)
2021/07/20(火) 06:41:50.36ID:oT6fq8l/0 SqlServerへの非同期クエリを、ORマッパー使わずにSqlConnectionとSqlCommandで送信したい場合、
Task.Run(() => sqlCommand.ExecuteReader())
と、
sqlCommand.ExecuteReaderAsync()
のどっちを使うのが理想ですか?
Task.Run(() => sqlCommand.ExecuteReader())
と、
sqlCommand.ExecuteReaderAsync()
のどっちを使うのが理想ですか?
655デフォルトの名無しさん (ワッチョイ 0d01-R8z5)
2021/07/20(火) 08:27:13.73ID:6lATwKKz0 Asyncついたメソッドをawaitしたまへ
656デフォルトの名無しさん (ワッチョイ 76e3-xL6t)
2021/07/20(火) 13:10:25.48ID:mJ2OrUml0 >>654
後者じゃね
後者じゃね
657デフォルトの名無しさん (ワッチョイ 462d-Io+N)
2021/07/20(火) 13:19:06.99ID:luEetGrO0 後者があるのに前者を使うメリットが分からない
■ このスレッドは過去ログ倉庫に格納されています
