!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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
http://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#(初心者用) Part149
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワキゲー MMca-Gz4g)
2020/12/16(水) 11:29:35.35ID:TSvQ057dM2デフォルトの名無しさん (ワッチョイ 7b7c-Jd3U)
2020/12/16(水) 11:49:28.32ID:nNBKgDIo03デフォルトの名無しさん (ワッチョイ 7b24-+M4v)
2020/12/22(火) 11:28:16.22ID:ojlio7fm0 HttpClientって使いづらいんだけどなんでWebClientやWebRequestは非推奨でHttpClientが推奨なの?
4デフォルトの名無しさん (ワッチョイ eaad-8w8B)
2020/12/22(火) 13:06:20.64ID:T3f18Pq10 どう使いづらいの?
5デフォルトの名無しさん (ワッチョイ 7b24-+M4v)
2020/12/22(火) 13:10:35.40ID:ojlio7fm06デフォルトの名無しさん (ワッチョイ eaad-8w8B)
2020/12/22(火) 14:03:09.42ID:T3f18Pq10 >>5
え、できるでしょ
え、できるでしょ
7デフォルトの名無しさん (ワッチョイ 97da-fsPq)
2020/12/22(火) 21:14:53.82ID:GHilppOn0 >>6
KWSK
KWSK
8デフォルトの名無しさん (ワッチョイ d190-P4DR)
2020/12/23(水) 09:31:05.35ID:zdm41kCZ0 まず、エンコードってもっと具体的に何のエンコードがはっきりしてくれんと
gzipやdeflat圧縮するcontent-encodingなのか、
chunked転送するcontent-transfer-encodingなのか、
はたまた、文字列送信したくて、その文字列のエンコードなのか..
まぁ、どのみちどれもできそうな気がするが
gzipやdeflat圧縮するcontent-encodingなのか、
chunked転送するcontent-transfer-encodingなのか、
はたまた、文字列送信したくて、その文字列のエンコードなのか..
まぁ、どのみちどれもできそうな気がするが
9デフォルトの名無しさん (ワッチョイ 5310-iuc3)
2020/12/28(月) 20:57:23.90ID:iJ3wi52z0 すみません 教えてください
CPUの使用率を知るために、
Windows.System.Diagnostics 空間の
SystemCpuUsage class が使えると思うのですが、
SyatemCpuUsage cpuUsage;
result = cpuUsage.GetReport();
とやると、 実行時に systemCpuUsage がnull でした
と怒られ、
SyatemCpuUsage cpuUsage = new SystemCpuUsage();
result = cpuUsage.GetReport();
とすると
SyatemCpuUsage cpuUsageには、引数0を指定するコンストラクターは含まれていません
と怒られます。
Cpuの使用時間を知りたいのですがどのようにすればよいのでしょうか?
CPUの使用率を知るために、
Windows.System.Diagnostics 空間の
SystemCpuUsage class が使えると思うのですが、
SyatemCpuUsage cpuUsage;
result = cpuUsage.GetReport();
とやると、 実行時に systemCpuUsage がnull でした
と怒られ、
SyatemCpuUsage cpuUsage = new SystemCpuUsage();
result = cpuUsage.GetReport();
とすると
SyatemCpuUsage cpuUsageには、引数0を指定するコンストラクターは含まれていません
と怒られます。
Cpuの使用時間を知りたいのですがどのようにすればよいのでしょうか?
10デフォルトの名無しさん (ワッチョイ ab2c-iuc3)
2020/12/28(月) 21:59:41.52ID:mOtjlN620 SystemDiagnosticInfo.GetForCurrentSystemから
CPUの使用時間なら他にはSystem.Diagnostics.PerformanceCounter使うとか
CPUの使用時間なら他にはSystem.Diagnostics.PerformanceCounter使うとか
11デフォルトの名無しさん (ワッチョイ 97a7-/qkg)
2020/12/30(水) 08:34:44.60ID:QqXAyZyG0 CPU使用率取得 c#
でコードが出てきたがこれでは動かない?
でコードが出てきたがこれでは動かない?
12デフォルトの名無しさん (ワッチョイ aebb-AofU)
2021/01/03(日) 06:53:07.36ID:s7zZ6b100 var x = SomeClass.Create();
if( x?.BooleanProperty ){...}
の上手な書き方ってありますか?
↑はbool?とboolの違いで怒られます
if( x?.BooleanProperty == true ){...}
とかってスマートじゃない気がするんですが
if( x?.BooleanProperty ){...}
の上手な書き方ってありますか?
↑はbool?とboolの違いで怒られます
if( x?.BooleanProperty == true ){...}
とかってスマートじゃない気がするんですが
13デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/03(日) 08:16:15.77ID:TwYJ75OS0 >>12
nullのときってどう動くん?それ
nullのときってどう動くん?それ
14デフォルトの名無しさん (ワッチョイ 468c-yGan)
2021/01/03(日) 08:44:58.15ID:/wUWHJa20 x.?prop ?? false
15デフォルトの名無しさん (ワッチョイ 06de-Czn+)
2021/01/03(日) 11:46:24.42ID:Cv28EBZ70 nullとfalse=NGの値が同じだから辛うじて動いてるだけの処理なのか
よくあるOK=0でそれ以外がエラーの処理でやっちゃうとおかしくなるから
そういうの書くのやめたほうがいーんじゃない?的な
よくあるOK=0でそれ以外がエラーの処理でやっちゃうとおかしくなるから
そういうの書くのやめたほうがいーんじゃない?的な
16デフォルトの名無しさん (ワッチョイ 9d78-UAPS)
2021/01/03(日) 12:25:34.51ID:9pfzLSF20 bool?の時は素直にtrueやfalseって書いた方が個人的に安心できる
まぁそんなことしなくて済むような構造にするのが一番だけど
まぁそんなことしなくて済むような構造にするのが一番だけど
17デフォルトの名無しさん (ワッチョイ edde-Czn+)
2021/01/03(日) 12:58:09.11ID:Pz+0E5Uq018デフォルトの名無しさん (ワッチョイ ad33-Eg7J)
2021/01/03(日) 14:43:03.50ID:dFTAfdRH0 初心者以前に国語力ない奴ばかりでワロタ
19デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/03(日) 15:11:01.48ID:TwYJ75OS0 初心者は正しく誘導してやらないとな
間違いなくしなくていい省略をして
言語の機能に飛びついてウンコードを作ろうとしていたのを未然に防いだ
初心者スレはこうでなければ
間違いなくしなくていい省略をして
言語の機能に飛びついてウンコードを作ろうとしていたのを未然に防いだ
初心者スレはこうでなければ
20デフォルトの名無しさん (ワッチョイ c6da-VSZo)
2021/01/03(日) 15:44:01.57ID:FpoyKofE0 ifでリテラルや定数を右辺に書くのは素人
21デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/03(日) 15:47:35.09ID:QdF5iATA0 仕様も確認せずにバグ作り込むアンポンタンしかおらんのかw
まず>>13への回答次第だろ
まず>>13への回答次第だろ
22デフォルトの名無しさん (ワッチョイ 2252-OOK0)
2021/01/03(日) 15:57:39.72ID:Xn7pfEjF0 >>20
いまだにそんなことを言う奴は恥ずかしい
いまだにそんなことを言う奴は恥ずかしい
23デフォルトの名無しさん (ワッチョイ c240-OOK0)
2021/01/03(日) 16:40:24.21ID:ZZnWN1rj0 >>20
今はミスしてもちゃんと代入になっていると警告してるから気にしないね。
今はミスしてもちゃんと代入になっていると警告してるから気にしないね。
24デフォルトの名無しさん (ワッチョイ 9dad-YyRl)
2021/01/03(日) 17:54:19.93ID:uWkBjJnT0 >>23
むしろ左辺に定数書いてる奴見ると殺しそうになる。
むしろ左辺に定数書いてる奴見ると殺しそうになる。
25デフォルトの名無しさん (ワッチョイ c240-OOK0)
2021/01/03(日) 18:03:00.86ID:ZZnWN1rj0 >>24
俺はぶん殴ってやりたくなる。
俺はぶん殴ってやりたくなる。
26デフォルトの名無しさん (ワッチョイ c210-UAPS)
2021/01/03(日) 18:13:01.03ID:YmRvWB9v0 君たちには先輩方に対する敬意がない
27デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/03(日) 18:13:42.18ID:QdF5iATA0 別にそいつに危害を加えたくはない、というか関わりたくない
単に老害って哀しいなって思うだけ
単に老害って哀しいなって思うだけ
28デフォルトの名無しさん (アウアウカー Sa69-YyRl)
2021/01/03(日) 18:28:01.16ID:VMrgEgvna ちなみにヨーダ記法とも言う。
29デフォルトの名無しさん (ワッチョイ c240-OOK0)
2021/01/03(日) 18:43:52.72ID:ZZnWN1rj0 ヨーダは好きだがヨーダ記法は嫌いです。
30デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/03(日) 19:01:39.19ID:S0YLbz+qa 老害云々以前にC#ではほぼ何の意味もないけど、
CでもC#でも==とすべきところを=と書いちゃったことなんか一度もないな。
普通はそうだよね。
CでもC#でも==とすべきところを=と書いちゃったことなんか一度もないな。
普通はそうだよね。
31デフォルトの名無しさん (オッペケ Srf1-ATda)
2021/01/03(日) 19:03:25.97ID:bRO3e+JVr 他の言語触ったあとだと間違えやすいんだよ
32デフォルトの名無しさん (ワッチョイ c2ad-ERVt)
2021/01/03(日) 19:47:28.74ID:hIXjVHhw0 >>20
燃料投下ご苦労さま
燃料投下ご苦労さま
33デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/03(日) 20:07:34.43ID:QdF5iATA0 今までタイプミスしたことないからこれからもしないと言うのは単なるアホ
ただ昔のコンパイラでは警告でなかったから一定の意味は「あった」けど、未だに言ってるのは単なる老害
ただ昔のコンパイラでは警告でなかったから一定の意味は「あった」けど、未だに言ってるのは単なる老害
34デフォルトの名無しさん (ワッチョイ c240-OOK0)
2021/01/03(日) 21:56:54.58ID:ZZnWN1rj035デフォルトの名無しさん (ワッチョイ c240-OOK0)
2021/01/03(日) 21:57:31.45ID:ZZnWN1rj0 >>33
同意。
同意。
36デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/03(日) 22:08:58.55ID:adFNNdCNa タイプミスてw
普通の人は画面見ながらコーディングするんだけどw
ひょっとすると==と打つつもりで=と打ったことはあるかもしれないが
それを見逃したことなど一度もない。
そもそもタイプミスは-キーのみで発生するわけではないので
理由になるはずがない。
申し訳ないけどこれ、昔も今も「羹に懲りてなますを吹く」以外の何物でもないよ。
そもそも「==の左辺に変数を書かない」などというルールを条件づけしたところで
その条件反射は間違って=を打ったところで発動しないのでは?w
っていうか同じ努力で「等価検査をしたい時は==」を条件づけられるだろうw
普通の人は画面見ながらコーディングするんだけどw
ひょっとすると==と打つつもりで=と打ったことはあるかもしれないが
それを見逃したことなど一度もない。
そもそもタイプミスは-キーのみで発生するわけではないので
理由になるはずがない。
申し訳ないけどこれ、昔も今も「羹に懲りてなますを吹く」以外の何物でもないよ。
そもそも「==の左辺に変数を書かない」などというルールを条件づけしたところで
その条件反射は間違って=を打ったところで発動しないのでは?w
っていうか同じ努力で「等価検査をしたい時は==」を条件づけられるだろうw
37デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/03(日) 22:15:19.58ID:adFNNdCNa こういう糞作法に疑問を感じない人はあれかね
+と打つつもりで*って打っちゃうかもしれないから
-+*/使わずにマクロでadd とかsubtractとか定義して使えって言われたら
納得して従うんかねwwwwwww
+と打つつもりで*って打っちゃうかもしれないから
-+*/使わずにマクロでadd とかsubtractとか定義して使えって言われたら
納得して従うんかねwwwwwww
38デフォルトの名無しさん (ワッチョイ 814f-Iopg)
2021/01/03(日) 22:16:18.14ID:myNdCsmw0 >それを見逃したことなど一度もない。
それは「あなたが」でしょ?あなた以外の普通の人が見逃すことがないと断言できるわけはない。
それは「あなたが」でしょ?あなた以外の普通の人が見逃すことがないと断言できるわけはない。
39デフォルトの名無しさん (ワッチョイ 3193-/QWA)
2021/01/03(日) 22:22:10.37ID:hZvGxwgh0 実際してない証明はできないし無意味な話だよ
40デフォルトの名無しさん (ワッチョイ 9901-z5JZ)
2021/01/03(日) 22:33:09.25ID:Lewq+os10 >>37
それCOBOLERの発想だよなぁw
それCOBOLERの発想だよなぁw
41デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/03(日) 22:50:45.04ID:TwYJ75OS0 VCの頃他の奴がやったときに結構見つけるまで苦労した覚えがあるけど
まあ、そんな頻度のあるバグではないな
まあ、そんな頻度のあるバグではないな
42デフォルトの名無しさん (ワッチョイ 426a-Zovn)
2021/01/03(日) 22:58:13.35ID:VROyTreA0 等価演算子が == 以外の言語を使った事ないなら間違えないのかも
43デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/03(日) 23:04:49.04ID:adFNNdCNa VBA触った後にC系のコード書くとつい....ないってw
くどいようだけど、どっちにしろ条件づけ(条件反射)なので、
同じ条件づけなら直接的な方がいいに決まってるでしょ
くどいようだけど、どっちにしろ条件づけ(条件反射)なので、
同じ条件づけなら直接的な方がいいに決まってるでしょ
44デフォルトの名無しさん (ワッチョイ 9901-z5JZ)
2021/01/03(日) 23:06:47.84ID:Lewq+os10 その手のbugはgimpel の pc Lint で潰していたな
lattice 時代からだから歴史の長いsoftだ
lattice 時代からだから歴史の長いsoftだ
45デフォルトの名無しさん (アウアウイー Sab1-hZl1)
2021/01/03(日) 23:12:43.97ID:fsLjg3fja まあエディタ環境もLintも貧弱だった2000年位までならヨーダ記法の採用にも一理はあるかもしれないけど
現代的な環境でC#を書くなら論外だわな
>>38みたいなことを言い出す奴は間違いなく老害かただの難癖野郎なのでプロジェクトに迎え入れちゃいけないし
万一抱えなきゃいけなくなったとしても若手に影響を及ぼすような仕事を与えてはならない
現代的な環境でC#を書くなら論外だわな
>>38みたいなことを言い出す奴は間違いなく老害かただの難癖野郎なのでプロジェクトに迎え入れちゃいけないし
万一抱えなきゃいけなくなったとしても若手に影響を及ぼすような仕事を与えてはならない
46デフォルトの名無しさん (ワッチョイ 814f-Iopg)
2021/01/03(日) 23:35:31.66ID:myNdCsmw0 いや、勝手にヨーダ記法を推奨していることにせんでくれる?
47デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 00:03:18.28ID:Nz2iXOdN0 >>34
Pascal とか Basic だろ
Pascal とか Basic だろ
48デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 00:04:33.12ID:Nz2iXOdN049デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 00:07:02.17ID:Nz2iXOdN050デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/04(月) 01:00:14.94ID:jzK8VmUQa 日本人は精神論根性論に走りやすいし、そうでなくても
ヒューマンエラーをシステマチックに回避しようという発想自体は悪くない。
ただ、その方法論が有効かどうか評価せずに飛びつくのは愚か。
日本は精神論者も多いけど、こういう教条主義者も負けないぐらい多い。
==の左辺に〜なんて全然有効じゃない。
ヒューマンエラーをシステマチックに回避しようという発想自体は悪くない。
ただ、その方法論が有効かどうか評価せずに飛びつくのは愚か。
日本は精神論者も多いけど、こういう教条主義者も負けないぐらい多い。
==の左辺に〜なんて全然有効じゃない。
51デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/04(月) 01:14:52.17ID:jzK8VmUQa それを言っちゃあおしまいよな話だけど、
真面目な話==と=を間違えるような人は本質的にプログラミング向いてないんだよw
間違うかそんなの。
ズブの素人でも1週間もコード書いてれば「等価検査は==」って条件づけされるってw
if(までタイプした時点で条件反射が発動するでしょ
真面目な話==と=を間違えるような人は本質的にプログラミング向いてないんだよw
間違うかそんなの。
ズブの素人でも1週間もコード書いてれば「等価検査は==」って条件づけされるってw
if(までタイプした時点で条件反射が発動するでしょ
52デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/04(月) 01:33:02.28ID:3rgEqS6K0 まあ、でも定数値を左辺に書くことはメリットしかないからな
やれと言われればやることではある
ただ、規約にしてしまって
ソース中のやってない箇所を1つ1つチェックまでして直す価値はないと思う
あくまでなるべくそう書いた方がいいかな?レベル
やれと言われればやることではある
ただ、規約にしてしまって
ソース中のやってない箇所を1つ1つチェックまでして直す価値はないと思う
あくまでなるべくそう書いた方がいいかな?レベル
53デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/04(月) 01:45:03.22ID:3rgEqS6K0 いくらメリットしかないって言っても規約に昇華されて
チェックまでさせようとする奴がいるとそいつが邪魔
定数値を左辺に書くよりそいつを排除することに力を入れたほうがいい
他にもやることはたくさんある
グローバル変数なくしたり、無意味なメンバ変数削除して引数にしたりと
優先順位が遥かに高いものが他にたくさんあるという前提は忘れてはならない
チェックまでさせようとする奴がいるとそいつが邪魔
定数値を左辺に書くよりそいつを排除することに力を入れたほうがいい
他にもやることはたくさんある
グローバル変数なくしたり、無意味なメンバ変数削除して引数にしたりと
優先順位が遥かに高いものが他にたくさんあるという前提は忘れてはならない
54デフォルトの名無しさん (ワッチョイ 426a-Zovn)
2021/01/04(月) 02:08:37.49ID:+AkCQ/yL055デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/04(月) 02:17:25.69ID:3rgEqS6K056デフォルトの名無しさん (ワッチョイ 426a-Zovn)
2021/01/04(月) 02:20:12.44ID:+AkCQ/yL057デフォルトの名無しさん (ワッチョイ 2252-OOK0)
2021/01/04(月) 02:22:58.44ID:6jvKGYBk0 >>52
不自然で読みにくい、という十分大きなデメリットがあるよ
不自然で読みにくい、という十分大きなデメリットがあるよ
58デフォルトの名無しさん (ワッチョイ eda7-Czn+)
2021/01/04(月) 02:41:40.35ID:3rgEqS6K059デフォルトの名無しさん (アウアウエー Sa4a-Jh9r)
2021/01/04(月) 02:41:41.41ID:BeeF0dCGa 2000年代に入った頃から過剰コンプライアンスが問題視されるようになった
(でも改善はされないのが日本という国だけどw)が、あれとよく似てるね。
入院患者の取り違えが起こっては大変と、毎日何度も何度も氏名生年月日を確認する。
携帯キャリアのサポートに携帯で電話してるのに「お客様のお電話番号を〜」
本当に意味あるのかそれw
欧米人は絶対にこんなことしないだろう。
ルールを忘れるからとルールを忘れても問題を起こさないためのルールを覚える。
ここに矛盾を感じない人は論理的思考能力に欠陥がある。
プログラマに向いてないよw
(でも改善はされないのが日本という国だけどw)が、あれとよく似てるね。
入院患者の取り違えが起こっては大変と、毎日何度も何度も氏名生年月日を確認する。
携帯キャリアのサポートに携帯で電話してるのに「お客様のお電話番号を〜」
本当に意味あるのかそれw
欧米人は絶対にこんなことしないだろう。
ルールを忘れるからとルールを忘れても問題を起こさないためのルールを覚える。
ここに矛盾を感じない人は論理的思考能力に欠陥がある。
プログラマに向いてないよw
60デフォルトの名無しさん (ワッチョイ 4263-Ke11)
2021/01/04(月) 06:55:02.30ID:h9VTRLOg0 そんなルールにこだわりたいのならテンプレくらい見てくださいね
61デフォルトの名無しさん (ワッチョイ 9901-z5JZ)
2021/01/04(月) 07:01:35.74ID:ote7uWYR0 マ板でやれや
62デフォルトの名無しさん (ワッチョイ 9d78-UAPS)
2021/01/04(月) 08:49:17.48ID:v6RCrFsZ0 ほら始まったマウント合戦
63デフォルトの名無しさん (エアペラ SD2d-/QWA)
2021/01/04(月) 09:37:13.43ID:OpGFyjtND64デフォルトの名無しさん (ワッチョイ 4201-Nu5h)
2021/01/04(月) 10:27:40.46ID:Nz2iXOdN0 >>54
> VBでIf文の条件式をカッコでくくってエラーに悩む
それエラーにならないよ
単に ( ) で囲った式になるだけだから
言うなら逆に「Cでif文の条件式をカッコでくくらずにエラーに悩む」だろうね
と言うように人は必ず間違いを犯すものだとと思ったほうがいい
あとタイプミスの多寡とプログラマーとしての能力はあまり関係ない
優れたキーパンチャーは必ずしも優れたプログラマーとは限らない
> VBでIf文の条件式をカッコでくくってエラーに悩む
それエラーにならないよ
単に ( ) で囲った式になるだけだから
言うなら逆に「Cでif文の条件式をカッコでくくらずにエラーに悩む」だろうね
と言うように人は必ず間違いを犯すものだとと思ったほうがいい
あとタイプミスの多寡とプログラマーとしての能力はあまり関係ない
優れたキーパンチャーは必ずしも優れたプログラマーとは限らない
65デフォルトの名無しさん (ワッチョイ 89ad-Q6VO)
2021/01/04(月) 12:49:08.68ID:OA+Odfw/0 定数値を左に書くのは20〜30年前の流行りで古臭いスタイル
66デフォルトの名無しさん (ワッチョイ aebb-mlD+)
2021/01/05(火) 15:53:00.06ID:G7CPq1YD0 ユニットテストを身につけたいのですが、公式ドキュメントにあるxUnit、NUnit、MSTestのどれが主流なのですか?
https://docs.microsoft.com/ja-jp/dotnet/core/testing/
https://docs.microsoft.com/ja-jp/dotnet/core/testing/
67デフォルトの名無しさん (ワンミングク MM92-IPp8)
2021/01/05(火) 17:05:19.12ID:VE6Qai0fM >>66
どれもそれなりに使われているから何とも言えない
というかそもそもドットネットドカタはテスト書かないのが主流なので差が出ないと言うべきか
まあ仕事ならどうせ現場に合わせるんだし、大した違いはないからどれでも好きなの覚えたらいい
個人的にはxUnitが好き
どれもそれなりに使われているから何とも言えない
というかそもそもドットネットドカタはテスト書かないのが主流なので差が出ないと言うべきか
まあ仕事ならどうせ現場に合わせるんだし、大した違いはないからどれでも好きなの覚えたらいい
個人的にはxUnitが好き
68デフォルトの名無しさん (ワッチョイ c2ad-ERVt)
2021/01/05(火) 17:42:48.70ID:fFW5I87S0 今選ぶならxUnitだろうね
69デフォルトの名無しさん (ワッチョイ 4201-qBFf)
2021/01/06(水) 15:48:05.04ID:p+a7utAN070デフォルトの名無しさん (アウアウウー Saa5-Jh9r)
2021/01/06(水) 16:14:14.32ID:A2mjs7EYa Cにはboolがないから
CのifはただのJZ(jump if zero)、つまり()の中の式の値がゼロかどうか見てるだけ
条件演算子の値は条件不成立時に0になる。1 == 2という式の値は0
a = 1という式の値は1
CのifはただのJZ(jump if zero)、つまり()の中の式の値がゼロかどうか見てるだけ
条件演算子の値は条件不成立時に0になる。1 == 2という式の値は0
a = 1という式の値は1
71デフォルトの名無しさん (エアペラ SD81-/QWA)
2021/01/06(水) 16:24:54.43ID:ZNeGLXFnD >>69
コンピューターリソースが少なく、IDEが今ほど快適じゃなかった
コンピューターリソースが少なく、IDEが今ほど快適じゃなかった
72デフォルトの名無しさん (アウアウウー Saa5-Jh9r)
2021/01/06(水) 16:32:56.00ID:A2mjs7EYa73デフォルトの名無しさん (ラクッペペ MM26-9Wmm)
2021/01/07(木) 16:37:13.71ID:JVCs6nJOM messageboxみたいにダラダラ長い関数は左辺に結果書くほうが見やすいだろ
74デフォルトの名無しさん (ワッチョイ c27b-kJAn)
2021/01/07(木) 17:34:18.46ID:zROxGAmI0 ダラダラと何日も役立たずのくだらない議論ごっこいつまでやってんだ
75デフォルトの名無しさん (ワッチョイ 06de-Czn+)
2021/01/07(木) 17:54:20.44ID:lNg+fAcw0 >>74
そこにそいつの全力を入れてきたんだろ
そこにそいつの全力を入れてきたんだろ
76デフォルトの名無しさん (ワッチョイ 2252-OOK0)
2021/01/07(木) 18:01:34.63ID:KSndWcRv077デフォルトの名無しさん (ワッチョイ 4124-h+tR)
2021/01/07(木) 20:35:27.74ID:CkbUzopy0 System.Text.Jsonって非パブリックフィールド含められないの?
公式にはJsonInclude属性付ければできるみたいな事書かれてるけどprivateフィールドに付けたらクラッシュする
publicフィールドならちゃんと動作するが
公式にはJsonInclude属性付ければできるみたいな事書かれてるけどprivateフィールドに付けたらクラッシュする
publicフィールドならちゃんと動作するが
78デフォルトの名無しさん (ワッチョイ 2e2c-qBFf)
2021/01/07(木) 21:39:53.62ID:VY2mjM+70 > 公式にはJsonInclude属性付ければできるみたいな事書かれてるけど
ちなみにどこで?
docsのJsonIncludeAttributeには
> Non-public properties are not supported.
って書かれてるけど
というかフィールドの方は触れられてもないのな
ちなみにどこで?
docsのJsonIncludeAttributeには
> Non-public properties are not supported.
って書かれてるけど
というかフィールドの方は触れられてもないのな
79デフォルトの名無しさん (ワッチョイ c9de-Czn+)
2021/01/07(木) 21:51:23.00ID:6HYd5Ohs080デフォルトの名無しさん (アウアウウー Saa5-Jh9r)
2021/01/07(木) 21:56:03.70ID:UQK7kjjpa https://docs.microsoft.com/ja-jp/dotnet/standard/serialization/system-text-json-how-to?pivots=dotnet-5-0#include-fields
https://docs.microsoft.com/ja-jp/dotnet/standard/serialization/system-text-json-immutability?pivots=dotnet-5-0#non-public-property-accessors
この二つの合わせ技で行けるんじゃないの?
まったく使ったことないから違ったらごめんよ
https://docs.microsoft.com/ja-jp/dotnet/standard/serialization/system-text-json-immutability?pivots=dotnet-5-0#non-public-property-accessors
この二つの合わせ技で行けるんじゃないの?
まったく使ったことないから違ったらごめんよ
81デフォルトの名無しさん (ワッチョイ edde-Czn+)
2021/01/07(木) 22:26:23.95ID:qfT0NyWK0 非パブリックって書いてあるけどpublicじゃんな
82デフォルトの名無しさん (ワッチョイ 7f40-Cbw0)
2021/01/13(水) 19:53:35.47ID:KSPkdcXv0 C#の実行ファイルはexeなの?
linuxで実行する場合もexeファイルを起動するの?
linuxで実行する場合もexeファイルを起動するの?
83デフォルトの名無しさん (ワッチョイ ff2c-flhj)
2021/01/13(水) 20:14:39.53ID:+WIx7J+j0 .NET Coreの話なら
dotnet publishでプラットフォームごとの実行ファイル作るよ
dotnet runだと作られたdllを起動する形になる
dotnet publishでプラットフォームごとの実行ファイル作るよ
dotnet runだと作られたdllを起動する形になる
84デフォルトの名無しさん (ワッチョイ ffbb-4hqK)
2021/01/14(木) 13:03:09.94ID:xE5npB3D0 .Net 5 SDKのみしか入れていない環境では、ビルドターゲットが.Net core 3.1になっているソリューションをビルドできないんですか?
今までのバージョンもこうでしたっけ・・・・?
今までのバージョンもこうでしたっけ・・・・?
85デフォルトの名無しさん (ワッチョイ 7fad-WJX4)
2021/01/14(木) 14:31:35.33ID:gYDerupm0 できるよ
86デフォルトの名無しさん (ワッチョイ ff7c-9hkR)
2021/01/14(木) 14:32:45.29ID:G12ay1Wf0 過去の全てのバージョンをビルドできるようにしてったら
どんだけSDKが肥大化していくことやら
どんだけSDKが肥大化していくことやら
87デフォルトの名無しさん (ワッチョイ 06da-DOe6)
2021/01/15(金) 03:46:56.47ID:rphYVuJL0 booleanを返す関数があったとします。
例外発生時はfalseを返すものとして、
try-catchでの戻り値の返し方って
■パターンA
try{
・・・
return true;
}catch{
return false;
}
■パターンB
try{
・・・
}catch{
return false;
}
return true;
パターンAorBのどちらが主流とういうか分かりやすいでしょうか
例外発生時はfalseを返すものとして、
try-catchでの戻り値の返し方って
■パターンA
try{
・・・
return true;
}catch{
return false;
}
■パターンB
try{
・・・
}catch{
return false;
}
return true;
パターンAorBのどちらが主流とういうか分かりやすいでしょうか
88デフォルトの名無しさん (アウアウウー Sa05-7ucn)
2021/01/15(金) 04:08:21.28ID:km2IqTOsa89デフォルトの名無しさん (ワッチョイ e101-JESV)
2021/01/15(金) 10:12:22.19ID:nDhdSCTd0 try抜けたあとにも処理を書く場合とかエラー発生時はアーリーリターンって考え方だとBのがいいと思う
90デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/15(金) 23:06:32.97ID:jMoWrUgc0 WPFでdatagridを使った帳票アプリを作っていますがとても困っています
助けてください
やりたいこと
タッチ操作によるピンチイン、ピンチアウトをcanvasに追加したい
現在の状態(scrollviewer→canvas→datagrid)
問題点
この状態で canvasを拡大縮小する場合、Onmanipulation系のイベントを発生させたいが、scrollviewerやdatagrid上では、pannmodeがONだとスクロール以外のタッチ操作が効かない
(よくわかりませんが、この2つには最初からOnmanipulation系のイベントが実装されていて、e.handled=trueしてしまっているかららしい)ため拡大縮小機能を実装できない
現在
Microsoftの標準ライブラリのコードが載っているページからscrollviewerとdatagridのソースコードを見つけたため、
それぞれカスタムコントロールを作っているが、エラーが出て実装できない
教えて欲しいこと
標準ライブラリのソースコード(とtemplate)を使ってイチからカスタムコントロールを作りたいためやり方を教えてください
というかサンプルを貰えると嬉しいです
拙い文章で申し訳ないですがお願いします
助けてください
やりたいこと
タッチ操作によるピンチイン、ピンチアウトをcanvasに追加したい
現在の状態(scrollviewer→canvas→datagrid)
問題点
この状態で canvasを拡大縮小する場合、Onmanipulation系のイベントを発生させたいが、scrollviewerやdatagrid上では、pannmodeがONだとスクロール以外のタッチ操作が効かない
(よくわかりませんが、この2つには最初からOnmanipulation系のイベントが実装されていて、e.handled=trueしてしまっているかららしい)ため拡大縮小機能を実装できない
現在
Microsoftの標準ライブラリのコードが載っているページからscrollviewerとdatagridのソースコードを見つけたため、
それぞれカスタムコントロールを作っているが、エラーが出て実装できない
教えて欲しいこと
標準ライブラリのソースコード(とtemplate)を使ってイチからカスタムコントロールを作りたいためやり方を教えてください
というかサンプルを貰えると嬉しいです
拙い文章で申し訳ないですがお願いします
91デフォルトの名無しさん (ワンミングク MM52-3xrD)
2021/01/16(土) 11:21:07.86ID:ua+hsB73M 見せたくない英数字の情報を外部ファイルで使いたいです。
テキストで作った情報を加工して外部ファイルにし、アプリではそれを読み取って使います。
英数字だと、バイナリでファイルに書き出しても中身見えますよね?
どうすれば簡単にできますか?
テキストで作った情報を加工して外部ファイルにし、アプリではそれを読み取って使います。
英数字だと、バイナリでファイルに書き出しても中身見えますよね?
どうすれば簡単にできますか?
92デフォルトの名無しさん (アウアウウー Sa05-SZF4)
2021/01/16(土) 11:35:26.62ID:2pvo7lqfa >>91
バイナリで書き出すってどういうことを想定してる?英数字の文字コードをバイナリで書き込んだらそれは単なるテキストファイルだよ。
文字コードを簡単な暗号化アルゴリズムで暗号化してから書き出して読み出すときに復号化すればいいのでは?
バイナリで書き出すってどういうことを想定してる?英数字の文字コードをバイナリで書き込んだらそれは単なるテキストファイルだよ。
文字コードを簡単な暗号化アルゴリズムで暗号化してから書き出して読み出すときに復号化すればいいのでは?
93デフォルトの名無しさん (ワッチョイ b9ce-p24c)
2021/01/16(土) 14:15:59.05ID:PIj+e88F0 >>90です
サンプルのコードを作ってみました。
この画面に、タッチ操作による拡大縮小機能を追加する方法を教えて下さい。
https://imgur.com/qnH4OgB.png
↓
https://imgur.com/2whIW0t.png
PW:aiueo
https://www.datadeliver.net/receiver/file_box.do?fb=ab23e3c9b06240089e36432d6589a060&rc=d186e1f582254286a79073b17166328c&lang=ja
サンプルのコードを作ってみました。
この画面に、タッチ操作による拡大縮小機能を追加する方法を教えて下さい。
https://imgur.com/qnH4OgB.png
↓
https://imgur.com/2whIW0t.png
PW:aiueo
https://www.datadeliver.net/receiver/file_box.do?fb=ab23e3c9b06240089e36432d6589a060&rc=d186e1f582254286a79073b17166328c&lang=ja
94デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/16(土) 15:46:32.13ID:5ippMHnD0 WPFってなんでも好きに作れなかったっけ?
カスタムもクソもお前が並べてコントロールデスって主張すればそれがその時点からそんなような?
スクロールバーとパネルにグリッド表示されたもん表示できれば完成でええのんか?この場合
カスタムもクソもお前が並べてコントロールデスって主張すればそれがその時点からそんなような?
スクロールバーとパネルにグリッド表示されたもん表示できれば完成でええのんか?この場合
95デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/16(土) 16:36:35.17ID:PIj+e88F0 カスタム云々は手段であって目的ではないです
カスタム云々言ってるのは標準ライブラリのコントロールをちょっとだけ修正したものを使いたいため、1個の手段かなと思って書きました
最終的な目的は>>93のdatagridをタッチ操作手間ズームできる機能です
て言うか WPFスレもあったのでこっちクローズして向こうで聞いた方が良さげですかね
カスタム云々言ってるのは標準ライブラリのコントロールをちょっとだけ修正したものを使いたいため、1個の手段かなと思って書きました
最終的な目的は>>93のdatagridをタッチ操作手間ズームできる機能です
て言うか WPFスレもあったのでこっちクローズして向こうで聞いた方が良さげですかね
96デフォルトの名無しさん (ワッチョイ 8d33-p24c)
2021/01/16(土) 16:55:45.03ID:a2u42RC60 ビルドして動かしてみたけど、もうできてるんじゃないの?
DataGridが拡大・縮小されたけど。
DataGridが拡大・縮小されたけど。
97デフォルトの名無しさん (ワッチョイ a963-+aKM)
2021/01/16(土) 16:56:09.84ID:XBV3y9Xq098デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/16(土) 17:00:53.45ID:gCH+adbg099デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/16(土) 17:45:39.96ID:PIj+e88F0100デフォルトの名無しさん (ワッチョイ 8d33-LWlj)
2021/01/16(土) 18:24:14.81ID:a2u42RC60101デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/16(土) 18:40:16.80ID:PIj+e88F0102デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/16(土) 20:24:49.41ID:5ippMHnD0103デフォルトの名無しさん (アウアウウー Sa05-7ucn)
2021/01/16(土) 20:59:23.29ID:nXAeK8tya WPFでタッチパネルによるズームや回転、Windows8が出たばっかりのころに
MSのサンプルをベースにして実験したけど、なんか落とし穴はあった気がしたけど
そんな難しくなかったような気が。
で当時ブックマークしておいたサンプルを見ようと思ったらもう消されちゃって残ってないのな。
MSって昔からほんとこういういらんことするよね。
MSのサンプルをベースにして実験したけど、なんか落とし穴はあった気がしたけど
そんな難しくなかったような気が。
で当時ブックマークしておいたサンプルを見ようと思ったらもう消されちゃって残ってないのな。
MSって昔からほんとこういういらんことするよね。
104デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/16(土) 23:30:45.34ID:PIj+e88F0105デフォルトの名無しさん (ワッチョイ 6eb5-AzpH)
2021/01/16(土) 23:41:12.28ID:LXHuhEJj0 >>90
自分はWPFは書いてるけど、タッチパネルのコードなんて書いたことないんで分からない
でも、以下の回答をコピペしたら何かのヒントになるかな?
How to enable both scrolling and zooming using pinch in WPF?
(意訳)どうしたらタッチ操作のスクロールと縮小拡大がWPFで出来ますか?
https://stackoverflow.com/questions/57659485/how-to-enable-both-scrolling-and-zooming-using-pinch-in-wpf
質問者が自分で答えてる
XAMLとMainのコードビハインドがあるから、試せまるよね?
ちなみに、カスタムコントロールは不要だから消した、とのこと
自分はWPFは書いてるけど、タッチパネルのコードなんて書いたことないんで分からない
でも、以下の回答をコピペしたら何かのヒントになるかな?
How to enable both scrolling and zooming using pinch in WPF?
(意訳)どうしたらタッチ操作のスクロールと縮小拡大がWPFで出来ますか?
https://stackoverflow.com/questions/57659485/how-to-enable-both-scrolling-and-zooming-using-pinch-in-wpf
質問者が自分で答えてる
XAMLとMainのコードビハインドがあるから、試せまるよね?
ちなみに、カスタムコントロールは不要だから消した、とのこと
106デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/17(日) 00:47:37.05ID:boTjyN9w0 WPF:GridやCanvasなどでマウスやタッチのイベントを拾うには?[C#/VB]
https://www.atmarkit.co.jp/ait/spv/1601/06/news027.html
タッチパネルとかやったことないからググったのを貼ってみる
違う話題だったらすまん
https://www.atmarkit.co.jp/ait/spv/1601/06/news027.html
タッチパネルとかやったことないからググったのを貼ってみる
違う話題だったらすまん
107デフォルトの名無しさん (ワッチョイ b9ce-PPGg)
2021/01/17(日) 21:28:32.39ID:XpuuOM7d0108デフォルトの名無しさん (アウアウウー Sa05-tDXg)
2021/01/18(月) 09:58:45.73ID:xiibmO3Sa 親が同じMdiフォーム同士で値参照を行いたいのですがpublic変数やメソッドを設定しても参照することが出来ずに困っています。
初回呼び出し時は参照できるのでいいのですが、1度開いた後だと呼び出せない状況です。
なにか解決方法はないでしょうか。
初回呼び出し時は参照できるのでいいのですが、1度開いた後だと呼び出せない状況です。
なにか解決方法はないでしょうか。
109デフォルトの名無しさん (ワッチョイ aeda-d4GC)
2021/01/18(月) 10:49:21.09ID:6S9O78EL0 状況がわからん
110デフォルトの名無しさん (ワッチョイ fe7c-vYIt)
2021/01/18(月) 10:54:28.68ID:G8032nPp0 教科書的には
共有したい値を持てるプロパティを持つクラスAを作る
親フォームはAのインスタンスを保持し、各Mdi子フォーム作成時にAのインスタンスを渡す
Mdi子フォームはAのインスタンス保持し、必要に応じて値を取得設定する
共有したい値を持てるプロパティを持つクラスAを作る
親フォームはAのインスタンスを保持し、各Mdi子フォーム作成時にAのインスタンスを渡す
Mdi子フォームはAのインスタンス保持し、必要に応じて値を取得設定する
111デフォルトの名無しさん (ワッチョイ 6ef2-2Fpm)
2021/01/18(月) 12:10:05.83ID:0ftZyRvq0 >>108
ご両親の相談かと思いました
ご両親の相談かと思いました
112デフォルトの名無しさん (ワッチョイ 8d33-LWlj)
2021/01/18(月) 12:30:16.88ID:HexibSYs0 値が入っていないとかならありえるけど、
呼び出せなくなる状況がわからん。
初回と開いた後で呼び出すのに違うメソッド使ってて、キャスト間違ったりしてない?
呼び出せなくなる状況がわからん。
初回と開いた後で呼び出すのに違うメソッド使ってて、キャスト間違ったりしてない?
113デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/18(月) 14:29:21.82ID:0wiZZ/Q+a >>108
率直に言って何を言ってるのかさっぱり分からんよw
プログラミング初心者なのは誰も責めないけど
説明能力欠如はNG。
能力以前に他人に理解してもらおうという努力と推敲の跡が全く感じられない。
それじゃ誰にも助けてもらえないよ。
率直に言って何を言ってるのかさっぱり分からんよw
プログラミング初心者なのは誰も責めないけど
説明能力欠如はNG。
能力以前に他人に理解してもらおうという努力と推敲の跡が全く感じられない。
それじゃ誰にも助けてもらえないよ。
114デフォルトの名無しさん (ワッチョイ a124-iKK5)
2021/01/18(月) 14:59:06.70ID:IRtYp4a70 WPFでドラッグ&ドロップ終了時に鳴るイベントって無いの?
!AllowDropな領域やウインドウ外でドロップすると何も捕捉できなくて困ってる
MouseLeftUpも捕捉できないし
!AllowDropな領域やウインドウ外でドロップすると何も捕捉できなくて困ってる
MouseLeftUpも捕捉できないし
115デフォルトの名無しさん (ワッチョイ fe7c-vYIt)
2021/01/18(月) 15:15:01.85ID:G8032nPp0 ウィンドウ外ってことは自分がドラッグ開始した側の場合?
DoDragDropから返ってきたタイミングがD&D操作の最終結果
DoDragDropから返ってきたタイミングがD&D操作の最終結果
116デフォルトの名無しさん (ワッチョイ a124-iKK5)
2021/01/18(月) 15:20:09.22ID:IRtYp4a70 >>115
綺麗さっぱり解決した、マジでありがとう
DoDragDropはドラック開始時に即結果返してくるもんだと勘違いしてて戻り値なんて全く気に留めてなかった
ドラッグ操作中はずっとDoDragDrop関数の中だったのか
綺麗さっぱり解決した、マジでありがとう
DoDragDropはドラック開始時に即結果返してくるもんだと勘違いしてて戻り値なんて全く気に留めてなかった
ドラッグ操作中はずっとDoDragDrop関数の中だったのか
117デフォルトの名無しさん (ワッチョイ a102-Dqz3)
2021/01/18(月) 19:46:08.26ID:2G0os1bF0 UnityのためにC#おべんきょう中
118デフォルトの名無しさん (ワッチョイ 822f-vYIt)
2021/01/18(月) 21:10:21.60ID:Y7agfnjO0 どうでもいいけど、イベントが鳴るって表現は初めて見たな
メジャーな表現なのか?
メジャーな表現なのか?
119デフォルトの名無しさん (ワッチョイ 7edf-Zi0r)
2021/01/19(火) 01:58:16.45ID:I1IZPSHx0 Microsoft的には型が自明な変数はstringとかじゃなくvarを使えと言ってるけど未だになんか抵抗あるんだよな
120デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 06:59:52.83ID:1DREI3uP0 >>119
申し訳ありません、それは加齢による思考の柔軟性の欠如ですので老害と言われる前にこの業界から立ち去ることをお勧めします
申し訳ありません、それは加齢による思考の柔軟性の欠如ですので老害と言われる前にこの業界から立ち去ることをお勧めします
121デフォルトの名無しさん (ワッチョイ 2d61-Uc4C)
2021/01/19(火) 07:12:57.93ID:Cn/4ZVdb0 変数宣言はとりあえずvarにしといて後でなおす。
122デフォルトの名無しさん (ベーイモ MM16-qLBE)
2021/01/19(火) 08:04:25.85ID:BSl7DPdbM123デフォルトの名無しさん (ワッチョイ 9163-+aKM)
2021/01/19(火) 08:20:27.18ID:UsQkIyf/0 varなんて10年以上前からあるものに未だに抵抗があるってことは長期間OSS等の他人のソースを読んでいないってこと
124デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 08:50:15.53ID:56Cm9vi30 ってか書いた奴は自明( ・ิω・ิ)とか思っててもそうじゃないことが結構あるし
他のツールで検索したときやコメントになってる箇所はそれじゃヒットしないじゃんってなって
やるんかやらないんかで言ったらvarではなくちゃんと書いたほうがいいコードだと思う
他のツールで検索したときやコメントになってる箇所はそれじゃヒットしないじゃんってなって
やるんかやらないんかで言ったらvarではなくちゃんと書いたほうがいいコードだと思う
125デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 09:39:10.55ID:1DREI3uP0126デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 10:20:34.69ID:Gnfp96LE0 >>125
俺じゃないやつがね
俺じゃないやつがね
127デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 10:30:06.51ID:BwhvdJlQ0 >>125
ちなみにIDE使っててもパッと見わかんないときない?
ちなみにIDE使っててもパッと見わかんないときない?
128デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 10:36:40.85ID:1DREI3uP0 お前が困ってないなら問題ないじゃん
今時IDE使わない変人は勝手に苦労させときゃいい
上司が老害でと言うならご愁傷さまだけど
今時IDE使わない変人は勝手に苦労させときゃいい
上司が老害でと言うならご愁傷さまだけど
129デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 10:51:07.00ID:2Vn7p2si0 >>128
パッと見わかんないじゃん
パッと見
動かして見ないとわかりにくい系のコード最近できるだけ排除してんだよね俺
インターフェースも使うのやめた
switch caseで分岐のが綺麗で仕様もハッキリする
パッと見わかんないじゃん
パッと見
動かして見ないとわかりにくい系のコード最近できるだけ排除してんだよね俺
インターフェースも使うのやめた
switch caseで分岐のが綺麗で仕様もハッキリする
130デフォルトの名無しさん (スップ Sd82-+aKM)
2021/01/19(火) 11:04:28.30ID:4FOEklDdd つうかIDEにvarと型を一括置換してくれる機能あるんだから自分が読むときゃ好きな方に変換すれば良い
個人的には型がわかんなきゃ処理の流れが追いづらいのはvar以外に理由があると思うけど(命名が糞とか)
型がわかんなきゃいけない場面がそもそもレアケース
個人的には型がわかんなきゃ処理の流れが追いづらいのはvar以外に理由があると思うけど(命名が糞とか)
型がわかんなきゃいけない場面がそもそもレアケース
131デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 11:15:40.04ID:w6D+a9gN0 じゃあ全部
List<object>とか
Dictionary<string,object>でいいじゃん
実際全部これで作ったことあるけど
わかってる間はいいよ
List<object>とか
Dictionary<string,object>でいいじゃん
実際全部これで作ったことあるけど
わかってる間はいいよ
132デフォルトの名無しさん (ワッチョイ 8d33-LWlj)
2021/01/19(火) 12:12:41.02ID:JrPuHU7j0 冗長でコード読みにくいわ。
133デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 12:27:28.26ID:PDD2cmkqa 「型が自明ならvar使え」が正しいことは自明なので、
論点は自明じゃなくて自明にすることが難しいケースがあるかどうかだね。
ないことはないね。
もちろんそういうケースだってインテリセンスで型は分かるけど
明示的に型を書いてくれた方がありがたいこともある。
論点は自明じゃなくて自明にすることが難しいケースがあるかどうかだね。
ないことはないね。
もちろんそういうケースだってインテリセンスで型は分かるけど
明示的に型を書いてくれた方がありがたいこともある。
134デフォルトの名無しさん (ワッチョイ a9e3-A78j)
2021/01/19(火) 12:29:00.70ID:u3xtRKtO0 プログラムに綺麗って単語を使う人が総じてNET2.0止まりなのはC++じゃないC上がりとかなのかね
135デフォルトの名無しさん (ワッチョイ 868c-3xrD)
2021/01/19(火) 12:44:43.27ID:kTcVE4mf0 c#はとっととhindley milner導入しろ派なので当然全部var使う
136デフォルトの名無しさん (テテンテンテン MM66-AFtj)
2021/01/19(火) 14:37:47.64ID:EuSX2rsQM varってvoid*?
137デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 14:40:11.50ID:EHMQNeZC0 だいたいそんな感じ
138デフォルトの名無しさん (ワッチョイ 412d-Dqz3)
2021/01/19(火) 14:50:36.80ID:5mJnt+0W0 C++にはautoって名称で追加された
139デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 15:07:54.28ID:1DREI3uP0140デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 15:09:21.35ID:1DREI3uP0 >>136-137
レス乞食?
レス乞食?
141デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 15:33:59.98ID:+oCiGxYna >>139
「型が自明」って言うのは右辺の式を見ただけでその型が分かるって意味だよね?
君は右辺がメソッドなら型は自明じゃないと言いたげに聞こえるけどそんなことはない。
むしろそんなケースは少ない。
では型が自明じゃないケースというのは、
(1) メソッドの命名が不適切
(2) 返り値の型が過度に抽象的だったりその問題領域でたまにしか使われない型だったりした場合
(1)は改名で改善できるけど(2)はどうやっても不可避な場合がある。
「型が自明」って言うのは右辺の式を見ただけでその型が分かるって意味だよね?
君は右辺がメソッドなら型は自明じゃないと言いたげに聞こえるけどそんなことはない。
むしろそんなケースは少ない。
では型が自明じゃないケースというのは、
(1) メソッドの命名が不適切
(2) 返り値の型が過度に抽象的だったりその問題領域でたまにしか使われない型だったりした場合
(1)は改名で改善できるけど(2)はどうやっても不可避な場合がある。
142デフォルトの名無しさん (ワッチョイ 29de-sQHG)
2021/01/19(火) 15:37:48.79ID:XpB5NFXI0 っていうかちゃんと型を書くことにデメリットがない
143デフォルトの名無しさん (テテンテンテン MM66-AFtj)
2021/01/19(火) 15:40:05.06ID:EuSX2rsQM 本当はchar*なのに手抜きでvoid*はよく使ったから、varの濫用もありなのかもね。
144デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 15:51:48.14ID:1DREI3uP0145デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 16:02:16.12ID:+oCiGxYna >>144
例えば.NETのライブラリのクラスのメソッドを見てみ。
メソッド名から戻り値の型が推測できないミスリーディグなのももちろんあるが、それは少数派。
大半はメソッド名から戻り値の型は推測できる。
ユーザーコードのメソッドも基本的はそうであるべきだしまともな人が書いたコードはそうなってる。
君、本当にプログラマ?
例えば.NETのライブラリのクラスのメソッドを見てみ。
メソッド名から戻り値の型が推測できないミスリーディグなのももちろんあるが、それは少数派。
大半はメソッド名から戻り値の型は推測できる。
ユーザーコードのメソッドも基本的はそうであるべきだしまともな人が書いたコードはそうなってる。
君、本当にプログラマ?
146デフォルトの名無しさん (スップ Sd82-+aKM)
2021/01/19(火) 16:03:51.01ID:4FOEklDdd 全然意味が違う
コンパイラはvarだろうが型名だろうが完全に同じ動きをする
コンパイル時の挙動も生成結果も全く同じ
ただの文字の置き換えに過ぎない
コンパイラはvarだろうが型名だろうが完全に同じ動きをする
コンパイル時の挙動も生成結果も全く同じ
ただの文字の置き換えに過ぎない
147デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 16:09:05.78ID:+oCiGxYna まあ、こんな話はどうでもいい。
「論点は自明じゃなくて自明にすることが難しいケースがあるかどうか」なのは間違ってないし、
自明にできないケースが存在することも明らかに自明だ
「論点は自明じゃなくて自明にすることが難しいケースがあるかどうか」なのは間違ってないし、
自明にできないケースが存在することも明らかに自明だ
148デフォルトの名無しさん (ワッチョイ 6eb5-AzpH)
2021/01/19(火) 17:55:50.67ID:1Y2uTlCP0 俺は積極的にvarを使うが、
周りの奴には明示的に型を書いてほしい
お〜れ〜はジャイア〜ン、ガ〜キ大将
周りの奴には明示的に型を書いてほしい
お〜れ〜はジャイア〜ン、ガ〜キ大将
149デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 17:58:28.71ID:ljoN0Go60 ていうか、varで置いとくメリットないよね
varで書いて改行か保存をトリガに元の型に勝手に直して欲しいレベル
varで書いて改行か保存をトリガに元の型に勝手に直して欲しいレベル
150デフォルトの名無しさん (アウアウウー Sa05-yTsS)
2021/01/19(火) 17:59:58.88ID:8yhc5FsTa イテレータとかはvarで書かないと冗長過ぎる
他は型名でもどっちでもいいな
他は型名でもどっちでもいいな
151デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 18:45:05.43ID:1DREI3uP0152デフォルトの名無しさん (ササクッテロラ Spd1-2Fpm)
2021/01/19(火) 19:00:43.09ID:i/8g/T9Cp ねえ、お前らまとめて相談室に移動してくれない?
153デフォルトの名無しさん (ワッチョイ 46de-sQHG)
2021/01/19(火) 19:36:45.79ID:d6HtnSkG0 >>152
どう使い分けてるの?
どう使い分けてるの?
154デフォルトの名無しさん (ワッチョイ 6e7b-z29d)
2021/01/19(火) 19:43:10.02ID:84DXcEkC0 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
これ無視してどうしても雑談やくだらない議論ここでしなきゃならんの?
普通の人は117からこの書き込みまで全部あぼーんした方がいい
テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
これ無視してどうしても雑談やくだらない議論ここでしなきゃならんの?
普通の人は117からこの書き込みまで全部あぼーんした方がいい
155デフォルトの名無しさん (ワッチョイ cdde-sQHG)
2021/01/19(火) 21:28:02.04ID:SMVAWsya0 いや、好きにしていいよ
156デフォルトの名無しさん (ワッチョイ 7d78-A78j)
2021/01/19(火) 21:56:33.32ID:wMimx5MC0 ルールを守れ
157デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 21:58:18.64ID:T1q1SgZya さすがにメソッドの戻り値の型が自明じゃないが普通とか思ってる人とは
議論にならないよね。
っていうかこういう話が通じない人、自分より下ならいいけど
上司にいるとほんとつらいw
議論にならないよね。
っていうかこういう話が通じない人、自分より下ならいいけど
上司にいるとほんとつらいw
158デフォルトの名無しさん (エアペラ SD8d-2Rtm)
2021/01/19(火) 22:27:12.89ID:MksL1yadD159デフォルトの名無しさん (エアペラ SD8d-2Rtm)
2021/01/19(火) 22:29:03.20ID:MksL1yadD スレのルールも守らず>>2での議論ができないような奴の言うことは役に立たないと言える訳だな
無能だからここから出られない、と
無能だからここから出られない、と
160デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 22:30:46.82ID:T1q1SgZya >>158
これ前も書いたけど、君がやってるそれがまさに「マウントを取る」
行為なんだけど自覚があるかな?w
間違いなくないよね。
これも前に書いたが、1っか月で150しかレスが付かない過疎スレで
何を目くじら立ててるわけ?
誰が困るの?誰も困らないよね?
単に人にケチをつけてマウント取りたいという卑しい動機で言ってるだけだろアホかほんと
これ前も書いたけど、君がやってるそれがまさに「マウントを取る」
行為なんだけど自覚があるかな?w
間違いなくないよね。
これも前に書いたが、1っか月で150しかレスが付かない過疎スレで
何を目くじら立ててるわけ?
誰が困るの?誰も困らないよね?
単に人にケチをつけてマウント取りたいという卑しい動機で言ってるだけだろアホかほんと
161デフォルトの名無しさん (エアペラ SD8d-2Rtm)
2021/01/19(火) 22:34:05.03ID:MksL1yadD162デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/19(火) 22:35:11.09ID:T1q1SgZya >>161
そういうのを牽強付会と言います。
そういうのを牽強付会と言います。
163デフォルトの名無しさん (エアペラ SD8d-2Rtm)
2021/01/19(火) 22:40:21.24ID:MksL1yadD164デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/19(火) 22:42:31.25ID:1DREI3uP0 ネットで吠えてるだけって虚しくないのかなw
165デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/19(火) 23:22:13.79ID:ZlDpZ/580 いや、好きにしていいよ
166デフォルトの名無しさん (ワッチョイ 4201-73fV)
2021/01/19(火) 23:25:12.57ID:JZy8vN9I0 ガイドライン通りでいいんじゃねって気がするが
built-inは明示的に宣言したい気持ちも分かるので
チームに合意が得られるならcsharp_style_var_for_built_in_types = falseにしとけばいい
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions#implicitly-typed-local-variables
built-inは明示的に宣言したい気持ちも分かるので
チームに合意が得られるならcsharp_style_var_for_built_in_types = falseにしとけばいい
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions#implicitly-typed-local-variables
167デフォルトの名無しさん (ワッチョイ 0290-Ssjk)
2021/01/20(水) 00:20:44.38ID:J4/R6qDu0168デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/20(水) 05:30:22.29ID:6vEnElCe0169デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/20(水) 07:03:54.32ID:J1Mj2vHK0 いや、好きにしていいよ
170デフォルトの名無しさん (ワッチョイ 025d-m6e0)
2021/01/20(水) 10:05:59.48ID:zLzflGmk0 スレが伸びててよろしい
171デフォルトの名無しさん (テテンテンテン MM66-AFtj)
2021/01/20(水) 11:56:41.88ID:GU4zjWk/M プリントアウトしたり、秀丸で見ることを考えると明示の方がいいかな。
172デフォルトの名無しさん (スップ Sd22-+aKM)
2021/01/20(水) 12:16:09.30ID:00FUxo8md プリントアウトしたり秀丸で見るときに変換しとけばいいだけ
なんで少ない方に合わせなきゃならんのだ
なんで少ない方に合わせなきゃならんのだ
173デフォルトの名無しさん (ワッチョイ f901-LWlj)
2021/01/20(水) 12:40:59.07ID:XeK75HAm0 Dictionary<string, int> myDictionary1 = new Dictionary<string, int>();
var myDictionary2 = new Dictionary<string, int>();
var myDictionary2 = new Dictionary<string, int>();
174デフォルトの名無しさん (ワッチョイ 91da-f4x2)
2021/01/20(水) 15:44:09.47ID:U6+k13Z80 null許容型関連の質問ですが、nullを許容しない型のデフォルト値はどういうものが適切なのでしょうか?
例えば、あるデータオブジェクトを指すクラスフィールドにコンストラクタ以降で設定する場合など
例えば、あるデータオブジェクトを指すクラスフィールドにコンストラクタ以降で設定する場合など
175デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/20(水) 17:53:03.33ID:J1Mj2vHK0 動作の仕様から考えないとでなくね?
nullを許容しないって理由も仕様に関わって来んじゃね?
nullを許容しないって理由も仕様に関わって来んじゃね?
176デフォルトの名無しさん (ベーイモ MM16-qLBE)
2021/01/20(水) 18:05:27.20ID:8EWTEw8QM >>173
初期値ならnull!一択
初期値ならnull!一択
177デフォルトの名無しさん (ベーイモ MM16-qLBE)
2021/01/20(水) 18:06:18.37ID:8EWTEw8QM レス番ずれたごめん
>>174だ
>>174だ
178デフォルトの名無しさん (ワッチョイ 4201-73fV)
2021/01/20(水) 18:16:09.58ID:5gwvq16z0 >>174
null許容/非許容と関係なく設定したい値の定義域の中に
そのクラスを使う時のデフォルト値として採用できるものがあるかどうかを考えるしかない
例えば「色」を設定するとして、指定がなければ何色をデフォルトにするのがいいかはケースバイケース
当たり前のこと過ぎるから本当に聞きたいことは違ってそうだけど
null許容/非許容と関係なく設定したい値の定義域の中に
そのクラスを使う時のデフォルト値として採用できるものがあるかどうかを考えるしかない
例えば「色」を設定するとして、指定がなければ何色をデフォルトにするのがいいかはケースバイケース
当たり前のこと過ぎるから本当に聞きたいことは違ってそうだけど
179デフォルトの名無しさん (ワッチョイ e14f-5loA)
2021/01/20(水) 18:49:46.67ID:k0WuvcqZ0180デフォルトの名無しさん (ワッチョイ 9177-cvKJ)
2021/01/20(水) 18:54:07.33ID:LBcPIMoJ0 >>174
nullを許容しない型だから、値型の話だよね。
例示されいているオブジェクトを格納する型は
参照型だから関係ないよね。
値型でクラスフィールドにするものだと、
インスタンス数を記録するフィールドとかだけど、
このときは明白に初期値は0になるよね。
初期値が思いつかないフィールドなんかは、
ロジックを見直して使わないようにするのがいいと思う。
クラスフィールドならクラス内グローバル変数みたいなものだから。
nullを許容しない型だから、値型の話だよね。
例示されいているオブジェクトを格納する型は
参照型だから関係ないよね。
値型でクラスフィールドにするものだと、
インスタンス数を記録するフィールドとかだけど、
このときは明白に初期値は0になるよね。
初期値が思いつかないフィールドなんかは、
ロジックを見直して使わないようにするのがいいと思う。
クラスフィールドならクラス内グローバル変数みたいなものだから。
181デフォルトの名無しさん (ワッチョイ 8d33-LWlj)
2021/01/20(水) 19:13:42.59ID:2t/gHyrm0 >>180
いつの時代の人やねんw
いつの時代の人やねんw
182デフォルトの名無しさん (ワッチョイ 0201-oqTY)
2021/01/21(木) 05:31:50.73ID:rjSQv0Wq0183180 (ワッチョイ 49d4-cvKJ)
2021/01/21(木) 09:28:06.79ID:AO+4cZ7Y0 すいません、ロートルなのでどこが知識不足なのかわかりません。
教えていただけませんか?
教えていただけませんか?
184180 (ワッチョイ 49d4-9+hf)
2021/01/21(木) 09:42:10.43ID:AO+4cZ7Y0 すいません、ググりもしないで回答した愚か者でした。
余計なことを書いたことをお詫びします。
余計なことを書いたことをお詫びします。
185デフォルトの名無しさん (スップ Sd22-+aKM)
2021/01/21(木) 10:30:22.56ID:aUdU9fY1d ちゃんと反省できて偉い!
186デフォルトの名無しさん (ワッチョイ fe02-yY3z)
2021/01/21(木) 12:05:41.28ID:p+kzeOLk0 初歩的なことですみません。
Win10で項目のサイズを100%⇒125%にするとフォームが崩れてしまうのですがどこの設定をしたらよいのでしょうか
Win10で項目のサイズを100%⇒125%にするとフォームが崩れてしまうのですがどこの設定をしたらよいのでしょうか
187デフォルトの名無しさん (ワッチョイ 91da-f4x2)
2021/01/21(木) 12:07:38.37ID:AqHcR6qx0 皆さん有難うございました
188デフォルトの名無しさん (ワッチョイ 06da-DOe6)
2021/01/21(木) 12:09:34.75ID:+iCuMAZm0 >>186
WinFormを捨ててWPFで作り直す
WinFormを捨ててWPFで作り直す
189デフォルトの名無しさん (アウアウエー Sa0a-p24c)
2021/01/21(木) 21:44:45.19ID:ggYpilOfa >>186
フォームが崩れるって具体的にどういうこと?
フォームが崩れるって具体的にどういうこと?
190デフォルトの名無しさん (ワッチョイ 7dad-HiEx)
2021/01/21(木) 21:48:16.83ID:YPRdayr10 左足の踏み込みが甘い
191デフォルトの名無しさん (ブーイモ MMf6-Uc4C)
2021/01/21(木) 22:11:43.69ID:svbwtY+WM 右足ちゃうか?
192デフォルトの名無しさん (ワッチョイ 6eb5-AzpH)
2021/01/21(木) 22:19:59.04ID:vAIL1xEN0 違う、まず体幹を安定させるべき
193デフォルトの名無しさん (ワッチョイ aeda-d4GC)
2021/01/21(木) 22:59:12.22ID:/8Y0ih1k0 強いパンチは蹴り脚で撃つ@ホーリーランド
194デフォルトの名無しさん (ワッチョイ cda7-sQHG)
2021/01/21(木) 23:10:46.63ID:krexEaXy0 >>189
winformいじればどんなアホでもわかる現象なのでお前はおよびじゃないよ
winformいじればどんなアホでもわかる現象なのでお前はおよびじゃないよ
195デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/22(金) 00:53:56.18ID:LbFG10xGa >>194
むしろアホにしか起こせない現象だから俺には理解できないんだろうねw
賭けてもいい。
この無礼な馬鹿が自動スケーリングの仕組みを
ろくに理解せつに作り込んだバグと質問者の問題は恐らく異なる。
むしろアホにしか起こせない現象だから俺には理解できないんだろうねw
賭けてもいい。
この無礼な馬鹿が自動スケーリングの仕組みを
ろくに理解せつに作り込んだバグと質問者の問題は恐らく異なる。
196デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/22(金) 01:04:05.40ID:LbFG10xGa コードは意図した通りではなく書かれた通りにしか動かない。
文章も自分が何を伝えたいと意図したかではなく
文面に書かれていることだけが他人に伝わる。
後者を軽視する奴は100%プログラマとしても無能だ。
ポエムじゃないんだから読み手に想像力で補完してもらうことを期待するのは間違ってる
文章も自分が何を伝えたいと意図したかではなく
文面に書かれていることだけが他人に伝わる。
後者を軽視する奴は100%プログラマとしても無能だ。
ポエムじゃないんだから読み手に想像力で補完してもらうことを期待するのは間違ってる
197デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/22(金) 01:13:27.19ID:hRbCIOLy0 >>195
説明なんか不要だろ
フォームにテキストボックスとボタンでも貼って倍率変えて実行するだけで
もうリソースエディタ?で配置した画面とは似ても似つかない画面が見えるんだから
これがわからないヤツなんてそもそもwinform触ったことすらねーだろそいつ
間違いなく質問者が聞きたいのはお前にじゃねーよw
何で知らないのにクビ突っ込んでくるのか?w
説明なんか不要だろ
フォームにテキストボックスとボタンでも貼って倍率変えて実行するだけで
もうリソースエディタ?で配置した画面とは似ても似つかない画面が見えるんだから
これがわからないヤツなんてそもそもwinform触ったことすらねーだろそいつ
間違いなく質問者が聞きたいのはお前にじゃねーよw
何で知らないのにクビ突っ込んでくるのか?w
198デフォルトの名無しさん (ワッチョイ 7ff2-GXTA)
2021/01/22(金) 01:24:26.14ID:OfPTadrW0 >>186
項目って何
項目って何
199デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/22(金) 01:34:58.35ID:dHC2KPFC0 >>186
項目のサイズを125%⇒100%にする
項目のサイズを125%⇒100%にする
200デフォルトの名無しさん (ワッチョイ 5f73-GXTA)
2021/01/22(金) 13:37:52.91ID:QY6O1hmh0 >>186
フォームのプロパティ AutoScaleMode を デフォルトの Font から None に変える
フォームのプロパティ AutoScaleMode を デフォルトの Font から None に変える
201デフォルトの名無しさん (スップ Sd7f-n48n)
2021/01/22(金) 14:19:12.75ID:fukKKC/8d wpfの唯一と言っていほどのメリットが画面scaleへの対応
winformが根強く残っていてもこの手の問題へのヘルプが今まで山のように発生している
そういった背景を知っていればあの文章だけで十分に何が問題かは予測できる上に珍しい事例でもなんでも無い
それなのに自身の無知をさらけ出し、挙げ句の果に質問者の文章が稚拙であるかのような言い訳をするのはプログラマとして無能と言えるのではないだろうか?
winformが根強く残っていてもこの手の問題へのヘルプが今まで山のように発生している
そういった背景を知っていればあの文章だけで十分に何が問題かは予測できる上に珍しい事例でもなんでも無い
それなのに自身の無知をさらけ出し、挙げ句の果に質問者の文章が稚拙であるかのような言い訳をするのはプログラマとして無能と言えるのではないだろうか?
202デフォルトの名無しさん (ワッチョイ 877c-wKi0)
2021/01/22(金) 14:30:33.50ID:8p9OJtgT0 続きは>>2で
203デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/22(金) 14:31:48.32ID:36C6iaEea204デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/22(金) 14:39:33.20ID:hRbCIOLy0 まあ、まともな解決方法持ってないからね俺らw
というわけでこの話題が出ると荒れるのです
というわけでこの話題が出ると荒れるのです
205デフォルトの名無しさん (ワンミングク MM3f-FIml)
2021/01/22(金) 18:37:43.30ID:aSTD1Cv1M206デフォルトの名無しさん (エアペラ SD6b-I5Z6)
2021/01/22(金) 18:56:51.05ID:TU/Hr8MED207デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/22(金) 19:12:58.80ID:Pa9c7HBM0208デフォルトの名無しさん (ワッチョイ 475f-8PYP)
2021/01/22(金) 19:13:26.61ID:BHdCo4AB0 まだWinFormsやってるやついるのか
209デフォルトの名無しさん (ワッチョイ 7ff2-GXTA)
2021/01/22(金) 19:50:27.55ID:OfPTadrW0 それしかやらんわ
210デフォルトの名無しさん (ワッチョイ c701-xA1r)
2021/01/22(金) 20:16:51.12ID:buqgHbet0 WPF初心者にはきついわ
検索できないとか存在しないとかエラーが謎
検索できないとか存在しないとかエラーが謎
211デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/22(金) 21:43:23.06ID:3W/g7okM0 WPFの和書が皆無に近いもんな。秀和の分厚い奴も2019になってもいまだにFormsだし。
212デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/22(金) 21:49:48.50ID:hRbCIOLy0 ガチでやろうとするとunityのが楽なんだよなぁ
こいつバックミュージック流しながら音なんねーし
こいつバックミュージック流しながら音なんねーし
213デフォルトの名無しさん (ワッチョイ bf8c-WIH3)
2021/01/22(金) 21:51:05.66ID:/Gflmnvx0 wpf言ってる間にそのうちmaui(mvu)が来ますよ
214デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/22(金) 21:53:42.78ID:hRbCIOLy0 色々と信用ゼロなので様子見です
215デフォルトの名無しさん (スップ Sdff-db8c)
2021/01/22(金) 22:06:30.38ID:alTQhRVad stackoverflowがなければ初日でWPF投げてたと思う
216デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/22(金) 22:25:31.06ID:1SSc6UOJ0 >>213
サンクスコ
知らなかった
「やっと」そんなのが出るのか、待ってたぜ
XAMLじゃなくてもC#コードビハインドだけでもUI描けるようだな
(WPFでも出来るけどな)
WPF使ってるけど、バインディングが本当にクソだわ
今までいろんなプログラミングしてきたけど、
ここまで行き詰まったことはなかった
今回こそは俺が非力ってことは認めるわ
それにしても、UWPが完全にスルーされてるのが笑えるw
サンクスコ
知らなかった
「やっと」そんなのが出るのか、待ってたぜ
XAMLじゃなくてもC#コードビハインドだけでもUI描けるようだな
(WPFでも出来るけどな)
WPF使ってるけど、バインディングが本当にクソだわ
今までいろんなプログラミングしてきたけど、
ここまで行き詰まったことはなかった
今回こそは俺が非力ってことは認めるわ
それにしても、UWPが完全にスルーされてるのが笑えるw
217デフォルトの名無しさん (ワッチョイ 8701-V1vN)
2021/01/22(金) 23:18:39.28ID:OGZfgpwn0 どうせ流行らずに勉強しても無駄になるんだろ!騙されないぞ!
218デフォルトの名無しさん (オッペケ Sr7b-ENbf)
2021/01/22(金) 23:44:20.14ID:q6hHO30kr219デフォルトの名無しさん (ワッチョイ 7ff2-GXTA)
2021/01/23(土) 00:04:09.60ID:jLrLNaiV0 >>212
こいつってのは何を指すの?
こいつってのは何を指すの?
220デフォルトの名無しさん (ワッチョイ 2754-FV7b)
2021/01/23(土) 00:19:08.32ID:Ea1gaSpb0 WinUI 3 って、WinForms と WPF を過去のものにして主流になると思う?
221デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 00:39:31.93ID:MyEcyelN0 >>218
MVVMってあれだけいろいろゴタゴタやって、恩恵は少ないよな(と俺は感じる)。
周りの人には受けが良くて褒められるけど、俺本人はギリギリでやってる、実は。
一つのクラスの内容を表示する時には何の問題も無い。
だが、二つのクラスの内容を表示しようとした途端に
それらをまとめるクラス作ったりせんといかんだろ?
毎回クソ面倒臭い。
あと、PropertyChangedとかNotifyとか、面倒臭い。
一応できるが俺の性に合ってない。
MVVMってあれだけいろいろゴタゴタやって、恩恵は少ないよな(と俺は感じる)。
周りの人には受けが良くて褒められるけど、俺本人はギリギリでやってる、実は。
一つのクラスの内容を表示する時には何の問題も無い。
だが、二つのクラスの内容を表示しようとした途端に
それらをまとめるクラス作ったりせんといかんだろ?
毎回クソ面倒臭い。
あと、PropertyChangedとかNotifyとか、面倒臭い。
一応できるが俺の性に合ってない。
222デフォルトの名無しさん (テテンテンテン MM8f-+HhN)
2021/01/23(土) 00:49:51.79ID:ic//P4AFM223デフォルトの名無しさん (ワッチョイ 8701-V1vN)
2021/01/23(土) 01:13:07.19ID:9AM+ezO50 ってことはBlazorの時代がくるですか!?
224デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 01:46:14.57ID:oQsbCK+Ka >>205
たぶん言っても無駄。
その人の目的は「他人に食って掛かる」ことなのは一目瞭然だから。
本人は自覚してないと思うけどね。
とにかく他人が言ってることを否定することだけを目的としているから
全体として何が言いたいのかさっぱり分からない。
たぶん言っても無駄。
その人の目的は「他人に食って掛かる」ことなのは一目瞭然だから。
本人は自覚してないと思うけどね。
とにかく他人が言ってることを否定することだけを目的としているから
全体として何が言いたいのかさっぱり分からない。
225デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 08:46:17.73ID:4VL29Q1J0226デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 08:48:30.10ID:4VL29Q1J0227デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 10:01:09.88ID:hIt2ZLZ60 >>222
electronもまだまだデスクトップを置き換えられるところまでいってないと思うが
どういう環境のことを言っている?
それともOffice365のようにデスクトップアプリの代わりにWebベースで置き換えることを言っている?
electronもまだまだデスクトップを置き換えられるところまでいってないと思うが
どういう環境のことを言っている?
それともOffice365のようにデスクトップアプリの代わりにWebベースで置き換えることを言っている?
228デフォルトの名無しさん (ワントンキン MM3f-+HhN)
2021/01/23(土) 10:54:35.36ID:kPZ46AZtM229デフォルトの名無しさん (アウアウウー Sa4b-eWVF)
2021/01/23(土) 11:08:23.02ID:RBvwbRsVa 自分の製品置き換えないでユーザーにそれ使えは言えないだろ
230デフォルトの名無しさん (ワントンキン MM3f-+HhN)
2021/01/23(土) 11:15:07.48ID:BdQtbmnfM ちなみにOutlookもWeb版に統一する計画だそうで
https://www.windowscentral.com/project-monarch-outlook-web-universal-email-client-microsoft?amp
https://www.windowscentral.com/project-monarch-outlook-web-universal-email-client-microsoft?amp
231デフォルトの名無しさん (ワッチョイ df2d-Woof)
2021/01/23(土) 11:15:50.54ID:0Lxv01Qk0 VSCode以外はバックエンドはクラウドだな
232デフォルトの名無しさん (ワンミングク MM3f-+HhN)
2021/01/23(土) 11:26:24.50ID:+GqnBbRoM 今時完全にスタンドアロンなアプリなんて絶滅危惧種でしょ
そもそもそれ言い出したらWinRTから始まりWinUI含め近年迷走を続けているWindowsのモダンUIって、
どうせ今時のネイティブアプリなんてバックエンドのWebサービスに対する薄い皮にすぎないんだからシンプルな必要最低限の機能があればいいよね、
という思想が根底にあるのだし
そもそもそれ言い出したらWinRTから始まりWinUI含め近年迷走を続けているWindowsのモダンUIって、
どうせ今時のネイティブアプリなんてバックエンドのWebサービスに対する薄い皮にすぎないんだからシンプルな必要最低限の機能があればいいよね、
という思想が根底にあるのだし
233デフォルトの名無しさん (アウアウエー Sa1f-j2E3)
2021/01/23(土) 11:53:22.54ID:3u/wIwRAa reactive extensionってまだ存命なの?
async awaitだけやっとけばいい感じ?
async awaitだけやっとけばいい感じ?
234デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 12:06:47.52ID:hIt2ZLZ60 >>228
じゃあやっぱりelectronのことを言っているのか。
デスクトップアプリをこれから開発しようという時にFormsやWPFと同列に
electronが選択肢に挙がる?
前にやったことがあるけど、クロスプラットフォームにしたいとかどうしても
使いたいjsフレームワークがあるとかの理由でもなけりゃ、面倒くさすぎて
今のままじゃわざわざ使いたいとは思わなかったが。
じゃあやっぱりelectronのことを言っているのか。
デスクトップアプリをこれから開発しようという時にFormsやWPFと同列に
electronが選択肢に挙がる?
前にやったことがあるけど、クロスプラットフォームにしたいとかどうしても
使いたいjsフレームワークがあるとかの理由でもなけりゃ、面倒くさすぎて
今のままじゃわざわざ使いたいとは思わなかったが。
235デフォルトの名無しさん (ワッチョイ c701-xA1r)
2021/01/23(土) 12:11:41.19ID:2Kl/0dQh0 普通にレイアウト強化したwinform2でも出してくれたら良かったのにな
webは別でやればいいのになんでくっつけようとするんだろう
webは別でやればいいのになんでくっつけようとするんだろう
236デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 13:18:57.65ID:LnVZ1o8ia237デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/23(土) 13:38:17.35ID:A5DB0QkA0 >>234
electron選択肢に上がるけどな。
C#アプリでも、もうすぐWebView2が出るから楽しみに待ってるぞ。
なんだかんだでだんだんリッチなUIが求められるようになってるし、ブラウザコンポーネントでやるのは合理的だと思ってる。
枯れてきて安定もしてるし充分速いしな。
最近UIをブラウザで作ること多いけどなかなか便利よ。
embedIOでサーバ起こして、Process.startで開くとかやったり。
Xamarinに持ってったときも一切変更せずにAndroid側でWebView貼り付けて終わりにできたし。
electron選択肢に上がるけどな。
C#アプリでも、もうすぐWebView2が出るから楽しみに待ってるぞ。
なんだかんだでだんだんリッチなUIが求められるようになってるし、ブラウザコンポーネントでやるのは合理的だと思ってる。
枯れてきて安定もしてるし充分速いしな。
最近UIをブラウザで作ること多いけどなかなか便利よ。
embedIOでサーバ起こして、Process.startで開くとかやったり。
Xamarinに持ってったときも一切変更せずにAndroid側でWebView貼り付けて終わりにできたし。
238デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 13:58:24.89ID:4VL29Q1J0239デフォルトの名無しさん (ワッチョイ 8724-BbFI)
2021/01/23(土) 15:17:23.23ID:2XdYRaxf0 Electronって.NET Coreの自前完結みたいにちょっとしたGUIアプリでも100MBくらいになるのは避けられないの?
240デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/23(土) 15:23:50.73ID:A5DB0QkA0 >>239
これ辛いよね。
これ辛いよね。
241デフォルトの名無しさん (ワッチョイ 5f61-1UlN)
2021/01/23(土) 15:32:23.82ID:M9OdZ2iK0 Electron用にパッチをあてたchromiumを含んでるから仕方ないね
node.js系はflockすら標準機能に無いのがもにょる
node.js系はflockすら標準機能に無いのがもにょる
242デフォルトの名無しさん (ワッチョイ 2778-Jq7D)
2021/01/23(土) 15:38:16.51ID:A4wCeRTc0 edgeがchromium採用しているからそれを流用することって出来ないのかね
243デフォルトの名無しさん (ワッチョイ bf8c-WIH3)
2021/01/23(土) 15:54:08.79ID:rSxKixC+0 msの人がwebview2使ったelectronもどき作ってた記憶あるけど忘れた
244デフォルトの名無しさん (ワッチョイ 077b-AH3V)
2021/01/23(土) 16:18:50.61ID:XGqYtf2f0 何のスレだよここ
245デフォルトの名無しさん (ワッチョイ 5f79-JoqA)
2021/01/23(土) 16:25:03.06ID:kfSEiVWz0 >100MB
○avaみたいにランタイム別インスコよりは1つのEXEになってた方がマシ
○avaみたいにランタイム別インスコよりは1つのEXEになってた方がマシ
246デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 16:50:48.24ID:MyEcyelN0247デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 16:56:04.81ID:XHKedqhC0248デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 17:08:24.40ID:hIt2ZLZ60 周りの部署や付き合いのある外注はみんな「ふつーWPF」って感じなんだが、
2chでだけいまだにこんなにFormsにこだわってる人を見かけるのがすごく不思議な感覚。
2chでだけいまだにこんなにFormsにこだわってる人を見かけるのがすごく不思議な感覚。
249デフォルトの名無しさん (ワンミングク MMfb-+HhN)
2021/01/23(土) 17:30:20.73ID:RC6F3sECM >>248
WPFも十分レガシーだよ
WPFも十分レガシーだよ
250デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 17:30:28.90ID:MyEcyelN0 >>247
わざとやってるのかもね
MS社員が今年の目標として「新規に○○の機能を実装する!」とか掲げて、
クソ機能を実装して今年のノルマ達成、とかね
俺らからしたら大きなお世話なんだけどな
XAMLが絡むGUIの部分はそんな気がする
C#の言語仕様自体は良い具合に他言語の良いとこ取りしてて結構好きなんだけどな
わざとやってるのかもね
MS社員が今年の目標として「新規に○○の機能を実装する!」とか掲げて、
クソ機能を実装して今年のノルマ達成、とかね
俺らからしたら大きなお世話なんだけどな
XAMLが絡むGUIの部分はそんな気がする
C#の言語仕様自体は良い具合に他言語の良いとこ取りしてて結構好きなんだけどな
251デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 17:54:40.45ID:LhKkB5Axa MSも子供の遊びじゃないんだからそんな幼稚な動機があるはずがないw
Silverlightは別物としてもWPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって
周到さが足りなかったからだと思うよ。
Win32を作った時ぐらい気合を入れてたらもう少しマシなものが出来てたはず。
.NETやC#にも多少そういうところがあったよね。
頑張ればC#3(VS2008)を最初のバージョンにすることも出来たんじゃないか
どうでもいいけど「スレの趣旨と違う話をするな!」って人が現れないのは
きっとその人も話題に参加してるからだろうねw
言っても無駄だと思うけどそういうご都合主義を反省して欲しいよね
Silverlightは別物としてもWPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって
周到さが足りなかったからだと思うよ。
Win32を作った時ぐらい気合を入れてたらもう少しマシなものが出来てたはず。
.NETやC#にも多少そういうところがあったよね。
頑張ればC#3(VS2008)を最初のバージョンにすることも出来たんじゃないか
どうでもいいけど「スレの趣旨と違う話をするな!」って人が現れないのは
きっとその人も話題に参加してるからだろうねw
言っても無駄だと思うけどそういうご都合主義を反省して欲しいよね
252デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/23(土) 17:58:02.93ID:LhKkB5Axa 思えば、Vistaの時にWinFSなるものがとん挫する事件があったけど
あのあたりからMSはちょっとおかしくなってる気がするね。
あのあたりからMSはちょっとおかしくなってる気がするね。
253デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/23(土) 18:06:49.31ID:hIt2ZLZ60 >>249
その「レガシー」ってどういう意味で言ってるんだろうか。
今デスクトップアプリ開発するのにWPFに替わるものが他にあるということかねぇ。
上で誰かが言っていたElectronもうちの周りじゃあ1プロジェクトくらいしか採用していないが。
その「レガシー」ってどういう意味で言ってるんだろうか。
今デスクトップアプリ開発するのにWPFに替わるものが他にあるということかねぇ。
上で誰かが言っていたElectronもうちの周りじゃあ1プロジェクトくらいしか採用していないが。
254デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 18:12:08.90ID:4VL29Q1J0 >>246,250
> 〇〇の場合は方法1、△△の場合は方法2、みたいに場合分けがあるから分かりにくい
違う、〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
って言うのがまずいって思ってる
具体的には個人的にはWPFはデータ・バインディングとコマンドでやるべきだと思うけど、WinFormからの移行のためかボタンに名前付けてコードから参照するとかコードのイベントハンドラをxamlで指定するとかもできる
できるのはいいんだけどWeb上の解説も両方が説明されてたり下手すると混在して使用されてたりしてわかりにくくなってるような気がする
> 〇〇の場合は方法1、△△の場合は方法2、みたいに場合分けがあるから分かりにくい
違う、〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
って言うのがまずいって思ってる
具体的には個人的にはWPFはデータ・バインディングとコマンドでやるべきだと思うけど、WinFormからの移行のためかボタンに名前付けてコードから参照するとかコードのイベントハンドラをxamlで指定するとかもできる
できるのはいいんだけどWeb上の解説も両方が説明されてたり下手すると混在して使用されてたりしてわかりにくくなってるような気がする
255デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/23(土) 18:46:38.00ID:NjLwKFuQ0 >>254
その割には外部フレームワークを入れないといろいろ不便なのがね..。
例えばBindableBase程度のものはMSで準備して欲しかった。
ViewModelは通常このクラスをベースにして...という基本的なスタンスだったらもっと分かりやすかったと思う。
その割には外部フレームワークを入れないといろいろ不便なのがね..。
例えばBindableBase程度のものはMSで準備して欲しかった。
ViewModelは通常このクラスをベースにして...という基本的なスタンスだったらもっと分かりやすかったと思う。
256デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/23(土) 19:41:56.19ID:J/sR9Yyb0 >>255
Microsoft.Toolkit.MvvmってのがWindowsCommunityToolkitの一部としてもう直ぐ出るらしい
Microsoft.Toolkit.MvvmってのがWindowsCommunityToolkitの一部としてもう直ぐ出るらしい
257デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 20:54:43.81ID:4VL29Q1J0258デフォルトの名無しさん (テテンテンテン MM8f-h15D)
2021/01/23(土) 21:19:01.64ID:88Ok/30EM259デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 21:26:16.24ID:XHKedqhC0 データバインディング使わないほうがうまくいくことが多いよな
260デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 22:15:59.95ID:4VL29Q1J0 >>259
データバインディング使わない方が簡単なのは認めるけどうまく行かないのはお前さんの能力かと…
データバインディング使わない方が簡単なのは認めるけどうまく行かないのはお前さんの能力かと…
261デフォルトの名無しさん (ワッチョイ 7fb5-MWrm)
2021/01/23(土) 22:17:01.87ID:MyEcyelN0 >>254
いや、あるでしょ
例えば、CLRプロパティと依存関係プロパティはどう?
それと、
>〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
>って言うのがまずいって思ってる
それって、
△△は方法1と方法2じゃ出来ないんだよな?
〇〇は方法3と方法4じゃ出来ないんだよな?
俺はそれがまずいと思ってる
〇〇が方法1でも方法2でも最終的に可能になるなら別に構わないんじゃないか?何が問題?
逆に、〇〇を解決しようと思って方法3で始めたが、後々になって方法1か方法2でしか出来ないことが判明した方が痛い
いや、あるでしょ
例えば、CLRプロパティと依存関係プロパティはどう?
それと、
>〇〇は方法1でもできるし方法2でもできる、△△は方法3と方法4でできる
>って言うのがまずいって思ってる
それって、
△△は方法1と方法2じゃ出来ないんだよな?
〇〇は方法3と方法4じゃ出来ないんだよな?
俺はそれがまずいと思ってる
〇〇が方法1でも方法2でも最終的に可能になるなら別に構わないんじゃないか?何が問題?
逆に、〇〇を解決しようと思って方法3で始めたが、後々になって方法1か方法2でしか出来ないことが判明した方が痛い
262デフォルトの名無しさん (ワッチョイ e7c3-KQEQ)
2021/01/23(土) 22:27:19.36ID:H8XCArTD0 asp.netでデスクトップソフト開発ってどうなんだろうか
263デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/23(土) 22:37:04.28ID:XHKedqhC0264デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/23(土) 23:15:35.62ID:J/sR9Yyb0 WinUI3というかUWPではバインディングが改良されて
コンパイル時に厳密な方チェックやってくれてバグに悩まずに済む
コンパイル時に厳密な方チェックやってくれてバグに悩まずに済む
265デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 23:30:17.78ID:4VL29Q1J0266デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/23(土) 23:31:10.83ID:4VL29Q1J0 >>264
そう言うのもWPFに還元して欲しいね
そう言うのもWPFに還元して欲しいね
267デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 00:29:30.39ID:H0Ke+o4H0 >>265
あったまわりぃなお前
データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
開始日と終了日に2000年1月1日が入ってるときに
開始日に2021年を入力したとき最大期間に反応してエラー出すだろ?
ここでエラーを出さなかったらバインドしてるGUIがおかしくなる
したらどうやって開始日と終了日に2021年を設定するんだよ
あったまわりぃなお前
データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
開始日と終了日に2000年1月1日が入ってるときに
開始日に2021年を入力したとき最大期間に反応してエラー出すだろ?
ここでエラーを出さなかったらバインドしてるGUIがおかしくなる
したらどうやって開始日と終了日に2021年を設定するんだよ
268デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/24(日) 02:30:17.53ID:W8Ofgakl0 >>267
InotifyDataErrorInfoなどを使う場合、実装方法にもよるけど、間違った値や無効な値を保持する設計もおかしくないと思う。保持はするがエラーが発生しているという状態で、そのエラー内容を素直にViewが表示する設計。
逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
InotifyDataErrorInfoなどを使う場合、実装方法にもよるけど、間違った値や無効な値を保持する設計もおかしくないと思う。保持はするがエラーが発生しているという状態で、そのエラー内容を素直にViewが表示する設計。
逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
269デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 08:01:29.17ID:H0Ke+o4H0270デフォルトの名無しさん (ワッチョイ 5f01-Wxou)
2021/01/24(日) 08:34:20.11ID:G9QcBvFS0 >>267
想像以上にレベルが低かったw
なんでvalidateの仕組みがないと思った?
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2010/june/msdn-magazine-input-validation-enforcing-complex-business-data-rules-with-wpf
まあ、validateは色々なやり方あるし相互依存とかむっちゃ面倒になったりするからWPFも結構難しくて>>267あたりだと理解できないかもな
想像以上にレベルが低かったw
なんでvalidateの仕組みがないと思った?
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2010/june/msdn-magazine-input-validation-enforcing-complex-business-data-rules-with-wpf
まあ、validateは色々なやり方あるし相互依存とかむっちゃ面倒になったりするからWPFも結構難しくて>>267あたりだと理解できないかもな
271デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 08:39:49.42ID:H0Ke+o4H0 >>270
エアプ乙
エアプ乙
272デフォルトの名無しさん (ドコグロ MM1f-Wxou)
2021/01/24(日) 08:58:35.15ID:OUhuYnVtM >>268
自前でエラー内容を保持するしかないように思う
http://sourcechord.はてなブログ.com/entry/2014/06/08/123738
個人的にはViewModelに不正な値を入れるのは気持ち悪い
>>269,271
そろそろ黙った方がいいと思うよ
顔真っ赤すぎだろw
自前でエラー内容を保持するしかないように思う
http://sourcechord.はてなブログ.com/entry/2014/06/08/123738
個人的にはViewModelに不正な値を入れるのは気持ち悪い
>>269,271
そろそろ黙った方がいいと思うよ
顔真っ赤すぎだろw
273デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 09:06:53.70ID:H0Ke+o4H0 データバインディング使うのやめろやw
274デフォルトの名無しさん (スププ Sd7f-QXKr)
2021/01/24(日) 09:20:23.60ID:EJajcfhwd わざと新しい難解な方法を作ってるって発想はすげえな。
新しい方法使ってみたらわかるけど、なるほど、一部の課題は解決したな、みたいな感じになるだろうに。
新しい方法使ってみたらわかるけど、なるほど、一部の課題は解決したな、みたいな感じになるだろうに。
275デフォルトの名無しさん (スププ Sd7f-QXKr)
2021/01/24(日) 09:22:49.58ID:EJajcfhwd ViewModelはModelではないんだから、別にエラーが入ろうが何でも良いだろ。
ViewModelからModelにするときにまとめてValidationしてるけど。
そうじゃないとそれこそ依存項目のチェックが出来んじゃん。
ViewModelとしてModelを使おうとするから変な話になるんじゃないの?
ViewModelからModelにするときにまとめてValidationしてるけど。
そうじゃないとそれこそ依存項目のチェックが出来んじゃん。
ViewModelとしてModelを使おうとするから変な話になるんじゃないの?
276デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 09:33:19.71ID:H0Ke+o4H0 >>274
でもさ1つの値でうまくいってても他と絡みだすとそれじゃうまくいかんのよ
開始日と終了日は一例ね
ベース値と複数の差分値で表現してるものもうまく行かない
将来的になにかの値と関連する可能性があるならこの仕組みは入れないほうがいいかも?
データバインドっていう複数の値が連動するときにこそ役に立つ仕組みと思いきや実は鬼門とかいうおマヌケなお話(笑)
でもさ1つの値でうまくいってても他と絡みだすとそれじゃうまくいかんのよ
開始日と終了日は一例ね
ベース値と複数の差分値で表現してるものもうまく行かない
将来的になにかの値と関連する可能性があるならこの仕組みは入れないほうがいいかも?
データバインドっていう複数の値が連動するときにこそ役に立つ仕組みと思いきや実は鬼門とかいうおマヌケなお話(笑)
277デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/24(日) 11:17:06.24ID:9PCPJHwQ0278デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 11:20:17.45ID:+fPfkl180 >データバインディングしてる変数に間違ったデータが入るようにしちゃって大丈夫か?
大丈夫だろ
ビューモデルはあくまでビューの状態を表すんだから、ビュー(UI)の方で一時的に開始日と終了日が
ずれてもOKで別途最終確定ボタンみたいなUIを作るなら、
開始日と終了日の関係がずれた値(状態)になってもそれは
ビューモデル的には正しい値だぞ
モデル的には間違った値だけど
ちゃんと区別しよう
大丈夫だろ
ビューモデルはあくまでビューの状態を表すんだから、ビュー(UI)の方で一時的に開始日と終了日が
ずれてもOKで別途最終確定ボタンみたいなUIを作るなら、
開始日と終了日の関係がずれた値(状態)になってもそれは
ビューモデル的には正しい値だぞ
モデル的には間違った値だけど
ちゃんと区別しよう
279デフォルトの名無しさん (ワッチョイ 275f-rvE3)
2021/01/24(日) 11:25:48.71ID:wSlEv8S70 >>251
>WPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって周到さが足りなかったからだと思うよ
いや
センスが無いだけだよ
どれだけリソース有っても創れない
あいつらの限界
>WPF, Metro UI, UWPがコケた理由は単純に人、時間、金の投入量をケチって周到さが足りなかったからだと思うよ
いや
センスが無いだけだよ
どれだけリソース有っても創れない
あいつらの限界
280デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 11:33:52.77ID:+fPfkl180 ビューモデルはあくまでビューの状態を表すように設計するんだぞ
最終的なモデルの状態に不整合があったらまずいが、
ビューモデルはあくまでもビューの状態を表すんだから、一時的に不整合を許すUIを
設計するなら、ビューモデルもそういう状態になるだけだし
ビューモデルからしたら別に間違った状態じゃない
だから、
>逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
とか、前提がおかしいやろ。ビューの状態を表すようにViewModelつくるのに不整合を生じるようにつくるとか意味がわからん
最終的なモデルの状態に不整合があったらまずいが、
ビューモデルはあくまでもビューの状態を表すんだから、一時的に不整合を許すUIを
設計するなら、ビューモデルもそういう状態になるだけだし
ビューモデルからしたら別に間違った状態じゃない
だから、
>逆にViewModelには正しい値しか保持しないとした場合、一時的にViewとViewModelで不整合が生じている状態になりますが、皆さんどのようにされてますか?
とか、前提がおかしいやろ。ビューの状態を表すようにViewModelつくるのに不整合を生じるようにつくるとか意味がわからん
281デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 11:47:47.30ID:H0Ke+o4H0 >>278
それデータバインドいらないよねって言ってるよね?
それデータバインドいらないよねって言ってるよね?
282デフォルトの名無しさん (ワッチョイ 5f90-Woof)
2021/01/24(日) 12:13:40.42ID:+fPfkl180 ビューモデルに他にもテストしやすいとか利点あるだろ?
つか、数学じゃないから誰がもが納得する100%の
答えなんてないから君がそう思うならそう思えばいいと思う
つか、数学じゃないから誰がもが納得する100%の
答えなんてないから君がそう思うならそう思えばいいと思う
283デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 12:18:43.65ID:H0Ke+o4H0 データバインド捨てちゃえよ
楽になるぞw
楽になるぞw
284デフォルトの名無しさん (ワッチョイ 7fbb-NoAX)
2021/01/24(日) 12:28:41.42ID:Mt48K89t0 MVVMがどうのって、今話題のMVUの話題絡みで出てきたのかと思いきや・・・・・なんも関係なかったぜ
285デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 13:48:48.78ID:3jwmj/rb0286デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 14:24:10.62ID:H0Ke+o4H0 >>285
そうやってエアプでできるできる言いたいなら言ってろ
そうやってエアプでできるできる言いたいなら言ってろ
287デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 14:40:58.72ID:3jwmj/rb0 >>286
エアプというか…普段使ってるから自信を持って出来ると言えるんだけど。
別にWPFだけではなくて、他のプラットフォームでもViewModel使ってるぞ。
自分に出来ないからといって、みんな出来ないのに出来るってフカしてると思い込むのは良くないんじゃないか?
複数の値が連動するときにこそ役立ってると思うんだが。違うのか?
鬼門だと一切思わん。
将来的に何か他の値と関連する可能性があるなら尚更じゃん。
なんでViewModelでエラーを表示してる状態が不整合なのか俺には全然わからん。
エアプというか…普段使ってるから自信を持って出来ると言えるんだけど。
別にWPFだけではなくて、他のプラットフォームでもViewModel使ってるぞ。
自分に出来ないからといって、みんな出来ないのに出来るってフカしてると思い込むのは良くないんじゃないか?
複数の値が連動するときにこそ役立ってると思うんだが。違うのか?
鬼門だと一切思わん。
将来的に何か他の値と関連する可能性があるなら尚更じゃん。
なんでViewModelでエラーを表示してる状態が不整合なのか俺には全然わからん。
288デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 14:50:18.37ID:H0Ke+o4H0289デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:02:34.21ID:3jwmj/rb0 >>288
普通に入力可能にして、エラーメッセージの表示条件が、開始日>終了日であること。
保存チェックはエラーメッセージが一切表示されていない事。Modelには一切波及せずViewModelで完結する。
仮保存のみOK。仮保存はViewModelのうちシリアライズしてはいけない項目を殺して保存。
入力中に一時的に入れ替わるなんてよくある事なんだから、いちいち選択不可にしてたらユーザビリティ悪すぎでしょ。
開始日がデフォルトで今日〜空白の時に、一昨日から昨日までの値を入れるのに、いちいち開始日から入力させんの?アホらしいじゃん。
入れ替わった時点でエラーメッセージに「開始日と終了日が入れ替わっています」と出しておけば一発でしょ。ついでに保存ボタンのEnabledも変えとくと親切だな。
エラーメッセージも、保存ボタンのEnabledも、両方ともプロパティにバインドしとけば、値を変えるだけで制御も変わる。便利よね。
普通に入力可能にして、エラーメッセージの表示条件が、開始日>終了日であること。
保存チェックはエラーメッセージが一切表示されていない事。Modelには一切波及せずViewModelで完結する。
仮保存のみOK。仮保存はViewModelのうちシリアライズしてはいけない項目を殺して保存。
入力中に一時的に入れ替わるなんてよくある事なんだから、いちいち選択不可にしてたらユーザビリティ悪すぎでしょ。
開始日がデフォルトで今日〜空白の時に、一昨日から昨日までの値を入れるのに、いちいち開始日から入力させんの?アホらしいじゃん。
入れ替わった時点でエラーメッセージに「開始日と終了日が入れ替わっています」と出しておけば一発でしょ。ついでに保存ボタンのEnabledも変えとくと親切だな。
エラーメッセージも、保存ボタンのEnabledも、両方ともプロパティにバインドしとけば、値を変えるだけで制御も変わる。便利よね。
290デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:03:44.94ID:3jwmj/rb0 まさか今どきエラー項目をダイアログ表示するとかいう発想じゃ無いだろうな…。
291デフォルトの名無しさん (ワッチョイ bfda-p6MY)
2021/01/24(日) 15:04:38.53ID:F+2F2LGq0 >>289
それがVMの役割だよなぁ
VMはViewの値をバインドしてるんだから、どんな値だろうと関係ない。
VMにバインドされた値が範囲外なら赤枠などで注意を促し、保存ボタンを押せなくする。
モデルに渡すときに仕様の範囲内であればいい
それがVMの役割だよなぁ
VMはViewの値をバインドしてるんだから、どんな値だろうと関係ない。
VMにバインドされた値が範囲外なら赤枠などで注意を促し、保存ボタンを押せなくする。
モデルに渡すときに仕様の範囲内であればいい
292デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:05:11.26ID:H0Ke+o4H0 え?できたん?
ちょっとよくわからなかったけど
ちょっとよくわからなかったけど
293デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:06:12.10ID:3jwmj/rb0294デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:07:13.99ID:3jwmj/rb0 >>292
何がわからんかった?
何がわからんかった?
295デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:08:16.18ID:H0Ke+o4H0 >>294
え?値が範囲外で保存できちゃう?
え?値が範囲外で保存できちゃう?
296デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:09:00.14ID:3jwmj/rb0 >>295
保存ボタンがDisabledなので保存のしようがないだろ。
保存ボタンがDisabledなので保存のしようがないだろ。
297デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:09:38.35ID:3jwmj/rb0 それでもできる仮保存は、ViewModelの保存であって実データではない。画面保存。
298デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:10:40.00ID:H0Ke+o4H0299デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:11:59.27ID:H0Ke+o4H0300デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:12:28.56ID:3jwmj/rb0 >>298
チェックしてるじゃん。
プロパティが変わるたびにチェックされるよ。
された結果エラーメッセージが確定して、エラーメッセージが確定したら保存ボタンのEnabledが確定するでしょ。
個別のバリデーションは好きにやれば良い。同様にエラーメッセージを吐いとけば、エラーが一つでもあれば保存ボタンがDisabledになるんだから問題無い。
チェックしてるじゃん。
プロパティが変わるたびにチェックされるよ。
された結果エラーメッセージが確定して、エラーメッセージが確定したら保存ボタンのEnabledが確定するでしょ。
個別のバリデーションは好きにやれば良い。同様にエラーメッセージを吐いとけば、エラーが一つでもあれば保存ボタンがDisabledになるんだから問題無い。
301デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:13:36.69ID:3jwmj/rb0302デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:15:55.11ID:3jwmj/rb0 データバインドできるから、画面保存が、不要な項目を殺す程度の実質ただのシリアライズで実現できるんだけどな。
303デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:17:35.09ID:H0Ke+o4H0 開始日、終了日ダイアログボックス表示してOKボタンで値を保存するんです?
304デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:20:53.63ID:3jwmj/rb0 >>303
開始日の横、終了日の横に、エラーメッセージを表示するラベルを置いてバインディング、
必要ならエラー項目は赤地なんかにしてもいい。
HasErrorもあるし、IDataErrorInfoもあるだろ。
好きなクラス作っても構わん。
開始日の横、終了日の横に、エラーメッセージを表示するラベルを置いてバインディング、
必要ならエラー項目は赤地なんかにしてもいい。
HasErrorもあるし、IDataErrorInfoもあるだろ。
好きなクラス作っても構わん。
305デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:23:17.99ID:H0Ke+o4H0 保存とチェックはOKボタン?
306デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:24:54.20ID:H0Ke+o4H0 UNDO UNDO REDO REDO OK?
307デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:27:25.67ID:3jwmj/rb0 チェックは自動。PropertyChanged使ってもいいし、ReactivePropertyでも良い。
保存は保存ボタン。
Undo、RedoはViewModel保存してれば良いじゃん。
保存は保存ボタン。
Undo、RedoはViewModel保存してれば良いじゃん。
308デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:28:32.34ID:H0Ke+o4H0 キャンセルボタンで開始日終了日ダイアログ表示前の値だろ当然
309デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:31:18.19ID:3jwmj/rb0310デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:32:19.23ID:3jwmj/rb0 何?202/01/02って打ったらダイアログ出てきて2020/12/31にゴリ押しで戻されるようなのが良いの?
明らかに1だけ入れたほうが楽じゃん。
明らかに1だけ入れたほうが楽じゃん。
311デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:32:58.24ID:H0Ke+o4H0 え?範囲チェックいつするの?
312デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:33:11.21ID:3jwmj/rb0 >>311
いつでもしてる。
いつでもしてる。
313デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:34:40.08ID:H0Ke+o4H0 じゃあ、エラーでたままを許容するんだ?
314デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:35:20.11ID:3jwmj/rb0 ViewModel使ってないから、プロパティ変更時にチェックかけるって発想が無いんだろうか。
ボタンクリック時に、if(xxx.Value)...ってひたすら列挙してんのかな。
ボタンクリック時に、if(xxx.Value)...ってひたすら列挙してんのかな。
315デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:35:48.04ID:H0Ke+o4H0 その間、GUIのグラフにはどう出しておけばいい?
316デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:37:14.85ID:3jwmj/rb0 >>313
ViewModelが「エラーを表示している」ってのは正常系。
Modelの開始日終了日は一時的にも逆転することは無い。
なぜならViewModelが「エラーを表示している」状態からは、Modelは生成されない。
Modelにエラー出たままは許容しない。
ViewModelにエラーが出てるのは正常系。許容も何もない。
ViewModelが「エラーを表示している」ってのは正常系。
Modelの開始日終了日は一時的にも逆転することは無い。
なぜならViewModelが「エラーを表示している」状態からは、Modelは生成されない。
Modelにエラー出たままは許容しない。
ViewModelにエラーが出てるのは正常系。許容も何もない。
317デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:38:28.95ID:3jwmj/rb0 >>315
そのレンジのグラフを表示するなら「描画できません」一択だろ。
業務アプリなら、画面入力しようとしたら一旦グラフ消すだろうし。
そうしないと、入力中のスクショ送られてきて混乱することになるぞ。
そのレンジのグラフを表示するなら「描画できません」一択だろ。
業務アプリなら、画面入力しようとしたら一旦グラフ消すだろうし。
そうしないと、入力中のスクショ送られてきて混乱することになるぞ。
318デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:40:59.68ID:3jwmj/rb0 入力がおちつくまでグラフを描画しない、をやりたければReactivePropertyの方が楽だな。
319デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 15:47:17.96ID:H0Ke+o4H0320デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 15:52:16.29ID:3jwmj/rb0321デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:05:06.18ID:3jwmj/rb0 一応言っとくが、びっくり返すのも直接Visibleを変えるんじゃなくて、Visibleにエラーが有るか無いかから算出されるプロパティをバインディングすれば良いからな。
322デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 16:11:45.64ID:H0Ke+o4H0 データバインド使うためだけに余波が物凄くね?
開始日と終了日のエラーを許容してる間って他の値を変えたときはそっちは保存するの?
開始日と終了日のエラーを許容してる間って他の値を変えたときはそっちは保存するの?
323デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:18:07.86ID:3jwmj/rb0 ViewModel使う事によって余波が減ってると思うが。
他の値は他の値でバリデーションかけたら良いだろ。
保存されるも何も、Modelとしてされないよ。一部がおかしいデータは全体として必ずおかしいだろ。
ViewModelとしては一時保存したければするかもしれんが、Modelにはならん。
その別のデータとやらが開始日と終了日に挟まれているべき日付、なんかだったらそもそもの定義が揺らいでくるじゃん。
全部Leaveするときにチェックするの?コントロール順とか、入力バリデーションに引っかかる順番ごとにテストする?組み合わせ爆発するし、ダイアログが出るかどうかなんてテスト、自動化しづらくて仕方ないじゃん。
明らかに、ViewModelとして帳尻が合ってるかをチェックする方が確実だし効率的でしょ。
だから許容も何もない。
他の値は他の値でバリデーションかけたら良いだろ。
保存されるも何も、Modelとしてされないよ。一部がおかしいデータは全体として必ずおかしいだろ。
ViewModelとしては一時保存したければするかもしれんが、Modelにはならん。
その別のデータとやらが開始日と終了日に挟まれているべき日付、なんかだったらそもそもの定義が揺らいでくるじゃん。
全部Leaveするときにチェックするの?コントロール順とか、入力バリデーションに引っかかる順番ごとにテストする?組み合わせ爆発するし、ダイアログが出るかどうかなんてテスト、自動化しづらくて仕方ないじゃん。
明らかに、ViewModelとして帳尻が合ってるかをチェックする方が確実だし効率的でしょ。
だから許容も何もない。
324デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 16:46:04.32ID:H0Ke+o4H0 いや、UNDOどうなん?
本格的にエラー値を保存しちゃうの?
本格的にエラー値を保存しちゃうの?
325デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 16:53:34.11ID:3jwmj/rb0 エラー値をViewModelとして表示するし、一時保存もするだろう。
Modelは保存しない(できない)から問題無い。
エラーも含めてUndo、Redoできて何かおかしいか?
未入力 2020/12/31
2021/01/02 2020/12/31
2021/01/02 2021/02/21
全部Undoすれば良いじゃん。
俺がよく使うのは、Undoはコントロールレベルに留めて、「入力破棄」とか「再読込」ってボタンを用意する事だけど。
変更はViewModelに留まってるから、普通に破棄してModelから再読み込みしてViewModel再構成したら終わる。
開始日終了日は確定してないけど一部だけ変更されたデータなんかを保存するつもりなの?
Modelは保存しない(できない)から問題無い。
エラーも含めてUndo、Redoできて何かおかしいか?
未入力 2020/12/31
2021/01/02 2020/12/31
2021/01/02 2021/02/21
全部Undoすれば良いじゃん。
俺がよく使うのは、Undoはコントロールレベルに留めて、「入力破棄」とか「再読込」ってボタンを用意する事だけど。
変更はViewModelに留まってるから、普通に破棄してModelから再読み込みしてViewModel再構成したら終わる。
開始日終了日は確定してないけど一部だけ変更されたデータなんかを保存するつもりなの?
326デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 17:00:54.66ID:3jwmj/rb0 ViewModelにエラーを表示している状態を保存してなんの問題があるんだろう。
実データとは全く関係ないデータなんだが。
そのあと修正して確定させないとModelに落ちないなら問題なくね?
いっつもそうして「仮保存」やってるんだけど。
番号取っとかないとダメとかはまた別のやり方するけどさ。
実データとは全く関係ないデータなんだが。
そのあと修正して確定させないとModelに落ちないなら問題なくね?
いっつもそうして「仮保存」やってるんだけど。
番号取っとかないとダメとかはまた別のやり方するけどさ。
327デフォルトの名無しさん (ワッチョイ 0763-n48n)
2021/01/24(日) 17:51:29.07ID:VCT3oYN70 twitterでやれ
328デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 17:55:17.05ID:H0Ke+o4H0 この間別の正しい値はmodelまで保存できるの?
開始日と終了日に関わるすべての値が保存対象でなくなる?
開始日と終了日に関わるすべての値が保存対象でなくなる?
329デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/24(日) 18:03:41.68ID:zEWhRUHAa 何を争ってるのかいまいちよく分からないけどずいぶん盛り上がってるね。
さすがに誰かタオル投げた方がいいレベルのような気がするけど
こういう時はなぜかだんまりなのねw
さすがに誰かタオル投げた方がいいレベルのような気がするけど
こういう時はなぜかだんまりなのねw
330デフォルトの名無しさん (ブーイモ MMcb-74EK)
2021/01/24(日) 18:06:22.86ID:RuSK0e8mM 続きはこっちでどうぞ
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
https://mevius.5ch.net/test/read.cgi/tech/1575862574/
WPF(.NET4.x, .NET Core) GUIプログラミング Part24
https://mevius.5ch.net/test/read.cgi/tech/1575862574/
331デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 18:18:42.23ID:H0Ke+o4H0332デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 18:19:27.82ID:3jwmj/rb0 >>328
一つのModelに開始日終了日とその別の値が入ってるなら保存するべきじゃないし、保存しないと思うぞ。
開始日終了日に関わるんじゃなくて、その画面上に表示されてるデータが確定できるデータじゃないでしょ。
正しい値でもなんでもない。
あのさあ。結局データバインディング使ってどう解決したら良いか知らないから、データバインディング使わないほうがお前の場合良いって事にしかならんでしょ。
エアプそのものじゃん。
一つのModelに開始日終了日とその別の値が入ってるなら保存するべきじゃないし、保存しないと思うぞ。
開始日終了日に関わるんじゃなくて、その画面上に表示されてるデータが確定できるデータじゃないでしょ。
正しい値でもなんでもない。
あのさあ。結局データバインディング使ってどう解決したら良いか知らないから、データバインディング使わないほうがお前の場合良いって事にしかならんでしょ。
エアプそのものじゃん。
333デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 18:20:37.83ID:3jwmj/rb0 >>331
そのエラー値のデータは、確定されない、永続化されないから対応に追われることは無いよ。
だからViewModelに閉じ込めるんであって。
ViewModelとModelを区別できて無いじゃん。
何聞いてんの?
そのエラー値のデータは、確定されない、永続化されないから対応に追われることは無いよ。
だからViewModelに閉じ込めるんであって。
ViewModelとModelを区別できて無いじゃん。
何聞いてんの?
334デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 18:23:05.74ID:3jwmj/rb0 がっかり回答どころかがっかり理解力だわ。
俺が間違ってるなら指摘してくれ。
俺が間違ってるなら指摘してくれ。
335デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 18:25:54.36ID:H0Ke+o4H0 いや、だったらデータバインドいらねーじゃん
だってそれ普通にダイアログ出してOKボタンでチェック&保存してんのと変わらんもん
なんかいい方法を知ってる神が舞い降りるのをみんな待っているのさ(笑)
俺はデータバインド使うのやめたけどw
だってそれ普通にダイアログ出してOKボタンでチェック&保存してんのと変わらんもん
なんかいい方法を知ってる神が舞い降りるのをみんな待っているのさ(笑)
俺はデータバインド使うのやめたけどw
336デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 18:38:06.15ID:3jwmj/rb0 >>335
UI層変わったらどうすんの?
WPFからUWPやXamarinなんかに移植するとき、全部コントロール貼り直して、コントロールへの値のSet,Get全部やり変えて、全部テストすんの?
新しいUIフレームワーク出たら?
アホでしょ、常識的に考えて。
UI層変わったらどうすんの?
WPFからUWPやXamarinなんかに移植するとき、全部コントロール貼り直して、コントロールへの値のSet,Get全部やり変えて、全部テストすんの?
新しいUIフレームワーク出たら?
アホでしょ、常識的に考えて。
337デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 18:39:44.53ID:3jwmj/rb0 テストするときにモックのUI差し替えて自動テスト出来るんだけど。
最終的には結合試験するだろうけど、その前の段階でも画面ポチポチしながら決定表みてテストしてくの?
工数の無駄遣いでしょ。
最終的には結合試験するだろうけど、その前の段階でも画面ポチポチしながら決定表みてテストしてくの?
工数の無駄遣いでしょ。
338デフォルトの名無しさん (ワッチョイ df2d-Woof)
2021/01/24(日) 18:45:29.80ID:QhWu03/T0 元はデータバインディング使うと上手く行かないことがあるって話だったのにすり替わっているな
339デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 18:47:17.74ID:H0Ke+o4H0 >>338
うまくいってねぇじゃん
うまくいってねぇじゃん
340デフォルトの名無しさん (ワッチョイ 5fad-mCaM)
2021/01/24(日) 18:50:14.09ID:Ok705ENM0 NGでスッキリ
341デフォルトの名無しさん (テテンテンテン MM8f-3C30)
2021/01/24(日) 18:50:33.38ID:g03tv9KOM 横からだけど
いままでMVVMの意義が理解できてなかったのがID:3jwmj/rb0の説明で開眼したかもしれない
WPFスレで聞くべきかもしれないけど、
View=ViewModelの保持値を表示する&入力値が変わったりボタンが押されたらViewModelの当該プロパティやメソッドを呼び出すだけの存在
(決してビジネスロジックやバリデーションをView自体に持たせてはいけない)
ViewModel=画面上のいろんなTextBoxやLabelのTextだったりButtonのEnabledだったりを一元的に保持することだけを担う存在
(エラー入力値なんかもあるがままに保持すべきであり、
ViewModelでバリデーションチェックを行ったうえでバリデーションNGとかの結果もエラー表示項目の値としてセットすべきである)
Model:極論してしまえばView/ViewModel以外のビジネスロジック的な処理すべて
(UIに依存しない処理は全部Modelで書く)
っていう理解でおおむねあってる?
なんとなくだけど、上記の考え方なのだとしたら
そもそも ID:H0Ke+o4H0 の人はMVVMでなかったとしてもMVVMでいうModelとそれ以外の処理もごちゃ混ぜで書いてそうな印象
いままでMVVMの意義が理解できてなかったのがID:3jwmj/rb0の説明で開眼したかもしれない
WPFスレで聞くべきかもしれないけど、
View=ViewModelの保持値を表示する&入力値が変わったりボタンが押されたらViewModelの当該プロパティやメソッドを呼び出すだけの存在
(決してビジネスロジックやバリデーションをView自体に持たせてはいけない)
ViewModel=画面上のいろんなTextBoxやLabelのTextだったりButtonのEnabledだったりを一元的に保持することだけを担う存在
(エラー入力値なんかもあるがままに保持すべきであり、
ViewModelでバリデーションチェックを行ったうえでバリデーションNGとかの結果もエラー表示項目の値としてセットすべきである)
Model:極論してしまえばView/ViewModel以外のビジネスロジック的な処理すべて
(UIに依存しない処理は全部Modelで書く)
っていう理解でおおむねあってる?
なんとなくだけど、上記の考え方なのだとしたら
そもそも ID:H0Ke+o4H0 の人はMVVMでなかったとしてもMVVMでいうModelとそれ以外の処理もごちゃ混ぜで書いてそうな印象
342デフォルトの名無しさん (ワッチョイ a7a7-Bv92)
2021/01/24(日) 18:59:46.81ID:H0Ke+o4H0 >>341
開始日と終了日エラーでたままじゃグラフの表示範囲も決まらんかもしれんのによくやるわ
ビジネスロジック入れないでグラフの表示範囲計算できると思ってるのかよ
夢見んな
んでエラー値許容のまま放置できちゃったらエラー箇所ユーザにわかるのかよ的な
visualstudioだって一発ビルドしないとエラー箇所わからん
ボクはうまくいってないと思います
開始日と終了日エラーでたままじゃグラフの表示範囲も決まらんかもしれんのによくやるわ
ビジネスロジック入れないでグラフの表示範囲計算できると思ってるのかよ
夢見んな
んでエラー値許容のまま放置できちゃったらエラー箇所ユーザにわかるのかよ的な
visualstudioだって一発ビルドしないとエラー箇所わからん
ボクはうまくいってないと思います
343デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/24(日) 19:01:12.31ID:zEWhRUHAa やっぱり何の話をしてるのかよく分からんけど
UI上の値がモデルに今反映されているのかどうかはっきりしないUIはイラッとくるね。
UI上の値がモデルに反映されていない状態を許すなら>>335が言ってるように
ダイアログ出してくれる方がフレンドリーだと思う。
許さないならUI上の値も常に不整合を許すべきではないと思う。
数直線上の閉区間(a≦x≦b)を入力するUIがあったとして、
ユーザーによるaの入力が確定した時a>bになっちゃってたらb = aに変わるべき。
UI上の値がモデルに今反映されているのかどうかはっきりしないUIはイラッとくるね。
UI上の値がモデルに反映されていない状態を許すなら>>335が言ってるように
ダイアログ出してくれる方がフレンドリーだと思う。
許さないならUI上の値も常に不整合を許すべきではないと思う。
数直線上の閉区間(a≦x≦b)を入力するUIがあったとして、
ユーザーによるaの入力が確定した時a>bになっちゃってたらb = aに変わるべき。
344デフォルトの名無しさん (ワッチョイ 874f-b71I)
2021/01/24(日) 19:05:57.47ID:1wsdfsyQ0 WinFormsのコントロールは内部状態を抱え込んでたんでテストが面倒くさかったのを
VMで外出しにした、というくらいに理解しておけばいいと思う。
バインデングいらないの人はFormsじゃあどうしてたんだろうか。
VMで外出しにした、というくらいに理解しておけばいいと思う。
バインデングいらないの人はFormsじゃあどうしてたんだろうか。
345デフォルトの名無しさん (テテンテンテン MM8f-3C30)
2021/01/24(日) 19:09:39.64ID:g03tv9KOM ??
グラフ表示に必要な項目が入力エラーなら「日付が間違ってるのでグラフが表示できません」ってテキストで表示するだけだと思うんだけど
ていうか>>342のいう「グラフ作成」がbmpみたいな画像生成を指すのであれば
その処理はたぶんModelで持つのが正しい気がするし、
View/Modelが密接不可分に結合するような処理であれば
わざわざViewとModelの分離を意図してる(で合ってるよね?)MVVMにしないほうがいいのは当たり前の話だと思う
グラフ表示に必要な項目が入力エラーなら「日付が間違ってるのでグラフが表示できません」ってテキストで表示するだけだと思うんだけど
ていうか>>342のいう「グラフ作成」がbmpみたいな画像生成を指すのであれば
その処理はたぶんModelで持つのが正しい気がするし、
View/Modelが密接不可分に結合するような処理であれば
わざわざViewとModelの分離を意図してる(で合ってるよね?)MVVMにしないほうがいいのは当たり前の話だと思う
346デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 19:57:04.13ID:3jwmj/rb0 >>341
値にしなくてもプロパティとして表現すると読み書きの方向がはっきりするし良いよ。特にEnabledとかは。
>>342
表示範囲が決まってないのに、グラフが表示できるわけないんだから、「現在描画できません」って表示するのは正でしょ。
ビジネスロジックに通したとしても、それをModelとして保存するかどうかは別問題。
エラー値許容って考え方がおかしい。
エラー箇所がわかるようにバインドするのであって、
各変数がバインドできてるかはモックViewModelを使ったUIテスト、
各種バリデーションがきちんと発生するからモックUIを使ったViewModelテストで、疎に担保するべきもの。
コンパイルエラーとかそういう次元ではなくてUnitTestぐらい通すだろ、普通。
責任範囲がまぜこぜじゃん。
>>343
業務アプリで、画面表示中の項目と、入力項目が不一致になるのは禁忌に近いんじゃないかな。
スクリーンショットからトラブルシュートするのがほぼ不能になる。
>>345
そのグラフ作成、Modelではなくて、切り出しておくべきでは?
結局のところ、一定範囲のデータを与えられて、グラフを描画するって関数なりコントロールになって然るべきだと思うよ。
内部的にbmpを生成しようが、画面に描画する以上。
そうしといたら、グラフコントロールを差し替えたい時に気楽に差し替えられる。
値にしなくてもプロパティとして表現すると読み書きの方向がはっきりするし良いよ。特にEnabledとかは。
>>342
表示範囲が決まってないのに、グラフが表示できるわけないんだから、「現在描画できません」って表示するのは正でしょ。
ビジネスロジックに通したとしても、それをModelとして保存するかどうかは別問題。
エラー値許容って考え方がおかしい。
エラー箇所がわかるようにバインドするのであって、
各変数がバインドできてるかはモックViewModelを使ったUIテスト、
各種バリデーションがきちんと発生するからモックUIを使ったViewModelテストで、疎に担保するべきもの。
コンパイルエラーとかそういう次元ではなくてUnitTestぐらい通すだろ、普通。
責任範囲がまぜこぜじゃん。
>>343
業務アプリで、画面表示中の項目と、入力項目が不一致になるのは禁忌に近いんじゃないかな。
スクリーンショットからトラブルシュートするのがほぼ不能になる。
>>345
そのグラフ作成、Modelではなくて、切り出しておくべきでは?
結局のところ、一定範囲のデータを与えられて、グラフを描画するって関数なりコントロールになって然るべきだと思うよ。
内部的にbmpを生成しようが、画面に描画する以上。
そうしといたら、グラフコントロールを差し替えたい時に気楽に差し替えられる。
347デフォルトの名無しさん (ドコグロ MM8b-Wxou)
2021/01/24(日) 20:50:20.30ID:ELcioWmtM348デフォルトの名無しさん (テテンテンテン MM8f-3C30)
2021/01/24(日) 20:57:17.36ID:nmX/+8uTM >>346にある「プロパティ」って他言語でいうComputed Property(ごめんC#で何て言うか分からない)のことでいいのかな
であれば(and>>344の理解で良いなら)MVVM完全に理解した
ただしく適用すればソースコードの見通しがめちゃくちゃよくなるだろうと思いました
といっても普段の開発がWinFormsかASPNETCoreばっかりなんで活かせる機会なんて来ないんだけどさ
グラフ作成はViewやViewModelに押し込むくらいならModelに置いてくれと思ったけど
別に切り出せるならそのほうがもっと良いのはごもっともです
層分けって大事だよねー・・・と普段メンテしてるようなソースを思い起こしながらため息をついてみたり
であれば(and>>344の理解で良いなら)MVVM完全に理解した
ただしく適用すればソースコードの見通しがめちゃくちゃよくなるだろうと思いました
といっても普段の開発がWinFormsかASPNETCoreばっかりなんで活かせる機会なんて来ないんだけどさ
グラフ作成はViewやViewModelに押し込むくらいならModelに置いてくれと思ったけど
別に切り出せるならそのほうがもっと良いのはごもっともです
層分けって大事だよねー・・・と普段メンテしてるようなソースを思い起こしながらため息をついてみたり
349デフォルトの名無しさん (ワッチョイ 5fad-mCaM)
2021/01/24(日) 21:15:16.63ID:Ok705ENM0 >>348
C#でプロパティって言えば迷うはずないだろ
C#でプロパティって言えば迷うはずないだろ
350デフォルトの名無しさん (テテンテンテン MM8f-3C30)
2021/01/24(日) 21:27:56.19ID:nmX/+8uTM プロパティと聞いて「自動プロパティ」のほうがまっさきに思い浮かんじゃって
「自動プロパティじゃないほうのプロパティ」の呼び方が分からなかったんだけど・・・
何て呼ぶのが一般的なのかな
「自動プロパティじゃないほうのプロパティ」の呼び方が分からなかったんだけど・・・
何て呼ぶのが一般的なのかな
351デフォルトの名無しさん (ワッチョイ a733-Vkx9)
2021/01/24(日) 22:00:13.52ID:W8Ofgakl0 >>341
あってます。
ViewModelは具体的なUIを持たないViewだと思えば良いです。
なのでVisible等のViewに関するロジックはここが持ちます。
ViewはViewModelをそのまま具体的なUIで表現するだけです。
あってます。
ViewModelは具体的なUIを持たないViewだと思えば良いです。
なのでVisible等のViewに関するロジックはここが持ちます。
ViewはViewModelをそのまま具体的なUIで表現するだけです。
352デフォルトの名無しさん (ワッチョイ 87ad-QXKr)
2021/01/24(日) 22:02:48.96ID:3jwmj/rb0 プロパティ、そりゃどれもプロパティだな、言葉足らず申し訳ない。
Computed Propertyググった。
そう、これの事。値を持たず他のプロパティの内容から算出されるプロパティ。
Computed Propertyググった。
そう、これの事。値を持たず他のプロパティの内容から算出されるプロパティ。
353デフォルトの名無しさん (ワントンキン MM3f-FIml)
2021/01/25(月) 08:56:15.41ID:Qq8daOwnM354デフォルトの名無しさん (スププ Sd7f-QXKr)
2021/01/25(月) 12:28:32.14ID:8A1Q9MV4d ちゃんとスレあるんだな。
すまなんだ。
すまなんだ。
355デフォルトの名無しさん (オッペケ Sr7b-ereA)
2021/01/25(月) 12:49:25.57ID:5TPK3+z7r いえいえ
356デフォルトの名無しさん (ワッチョイ c701-Vkx9)
2021/01/25(月) 20:38:53.42ID:FWpwiUbb0 プログラマできちんと反省できる人はレア。
357デフォルトの名無しさん (ブーイモ MMcf-BQY2)
2021/01/26(火) 08:08:46.68ID:z9KCwqI+M プログラマが反省してたら精神がもちません
358デフォルトの名無しさん (テテンテンテン MM8f-jQT1)
2021/01/28(木) 12:09:38.85ID:ud5nmCvYM Enumerable.OrderBy メソッドを呼び出す際に、
引数に送るデリゲート(Func<TSource,TKey>)を動的に指定したい。
具体的には、
List<Person> people = new List<Person>(basePeople.orderby(person => person.名前))
といった並べ替え処理を、Personクラスの各プロパティについて行いたい。
(年齢、整理番号、生年月日など)
現在はそれぞれのプロパティ(20以上)について上記メソッドを作成して
やりたいことは実現していますが、全くスマートじゃないです。
propertyinfoクラスを使って何かできないかと思ったんですが、
デリゲートの中に組み込むような使い方が全く思いつきませんでした。
どなたか分かる方教えて下さい。
引数に送るデリゲート(Func<TSource,TKey>)を動的に指定したい。
具体的には、
List<Person> people = new List<Person>(basePeople.orderby(person => person.名前))
といった並べ替え処理を、Personクラスの各プロパティについて行いたい。
(年齢、整理番号、生年月日など)
現在はそれぞれのプロパティ(20以上)について上記メソッドを作成して
やりたいことは実現していますが、全くスマートじゃないです。
propertyinfoクラスを使って何かできないかと思ったんですが、
デリゲートの中に組み込むような使い方が全く思いつきませんでした。
どなたか分かる方教えて下さい。
359デフォルトの名無しさん (ブーイモ MMcf-j2E3)
2021/01/28(木) 12:59:34.80ID:ow1EdAwiM Syatem.Linq.Dynamic
360デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/28(木) 13:42:24.38ID:lJ0XEYQza362デフォルトの名無しさん (アウアウエー Sa1f-j2E3)
2021/01/28(木) 14:49:10.30ID:5GS4w4/Ua System.Linq.Dynamic
363デフォルトの名無しさん (オッペケ Sr7b-bv8J)
2021/01/28(木) 15:13:49.91ID:VSUe7hwUr 同一PC上でのアプリ同士の連動のさせかたを教えてください
フォームアプリケーションA.Bを作り、
Aが単独でも動くメインアプリ、Bは拡張機能付きリモコン、という風にしたいんですが、
Aのサブフォームではなく、別のexeファイルからBを起動したいです
そのうえで、同時起動中にBを操作することでAのtextboxを変更したり、Aを動かすためのメソッドをBのソースに書いてボタンイベントで呼び出し、等できると最高なんですが、
これはそもそも可能なことなのか、検索ワードすらわからず詰まってます
可能であればできるだけシンプルな方法を教えてください、
現在、C#、windowsformでAの途中まで制作中です
フォームアプリケーションA.Bを作り、
Aが単独でも動くメインアプリ、Bは拡張機能付きリモコン、という風にしたいんですが、
Aのサブフォームではなく、別のexeファイルからBを起動したいです
そのうえで、同時起動中にBを操作することでAのtextboxを変更したり、Aを動かすためのメソッドをBのソースに書いてボタンイベントで呼び出し、等できると最高なんですが、
これはそもそも可能なことなのか、検索ワードすらわからず詰まってます
可能であればできるだけシンプルな方法を教えてください、
現在、C#、windowsformでAの途中まで制作中です
364デフォルトの名無しさん (ワッチョイ 7fda-3kb+)
2021/01/28(木) 15:14:46.55ID:r2+Y9V1O0 つ UIAutomation
365デフォルトの名無しさん (ワッチョイ 5f42-xA1r)
2021/01/28(木) 15:26:15.90ID:7g2F6RGP0366363 (オッペケ Sr7b-bv8J)
2021/01/28(木) 16:28:24.36ID:VSUe7hwUr ありがとう、検索して試してみます!
367デフォルトの名無しさん (アウアウエー Sa1f-rvE3)
2021/01/28(木) 16:33:51.84ID:lJ0XEYQza >>361
こんなのとか。
ただの思い付きなので動作するか確認してないし欲しいものと違ったらごめんね。
class DynamicComparer<T>:IComparer<T>
{
public string PropertyToCompare { get; set; }
public DynamicComparer(string propertyToCompare)
{
this.PropertyToCompare = propertyToCompare;
}
int IComparer<T>.Compare(T x, T y)
{
var t = typeof(T);
var p = t.GetProperty(PropertyToCompare, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var xp = p.GetValue(x);
var yp = p.GetValue(y);
return System.Collections.Comparer.Default.Compare(xp, yp);
}
}
こんなのとか。
ただの思い付きなので動作するか確認してないし欲しいものと違ったらごめんね。
class DynamicComparer<T>:IComparer<T>
{
public string PropertyToCompare { get; set; }
public DynamicComparer(string propertyToCompare)
{
this.PropertyToCompare = propertyToCompare;
}
int IComparer<T>.Compare(T x, T y)
{
var t = typeof(T);
var p = t.GetProperty(PropertyToCompare, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var xp = p.GetValue(x);
var yp = p.GetValue(y);
return System.Collections.Comparer.Default.Compare(xp, yp);
}
}
368デフォルトの名無しさん (ワッチョイ 2778-Jq7D)
2021/01/28(木) 21:47:36.42ID:SNcV832D0 何回も上がっているけどSystem.Linq.Dynamicを使いなよ
369デフォルトの名無しさん (ワッチョイ fa2d-M8vF)
2021/01/29(金) 00:11:56.19ID:SOOUWe4N0 System.Linq.Dynamic使うとどんな風に書けるの
370デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/01/29(金) 00:14:38.17ID:hhAzUQXda var list = customers
.Where("Name.Contains(@0)","ZZZ Projects")
.ToList();
.Where("Name.Contains(@0)","ZZZ Projects")
.ToList();
371デフォルトの名無しさん (ワッチョイ a635-7iTp)
2021/01/29(金) 13:25:03.45ID:Hs1mJoLC0 >>363
SendMessage PostMessageは
SendMessage PostMessageは
372デフォルトの名無しさん (アウウィフ FF21-qCTK)
2021/01/29(金) 16:32:59.15ID:5pIDnM+SF pipe
socket
socket
373デフォルトの名無しさん (ワッチョイ 6a2f-bDzS)
2021/01/29(金) 19:24:38.38ID:IAlTEreC0 COM公開して操作とかできんか?
374デフォルトの名無しさん (ワッチョイ 9e8c-JUiw)
2021/01/30(土) 10:31:51.17ID:U3K72huj0 gRPC使ってプロセス間通信でよくね?
375デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/01/30(土) 10:32:40.83ID:pteiWSPF0 もう何もかもなくなってしまったのか
376デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 09:44:26.84ID:RldRqHno0 入門書には、クラスの設定系のメンバーは、公開する必要が無ければprivateにせよ、
みたいなことがよく書かれています。
ですが、例えば自作クラス ClassA, ClassBがあるとして、
ClassA
{
public int IntVal { get; private set; }
public ClassB BVal { get; private set; }
}
IntValはいいとして、BValに関しては、getプロパティでBValへの参照を取得できてしまいます。
その参照を通してBValにある設定メソッドを呼べば、BValの内容を外部から変更し放題です。
これを防ぐ方法として
1. ClassBを不変にする(ClassB内には、コンストラクタ以外に設定方法を用意しない)
2. ClassBのクローンを返す
3. ClassB内の取得系メソッドのみを集めたインターフェースを返す
4. ClassBを値型(構造体)にする
一応、以上のようなことを思いつくのですが、ここで質問です。
この問題(メンバがクラス型の場合に、セッターを単にprivateにしてもカプセル化できない)について、
皆さんはどう対処してますか?
単に「カプセル化したければこんなテクニックもあるよ」というのを紹介してほしいのではありません。
皆さんが(使い捨てでない)プログラムを書く際に、実際に、どういう考え方で、どう対処しているのか、
あるいは特に対処していないのか、を知りたいです。
よろしくお願いします。
みたいなことがよく書かれています。
ですが、例えば自作クラス ClassA, ClassBがあるとして、
ClassA
{
public int IntVal { get; private set; }
public ClassB BVal { get; private set; }
}
IntValはいいとして、BValに関しては、getプロパティでBValへの参照を取得できてしまいます。
その参照を通してBValにある設定メソッドを呼べば、BValの内容を外部から変更し放題です。
これを防ぐ方法として
1. ClassBを不変にする(ClassB内には、コンストラクタ以外に設定方法を用意しない)
2. ClassBのクローンを返す
3. ClassB内の取得系メソッドのみを集めたインターフェースを返す
4. ClassBを値型(構造体)にする
一応、以上のようなことを思いつくのですが、ここで質問です。
この問題(メンバがクラス型の場合に、セッターを単にprivateにしてもカプセル化できない)について、
皆さんはどう対処してますか?
単に「カプセル化したければこんなテクニックもあるよ」というのを紹介してほしいのではありません。
皆さんが(使い捨てでない)プログラムを書く際に、実際に、どういう考え方で、どう対処しているのか、
あるいは特に対処していないのか、を知りたいです。
よろしくお願いします。
377デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 09:50:34.81ID:RldRqHno0 ちなみに、お前自身はどう対処するんだ?と聞かれるかもしれませんが、
C#の経験が乏しいこともあって、どうすればいいのか正直よくわからないです。
(だからみんなのやり方を参考にしたい)
C++なら、公開したい相手だけをfriendにするとか、constなポインタを返すとかするのですが。
C#の経験が乏しいこともあって、どうすればいいのか正直よくわからないです。
(だからみんなのやり方を参考にしたい)
C++なら、公開したい相手だけをfriendにするとか、constなポインタを返すとかするのですが。
378デフォルトの名無しさん (ベーイモ MM2e-1MsU)
2021/01/31(日) 09:55:53.85ID:wMusnPrAM ClassBについても設定系のメンバがprivateになってれば何も問題ない
むしろprivateでないsetterがClassBにあるなら必要があって公開してるはず
むしろprivateでないsetterがClassBにあるなら必要があって公開してるはず
379デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/01/31(日) 10:14:39.41ID:8OVECKvh0 そもそもpublicじゃん
380デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 10:29:08.15ID:RldRqHno0 例えばint型は自由に値を設定できます(その必要があります)が、
ClassAにとっては、int型の内部データであるIntValを、ClassAの外から
変更されたくない(値の参照はしたい)ため、setのみをprivateにしています。
同様のことをClassBでもやりたいと考えているのですが・・・。
そもそもそういう考え方自体がおかしいのかな?
ClassAにとっては、int型の内部データであるIntValを、ClassAの外から
変更されたくない(値の参照はしたい)ため、setのみをprivateにしています。
同様のことをClassBでもやりたいと考えているのですが・・・。
そもそもそういう考え方自体がおかしいのかな?
381デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/01/31(日) 10:43:24.54ID:Xb450EhAa とりあえずイミュータブルにしとけばいいよ
どうしてもイミュータブルではいけない理由が出来たときにどうするか悩めばいい
どうしてもイミュータブルではいけない理由が出来たときにどうするか悩めばいい
382デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/01/31(日) 10:57:10.85ID:8OVECKvh0 >>380
まず前提だけど
publicやprivateで改修時の設計を制限しようと思ってるの?
正直、こんなもんお飾りだし
いざ自分がやりたい機能の邪魔になったら問答無用でpublicにする
俺だったら
まあちょっとしたメモアピールぐらいに思っておけばいいんじゃない?
会社として公開するライブラリやdllのクラスだったらそもそもクラスを丸ごと渡すような仕組みにしちゃ駄目だろ
やるにしてもアクセス用のクラス挟んでって長ったらしい設計になることは致し方ない
まず前提だけど
publicやprivateで改修時の設計を制限しようと思ってるの?
正直、こんなもんお飾りだし
いざ自分がやりたい機能の邪魔になったら問答無用でpublicにする
俺だったら
まあちょっとしたメモアピールぐらいに思っておけばいいんじゃない?
会社として公開するライブラリやdllのクラスだったらそもそもクラスを丸ごと渡すような仕組みにしちゃ駄目だろ
やるにしてもアクセス用のクラス挟んでって長ったらしい設計になることは致し方ない
383デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 10:59:20.78ID:RldRqHno0 イミュータブルというのは、>>376の方法1のことですよね?
たしかに、.Netに標準で用意されているクラスの多くは、インスタンスを一度作成したら、
内容を変更できないようになっている気がします
内容の一部を変更したいとき(例えばFontのサイズだけを変更したいとか)は面倒ですが・・・
たしかに、.Netに標準で用意されているクラスの多くは、インスタンスを一度作成したら、
内容を変更できないようになっている気がします
内容の一部を変更したいとき(例えばFontのサイズだけを変更したいとか)は面倒ですが・・・
384デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 11:07:26.15ID:RldRqHno0 >>382
たしかに、あくまでメモ程度に考えて、気にしなければいいのかもしれません
以前、C++で、引数をポインタで渡す際、引数の中身を関数内で変更されたくないので
引数をconstポインタ型にしてたのに、関数の中でconstをキャストで外すように関数内を
書き換えられてしまっていたことがあります
気にしたらきりがないですね
たしかに、あくまでメモ程度に考えて、気にしなければいいのかもしれません
以前、C++で、引数をポインタで渡す際、引数の中身を関数内で変更されたくないので
引数をconstポインタ型にしてたのに、関数の中でconstをキャストで外すように関数内を
書き換えられてしまっていたことがあります
気にしたらきりがないですね
385デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/01/31(日) 11:14:00.48ID:Xb450EhAa >>383
1のことでいいよ
イミュータブルの内容を少し変えたオブジェクトがほしいけどコード書くのめんどくさい問題は昔からあった
昔は言語サポートがなかったのでコード生成で対処していた
新しいC#ではwith構文が追加されたのでこの問題は解決済み
1のことでいいよ
イミュータブルの内容を少し変えたオブジェクトがほしいけどコード書くのめんどくさい問題は昔からあった
昔は言語サポートがなかったのでコード生成で対処していた
新しいC#ではwith構文が追加されたのでこの問題は解決済み
386デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 11:25:38.47ID:RldRqHno0 ありがとうございます
With構文というのは知りませんでした
With構文というのは知りませんでした
387デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/01/31(日) 12:05:56.26ID:+uTrKl1S0 with式の前にその前提となってるレコード型を調べるといい
388デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 13:37:12.02ID:RldRqHno0 レコード型とwithについてざっとですがWebで調べてみました。
これらの機能を実際に使うかどうかはともかくとして、イミュータブルにすべきという
指針が得られたのはとても参考になりました。
ありがとうございました。
これらの機能を実際に使うかどうかはともかくとして、イミュータブルにすべきという
指針が得られたのはとても参考になりました。
ありがとうございました。
389デフォルトの名無しさん (ワッチョイ 79de-YX0t)
2021/01/31(日) 14:24:54.16ID:pXICYBtJ0 俺はコードの仕組みまでいじってやるほどの問題ではないと思う
ちょっとした仕様の変更でprivateをpublicにしなければならないときクソ邪魔過ぎて作ったやつ呪うレベル
ちょっとした仕様の変更でprivateをpublicにしなければならないときクソ邪魔過ぎて作ったやつ呪うレベル
390デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 15:52:52.73ID:QuI6Fit80 C#で作ったアプリケーションをVS2019でビルドしました。
実行ファイルが作成されたbin>releaseのフォルダに、実行ファイルがあると正常に実行できるのですが、
他のフォルダにコピーすると実行できない(ダブルクリックしても反応しない)
状態です。
なぜなんでしょう?
実行ファイルが作成されたbin>releaseのフォルダに、実行ファイルがあると正常に実行できるのですが、
他のフォルダにコピーすると実行できない(ダブルクリックしても反応しない)
状態です。
なぜなんでしょう?
391デフォルトの名無しさん (ワッチョイ 1eda-vNtm)
2021/01/31(日) 15:55:01.39ID:AZLe64Sd0 releaseフォルダをまるっとコピーしたんか?
exeだけ移動させても、dllが不足してたら動かんぞ
exeだけ移動させても、dllが不足してたら動かんぞ
392デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 16:02:29.10ID:RldRqHno0393デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/01/31(日) 16:24:40.13ID:Xb450EhAa >>389
privateをpublicにするのは構わないがイミュータブルなクラスをミュタブルにするのは絶対に駄目
privateをpublicにするのは構わないがイミュータブルなクラスをミュタブルにするのは絶対に駄目
394デフォルトの名無しさん (ワントンキン MM7a-ovjX)
2021/01/31(日) 16:36:30.32ID:TH60xXxXM >>392
そういう状況になるような設計がそもそも悪い、に一票
他のクラスAの内臓を引き摺り出さないといけないような処理があるなら、それはA自身に持たせるべき
Tell, Don't Ask でググるといい
そういう状況になるような設計がそもそも悪い、に一票
他のクラスAの内臓を引き摺り出さないといけないような処理があるなら、それはA自身に持たせるべき
Tell, Don't Ask でググるといい
395デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 17:15:07.79ID:QuI6Fit80396デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 17:16:51.45ID:QuI6Fit80 ちょっとやっかいなことになったなぁ・・・
現在tobiiのアイトラッカーは使っていないので、
tobii抜きでビルドしたいのですが、どこで設定しているのかわからないので取り除けません
sdkのアンインストールツールなんてものもなさそうだし・・・
現在tobiiのアイトラッカーは使っていないので、
tobii抜きでビルドしたいのですが、どこで設定しているのかわからないので取り除けません
sdkのアンインストールツールなんてものもなさそうだし・・・
397デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 17:19:17.00ID:QuI6Fit80 開発したオブジェクトをtobiiを使っていない旧バージョンのプログラムにコピーしたらうまく行かないかと思ったんですが、
プロジェクト間でオブジェクトのコピーができない・・・
プロジェクト間でオブジェクトのコピーができない・・・
398デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 17:57:24.91ID:QuI6Fit80 プロジェクトをまたいでフォームをコピーしようとすると
「この操作のソースファイルがこのソリューションに見つかりません。」
と表示されるのですが、何が悪いのでしょうか?
「この操作のソースファイルがこのソリューションに見つかりません。」
と表示されるのですが、何が悪いのでしょうか?
399デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/01/31(日) 18:13:15.24ID:Xb450EhAa >>392
根本的な設計は問題ないよ
例えば注文と注文明細のようにオブジェクトが別のオブジェクトを含むという構造はよくあることだ
それ自体にはなんの問題もない
では何が問題かというとそれは注文明細をミュータブルにしてしまったこと
注文明細をミュータブルにしてしまうと
注文と注文明細の間にあったはずの不変条件を簡単に壊すことができてしまう
根本的な設計は問題ないよ
例えば注文と注文明細のようにオブジェクトが別のオブジェクトを含むという構造はよくあることだ
それ自体にはなんの問題もない
では何が問題かというとそれは注文明細をミュータブルにしてしまったこと
注文明細をミュータブルにしてしまうと
注文と注文明細の間にあったはずの不変条件を簡単に壊すことができてしまう
400デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 18:57:41.42ID:QuI6Fit80 C#というかVSではソリューションをまたいでフォームをコピーするとかは不可能なんでしょうか?
またいでコピーすると
「この操作のソースファイルがこのソリューションに見つかりません。」
と表示されコピーできないのですが、これが出来ないとフォームを別アプリとかで再利用できないですよね
コピーできないはずがないだろうと思って調べているのですがやり方が分からい・・・
またいでコピーすると
「この操作のソースファイルがこのソリューションに見つかりません。」
と表示されコピーできないのですが、これが出来ないとフォームを別アプリとかで再利用できないですよね
コピーできないはずがないだろうと思って調べているのですがやり方が分からい・・・
401デフォルトの名無しさん (ワッチョイ 6978-unxX)
2021/01/31(日) 19:36:48.60ID:N+Pm82Ll0 エクスプローラーでファイルをコピーするという発想は無いの?
402デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/01/31(日) 20:20:00.00ID:QuI6Fit80 >>401
ありがとうございます
知りませんでした・・・
ファイルコピーしたらプロジェク内に表示されましたが、
SDK導入前のプロジェクトにSDK導入後開発したフォームを移植してもうまく動かないですね
SDKを一度導入すると取り除くのは不可能なのか・・・
全く使わないDLLファイルが大量にあるってなんか気持ち悪いですが、我慢するしかないのかな・・・
ありがとうございます
知りませんでした・・・
ファイルコピーしたらプロジェク内に表示されましたが、
SDK導入前のプロジェクトにSDK導入後開発したフォームを移植してもうまく動かないですね
SDKを一度導入すると取り除くのは不可能なのか・・・
全く使わないDLLファイルが大量にあるってなんか気持ち悪いですが、我慢するしかないのかな・・・
403デフォルトの名無しさん (ワッチョイ 66bb-RNyz)
2021/01/31(日) 21:08:22.28ID:RldRqHno0404デフォルトの名無しさん (オッペケ Srbd-Z/xs)
2021/01/31(日) 21:42:41.93ID:1LV1XQdcr405デフォルトの名無しさん (ワッチョイ 5d2d-merL)
2021/01/31(日) 21:49:02.35ID:d4v/P7z60 List<int>の中で最大の数値の個数をLINQで数えたいのですが
どう書いたらいいのでしょうか?
どう書いたらいいのでしょうか?
406デフォルトの名無しさん (ワッチョイ 1eda-vNtm)
2021/01/31(日) 22:20:10.23ID:AZLe64Sd0 >>405
var hoge = new List<int> { 1, 2, 3, 4, 5, 4, 5, 4, 5 };
var maxCount = hoge.Where( x => x == hoge.Max() ).Count();
var hoge = new List<int> { 1, 2, 3, 4, 5, 4, 5, 4, 5 };
var maxCount = hoge.Where( x => x == hoge.Max() ).Count();
407デフォルトの名無しさん (ワッチョイ 662c-xuBi)
2021/01/31(日) 22:20:29.15ID:nDa51Aej0 Max()で最大値取った後Count(x => x == max)すればいいんじゃない普通に
408デフォルトの名無しさん (ワッチョイ 1eda-vNtm)
2021/01/31(日) 22:23:53.17ID:AZLe64Sd0 たしかに、Whereの中にhoge.Max()を書いちゃうと毎回評価されて効率わるいのかな。
すまん
すまん
409デフォルトの名無しさん (ワッチョイ 1e62-zR5L)
2021/01/31(日) 22:24:43.04ID:6uii1UZd0 >>405
GroupByでキーを値、バリューを個数にしたグループを作ってキーで並び替えて最後の行を取得するってのが1回の実行で完結する時の一般的なやり方
GroupByでキーを値、バリューを個数にしたグループを作ってキーで並び替えて最後の行を取得するってのが1回の実行で完結する時の一般的なやり方
410デフォルトの名無しさん (アウアウエー Sa52-qCTK)
2021/01/31(日) 22:24:51.03ID:tsmk7oeqa 計算量と可読性考えた素直に自分で書いた方がよい気がするよw
411デフォルトの名無しさん (ワッチョイ 5d2d-merL)
2021/01/31(日) 22:36:08.49ID:d4v/P7z60 みなさまありがとうございました
GroupBy調べてみます。
GroupBy調べてみます。
412デフォルトの名無しさん (ワッチョイ 8dac-aXb2)
2021/01/31(日) 22:36:31.74ID:jjH+MY7o0 いえいえ
413デフォルトの名無しさん (アウアウエー Sa52-qCTK)
2021/01/31(日) 22:47:04.53ID:tsmk7oeqa LINQというかその乱用者が嫌われる理由の一端を見た気がするw
414デフォルトの名無しさん (ワッチョイ b501-Z/xs)
2021/01/31(日) 23:08:40.21ID:r9k2b4HI0 >>413
あんたがついてけて無いだけ。
あんたがついてけて無いだけ。
415デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/01/31(日) 23:14:50.67ID:8OVECKvh0 ループでMax出しながらカウントも行けると思うんやけど
速度的にもわかりやすさ的にも
絶対こっちのが上やんか?
それに対する反省はないん?
けったいな方法使って性能も悪いなんてなんや最高にダッサイなぁ?
速度的にもわかりやすさ的にも
絶対こっちのが上やんか?
それに対する反省はないん?
けったいな方法使って性能も悪いなんてなんや最高にダッサイなぁ?
416デフォルトの名無しさん (アウアウエー Sa52-qCTK)
2021/01/31(日) 23:36:34.74ID:tsmk7oeqa >>414
これ言ってる本人は語るに落ちてるって気付いてないんだろうねw
KISSの原則とか青臭いこと言いたくないけど、
ダメな人は自分が自己確証を目的にしてる自覚がないからダメなんだな
前にも書いたけどこの業界にはイキってる連中が群がってる技術は
絶対に衰退する法則があるけどそれも上記が理由の一つだねw
これ言ってる本人は語るに落ちてるって気付いてないんだろうねw
KISSの原則とか青臭いこと言いたくないけど、
ダメな人は自分が自己確証を目的にしてる自覚がないからダメなんだな
前にも書いたけどこの業界にはイキってる連中が群がってる技術は
絶対に衰退する法則があるけどそれも上記が理由の一つだねw
417デフォルトの名無しさん (ワッチョイ b501-Z/xs)
2021/02/01(月) 00:28:41.11ID:YBzqaDjv0 >>407
これすら理解できんの?
これすら理解できんの?
418デフォルトの名無しさん (ワッチョイ b602-P+vo)
2021/02/01(月) 00:49:03.93ID:BmIrX0ai0 >>405
dotnet add package System.Interactive
using System;
using System.Collections.Generic;
using System.Linq;
var q = new List<int>() { ... };
var ans = q.MaxBy(x => x).Count();
System.Console.WriteLine(ans);
dotnet add package System.Interactive
using System;
using System.Collections.Generic;
using System.Linq;
var q = new List<int>() { ... };
var ans = q.MaxBy(x => x).Count();
System.Console.WriteLine(ans);
419デフォルトの名無しさん (アウアウエー Sa52-qCTK)
2021/02/01(月) 01:19:51.10ID:LuxfmHdua420デフォルトの名無しさん (ワッチョイ b501-Z/xs)
2021/02/01(月) 01:48:39.77ID:YBzqaDjv0421デフォルトの名無しさん (ワッチョイ 4a52-99pZ)
2021/02/01(月) 07:56:42.00ID:SHJOz7VI0422デフォルトの名無しさん (スププ Sd0a-t37P)
2021/02/01(月) 08:16:36.29ID:iKAM042Ld ループでMax出しながらカウントはListに限って言えばまあ許容範囲内だけど、
IEnumerableに対する処理としては微妙じゃない?
全件かならず読み込む必要があるのと、裏がDBならクエリになって集計だけ行われるのではパフォーマンス差出ると思うが。
そのへん、バックエンドがどう、だからコードはこう、って考えるよりも、Linqで処理して弾力をもたせるってのは有りだと思うけど。
けったいな方法だとは思わん
IEnumerableに対する処理としては微妙じゃない?
全件かならず読み込む必要があるのと、裏がDBならクエリになって集計だけ行われるのではパフォーマンス差出ると思うが。
そのへん、バックエンドがどう、だからコードはこう、って考えるよりも、Linqで処理して弾力をもたせるってのは有りだと思うけど。
けったいな方法だとは思わん
423デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/01(月) 08:39:43.77ID:70GW+0Z90 linq使わなきゃワンループ余裕でしょ?
max値更新するときカウンタリセットして同値見つかったらインクリメントすればいいっしょ?
max値更新するときカウンタリセットして同値見つかったらインクリメントすればいいっしょ?
424デフォルトの名無しさん (ワッチョイ 3d24-2oIo)
2021/02/01(月) 08:49:27.91ID:f9q1oLiO0 foreachなら普通にループ一回で済むわな
425デフォルトの名無しさん (アウアウエー Sa52-fG0K)
2021/02/01(月) 08:59:56.25ID:YMWDOp3Pa >>422
DBうんぬんはIQueryableなので関係ない
IEnumerableになってる時点で最も効率がいいのは1回スキャン
ソースが小さいListなら効率は気にしなくていい
ファイル読み込みとかだと無視できないので汎用化したいなら1回スキャンで済むようにするのがLinqのマナー
DBうんぬんはIQueryableなので関係ない
IEnumerableになってる時点で最も効率がいいのは1回スキャン
ソースが小さいListなら効率は気にしなくていい
ファイル読み込みとかだと無視できないので汎用化したいなら1回スキャンで済むようにするのがLinqのマナー
426デフォルトの名無しさん (ワッチョイ 9e8c-JUiw)
2021/02/01(月) 10:06:42.50ID:5LLgSMFp0 a.Aggregate((int.MinValue,0), (cur,next) => cur.Item1 < next ? (next, 1) : (cur.Item1 == next ? (next, cur.Item2 + 1) : cur));
これじゃダメなの?
これじゃダメなの?
427デフォルトの名無しさん (テテンテンテン MM3e-ovjX)
2021/02/01(月) 10:24:56.67ID:laVzODdgM >>426
さすがにこれはひどい
さすがにこれはひどい
428デフォルトの名無しさん (スププ Sd0a-t37P)
2021/02/01(月) 10:26:19.00ID:iKAM042Ld >>425
あ、そうか。納得。
あ、そうか。納得。
429デフォルトの名無しさん (ワッチョイ 1eda-vNtm)
2021/02/01(月) 14:37:18.05ID:PZUYg2ag0430デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/02/01(月) 15:26:59.74ID:DEyQGLil0431デフォルトの名無しさん (ワッチョイ 6610-IZeX)
2021/02/02(火) 20:45:05.39ID:uZjppo1+0 すみません 教えてください
using Windows.System.Diagnostics;
の
SystemCpuUsageReport.UserTime
SystemCpuUsageReport.KernelTime
SystemCpuUsageReport.IdleTime
は それぞれ
ユーザーがCPUを使用していた時間(The amount of CPU user time consumed by the system.)
カーネルがCPUを使用していた時間(The amount of CPU kernel time consumed by the system.)
CPUがアイドルであった時間(The amount of time the CPU was idle.)
となっているのですが、 それぞれ、なにを表しているのでしょうか?
タイマー関数で、1秒ごとに、idoletime+Kernaltime+Usertime の差分をを求めても、
14秒から15秒になってしまうので、単純にな数字ではないと思うのですが、どのような理論で
この数字が出ているのかが皆目わかりません
よろしくお願いいたします。
using Windows.System.Diagnostics;
の
SystemCpuUsageReport.UserTime
SystemCpuUsageReport.KernelTime
SystemCpuUsageReport.IdleTime
は それぞれ
ユーザーがCPUを使用していた時間(The amount of CPU user time consumed by the system.)
カーネルがCPUを使用していた時間(The amount of CPU kernel time consumed by the system.)
CPUがアイドルであった時間(The amount of time the CPU was idle.)
となっているのですが、 それぞれ、なにを表しているのでしょうか?
タイマー関数で、1秒ごとに、idoletime+Kernaltime+Usertime の差分をを求めても、
14秒から15秒になってしまうので、単純にな数字ではないと思うのですが、どのような理論で
この数字が出ているのかが皆目わかりません
よろしくお願いいたします。
432デフォルトの名無しさん (ワッチョイ ea61-JR60)
2021/02/02(火) 21:08:40.40ID:kveRc3Dr0 CPUスレッド数
433デフォルトの名無しさん (ワッチョイ 3933-merL)
2021/02/03(水) 00:26:51.19ID:v8/308I10 publicなプロパティにはxmlコメントを付けると思いますが、
バッキングフィールドってどこに記入してますか?
クラスの先頭付近に書いても、
自動実装プロパティはコード上ではバッキングフィールドは無いし、
納まりが悪いです。
private string _name; //←これどこに書きますか?
/// <summary>名前</summary>
public string Name {
get => _name;
set => _name = value.ToUpper();
}
/// <summary>年齢</summary>
public int Age { get; set; }
バッキングフィールドってどこに記入してますか?
クラスの先頭付近に書いても、
自動実装プロパティはコード上ではバッキングフィールドは無いし、
納まりが悪いです。
private string _name; //←これどこに書きますか?
/// <summary>名前</summary>
public string Name {
get => _name;
set => _name = value.ToUpper();
}
/// <summary>年齢</summary>
public int Age { get; set; }
434デフォルトの名無しさん (アウアウエー Sa52-qCTK)
2021/02/03(水) 01:43:39.37ID:1I0faZoba >>433
質問の趣旨は要するにただ「バッキングフィールドをどこに書くべきか?」それだけ?
自分はスニペットのテンプレのままなのでプロパティー本体の直前に書くけど
そんなの別にどこでもお好みでいいと思うよ。
うるさいがこう書けと言うならおとなしくそれにしたがっておけばいいと思う。
質問の趣旨は要するにただ「バッキングフィールドをどこに書くべきか?」それだけ?
自分はスニペットのテンプレのままなのでプロパティー本体の直前に書くけど
そんなの別にどこでもお好みでいいと思うよ。
うるさいがこう書けと言うならおとなしくそれにしたがっておけばいいと思う。
435デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/03(水) 02:41:30.85ID:7CsH6q/40 https://qiita.com/toshi0607/items/801a0d37fb48313cbdbd
C#6.0
自動プロパティ初期化子を与えて、初期値指定ができるようになりました。
public string Name { get; set; } = "Nyanchu"
以下と同意です。
private string _name = "Nyanchu";
public string Name
{
get { return _name; }
set { _name = value; }
}
これでいいんじゃね?
C#6.0
自動プロパティ初期化子を与えて、初期値指定ができるようになりました。
public string Name { get; set; } = "Nyanchu"
以下と同意です。
private string _name = "Nyanchu";
public string Name
{
get { return _name; }
set { _name = value; }
}
これでいいんじゃね?
436デフォルトの名無しさん (ワッチョイ 6d63-B8+7)
2021/02/03(水) 08:22:20.89ID:0ICj5PSn0 何がこれでいいの?質問を理解してる?
437デフォルトの名無しさん (ワッチョイ 6aad-xXvC)
2021/02/03(水) 08:24:12.18ID:qNul9lFK0 久しぶりに触ってんだけど
vs2019でフォームにクラスファイルを追加するときは
右側のプロジェクトウィンドウみたいなところで右クリックして追加ないとダメなんだっけ?
メニューバーのだとただのクラスファイルを作るだけ?
vs2019でフォームにクラスファイルを追加するときは
右側のプロジェクトウィンドウみたいなところで右クリックして追加ないとダメなんだっけ?
メニューバーのだとただのクラスファイルを作るだけ?
438デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/03(水) 08:42:49.88ID:7CsH6q/40 >>436
_nameを消したいのかとESP
_nameを消したいのかとESP
439デフォルトの名無しさん (ワッチョイ 8d66-B8+7)
2021/02/03(水) 08:55:41.75ID:9jfq2zZC0440デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/03(水) 08:59:26.01ID:7CsH6q/40 そもそも書かなくて良くなるじゃん
set{value=略;}にすれば
なるっけ?
set{value=略;}にすれば
なるっけ?
441デフォルトの名無しさん (ワッチョイ 8d66-B8+7)
2021/02/03(水) 09:03:06.99ID:9jfq2zZC0 書きたくないんじゃなくて書く必要がある場合にどこに書くのか?だろ
勝手に質問変えないで
自動実装プロパティでは不都合があるため自前でバッキングフィールドを用意する、は大前提
勝手に質問変えないで
自動実装プロパティでは不都合があるため自前でバッキングフィールドを用意する、は大前提
442デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/03(水) 09:05:26.44ID:7CsH6q/40 >>441
書く必要があるときってあるん?
書く必要があるときってあるん?
443デフォルトの名無しさん (ワッチョイ b67c-IZeX)
2021/02/03(水) 09:10:29.51ID:drzEfAtQ0 >>437
「フォームにクラスファイルを追加する」が意味わからん プロジェクトにファイルを追加する?
「メニューバーの」が具体的にどれを指してるのか分からん
「ただのクラスファイルを作るだけ」がやりたいこととどう異なっているのか分からん
「フォームにクラスファイルを追加する」が意味わからん プロジェクトにファイルを追加する?
「メニューバーの」が具体的にどれを指してるのか分からん
「ただのクラスファイルを作るだけ」がやりたいこととどう異なっているのか分からん
444デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/03(水) 11:07:31.11ID:7CsH6q/40445358 (テテンテンテン MM3e-cLcr)
2021/02/03(水) 14:11:05.34ID:QuhKbcfMM >>359
調べてみましたが、サンプルコードを見ても良く分かりませんでした。
あとで勉強してみます。
>>367
これでも出来そうでした。アドバイスありがとう。
結果報告ですが、ExpressionTreeを使って動的にラムダ式を生成することで解決しました。
完成したコードは以下の通り。
void DynamicOrderBy(string propName){
//引数の文字列に対応するプロパティを返すラムダ式の生成
Func<Person, string> keyFunc = GetDynamicPropertyExpression(propName).Compile();
//動的に生成したラムダ式を使ってOrderBy
var sortedPeople = people.OrderBy(keyFunc)
}
static Expression<Func<KoyouPerson, string>> GetDynamicPropertyExpression(string columnName){
var type = typeof(KoyouPerson);
var property = type.GetProperty(columnName);
var parameter = Expression.Parameter(type, "p");
//p.{columnName}
var propertyAccess = Expression.MakeMemberAccess(parameter, property);
//p => p.{columnName} というラムダ式を格納した式ツリーを返す
return Expression.Lambda<Func<KoyouPerson, string>>(propertyAccess, parameter);
}
調べてみましたが、サンプルコードを見ても良く分かりませんでした。
あとで勉強してみます。
>>367
これでも出来そうでした。アドバイスありがとう。
結果報告ですが、ExpressionTreeを使って動的にラムダ式を生成することで解決しました。
完成したコードは以下の通り。
void DynamicOrderBy(string propName){
//引数の文字列に対応するプロパティを返すラムダ式の生成
Func<Person, string> keyFunc = GetDynamicPropertyExpression(propName).Compile();
//動的に生成したラムダ式を使ってOrderBy
var sortedPeople = people.OrderBy(keyFunc)
}
static Expression<Func<KoyouPerson, string>> GetDynamicPropertyExpression(string columnName){
var type = typeof(KoyouPerson);
var property = type.GetProperty(columnName);
var parameter = Expression.Parameter(type, "p");
//p.{columnName}
var propertyAccess = Expression.MakeMemberAccess(parameter, property);
//p => p.{columnName} というラムダ式を格納した式ツリーを返す
return Expression.Lambda<Func<KoyouPerson, string>>(propertyAccess, parameter);
}
446デフォルトの名無しさん (ワッチョイ ea42-6WVI)
2021/02/03(水) 15:14:33.67ID:qlx5EMsl0447デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/02/03(水) 15:24:45.11ID:q3Uucr840 >>445
OrderByのサンプル見れば分かるやろ
https://dotnetfiddle.net/GdxsMG
Customers.OrderBy(c => c.City)を
Customers.OrderBy("City”)にできる
OrderByのサンプル見れば分かるやろ
https://dotnetfiddle.net/GdxsMG
Customers.OrderBy(c => c.City)を
Customers.OrderBy("City”)にできる
448デフォルトの名無しさん (スフッ Sd0a-tETL)
2021/02/03(水) 16:56:36.24ID:ADWHn1WBd449デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/02/03(水) 17:10:24.98ID:PTI/2U/t0 Form上のテキストボックスにファイルのパスを記入してもらって、
このパスにあるファイルをpythonで起動したいのですが
var pass = this.passSetting.Text;
System.Diagnostics.Process.Start("python.exe", @pass);
では何も起動しません。
多分
@pass
ではパスを示せてないんだと思うんですが、どうすればテキストボックスから取得したパスをProcess,Startの引数にできるんでしょう?
このパスにあるファイルをpythonで起動したいのですが
var pass = this.passSetting.Text;
System.Diagnostics.Process.Start("python.exe", @pass);
では何も起動しません。
多分
@pass
ではパスを示せてないんだと思うんですが、どうすればテキストボックスから取得したパスをProcess,Startの引数にできるんでしょう?
450デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/02/03(水) 17:33:43.76ID:PTI/2U/t0 System.Diagnostics.Process.Start("python.exe", @"""L:\AAAAAA\USN_analyzer\time_series_analysis26.py""");
だとpythonのファイルを実行できるんですが、
var pass = "L:\AAAAAA\USN_analyzer\time_series_analysis26.py"
System.Diagnostics.Process.Start("python.exe", @pass);
みたいに変数で実行ファイルのパスを渡すことってできないのでしょうか?
だとpythonのファイルを実行できるんですが、
var pass = "L:\AAAAAA\USN_analyzer\time_series_analysis26.py"
System.Diagnostics.Process.Start("python.exe", @pass);
みたいに変数で実行ファイルのパスを渡すことってできないのでしょうか?
451デフォルトの名無しさん (ワッチョイ 2a01-I+PI)
2021/02/03(水) 17:42:11.05ID:q3Uucr840 >>450
その2つだとpython.exeに渡す引数がquoteされてるかどうかの違い出るからうまく行くほうに合わせたら?
var pass = @"""L:¥AAAAAA¥USN_analyzer¥time_series_analysis26.py""";
System.Diagnostics.Process.Start("python.exe", pass);
ちなみにpassじゃなくてpath
その2つだとpython.exeに渡す引数がquoteされてるかどうかの違い出るからうまく行くほうに合わせたら?
var pass = @"""L:¥AAAAAA¥USN_analyzer¥time_series_analysis26.py""";
System.Diagnostics.Process.Start("python.exe", pass);
ちなみにpassじゃなくてpath
452デフォルトの名無しさん (ワッチョイ 1161-JR60)
2021/02/03(水) 18:29:48.39ID:dgpbKw5W0 >>450
頭の@は文字列リテラルに付けた時と変数に付けた時は意味が違う
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/verbatim
頭の@は文字列リテラルに付けた時と変数に付けた時は意味が違う
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/tokens/verbatim
453デフォルトの名無しさん (ワッチョイ 662f-unxX)
2021/02/03(水) 23:04:55.84ID:PTI/2U/t0454デフォルトの名無しさん (ワッチョイ 6aad-RNyz)
2021/02/04(木) 03:54:16.03ID:8ASdjdRY0 エクセルの表みたいな
一行に複数の列(項目が並んでる 二次元の配列って
ArrayListじゃだめなんだっけ?
独自のプロプロパティをもったクラスつくってそれを列に放り込むんだったっけ?
一行に複数の列(項目が並んでる 二次元の配列って
ArrayListじゃだめなんだっけ?
独自のプロプロパティをもったクラスつくってそれを列に放り込むんだったっけ?
455デフォルトの名無しさん (ワッチョイ 79a7-YX0t)
2021/02/04(木) 07:35:49.07ID:mMDqMLln0 フィールドがプロパティで
レコードが件数になりまつ
って言うと通じるの?
List<myclass> dtcls = new List<myclass>();
的な
myclassのメンバがプロパティで
レコードが件数になりまつ
って言うと通じるの?
List<myclass> dtcls = new List<myclass>();
的な
myclassのメンバがプロパティで
456デフォルトの名無しさん (ラクッペペ MM3e-mj3q)
2021/02/04(木) 08:09:30.76ID:+vIUF0nDM 通じない
フィールド、プロパティ、メンバ
それぞれに言語上の意味がある
フィールド、プロパティ、メンバ
それぞれに言語上の意味がある
457デフォルトの名無しさん (ワッチョイ c594-unxX)
2021/02/04(木) 09:33:50.26ID:5uFosyLe0 書き込めない
458デフォルトの名無しさん (ワッチョイ c594-unxX)
2021/02/04(木) 09:37:28.17ID:5uFosyLe0 WebRequestでウェブページを取得しているのですが、POSTに必要なFormDataがうまく取得できません
普通なら対象ページのHTMLを見れば取得できるのですが、対象ページの”実行”ボタンを押した時にjavascriptでPOSTに必要な情報を
生成しているようで、この値を取得できないのです。
何か方法がありましたら教えてください
普通なら対象ページのHTMLを見れば取得できるのですが、対象ページの”実行”ボタンを押した時にjavascriptでPOSTに必要な情報を
生成しているようで、この値を取得できないのです。
何か方法がありましたら教えてください
459デフォルトの名無しさん (ワッチョイ c594-unxX)
2021/02/04(木) 09:38:55.99ID:5uFosyLe0 HTMLはこんな感じです
<input type="submit" value="実行" onclick="sid()">
<input type="submit" value="実行" onclick="sid()">
460デフォルトの名無しさん (ワッチョイ b67c-IZeX)
2021/02/04(木) 11:07:52.39ID:NUvwu5Ez0 自分でJavaScript解析できないならSeleniumで
461デフォルトの名無しさん (ワッチョイ a59b-qCTK)
2021/02/04(木) 11:24:29.52ID:ZzRKCYY/0 selenium
462デフォルトの名無しさん (ワッチョイ 66f2-GDPA)
2021/02/04(木) 12:51:14.55ID:PDwRodWn0 ブラウザでF12押してネットワークになに流れてるかを見てみたら?
463デフォルトの名無しさん (ワッチョイ c594-unxX)
2021/02/04(木) 15:45:09.59ID:5uFosyLe0464デフォルトの名無しさん (ブーイモ MMc9-qSW8)
2021/02/04(木) 17:55:14.32ID:uLY+2761M >>463
C#でそのJavaScriptと同じことをやって値を計算するか、C#からJavaScriptを実行して結果を取得するか
C#でそのJavaScriptと同じことをやって値を計算するか、C#からJavaScriptを実行して結果を取得するか
465デフォルトの名無しさん (ワッチョイ a52c-czmT)
2021/02/04(木) 18:17:04.90ID:SyfdH0Mz0 public class Test
{
public int data { get; set; }
}
Test b = new Test()
bをウオッチすると、dataが、「@data」となるのですが、なぜですかね?
{
public int data { get; set; }
}
Test b = new Test()
bをウオッチすると、dataが、「@data」となるのですが、なぜですかね?
466デフォルトの名無しさん (ワッチョイ 662c-IZeX)
2021/02/04(木) 21:33:17.59ID:Gk5V85vI0 Ruby on Rails ではシステムテストで、Selenium Webdriver を使う
Capybara で、Headless Chrome とか
Capybara で、Headless Chrome とか
467デフォルトの名無しさん (ワッチョイ 7fdf-XSVS)
2021/02/05(金) 01:41:49.08ID:RhinnOg60 なんでRoRの話が?
468デフォルトの名無しさん (ワッチョイ 1794-56gX)
2021/02/05(金) 19:26:01.79ID:8Pa/tTU+0 C#でヤフーのメールサーバーからメールを送信できなくなってしまいました。
これまでのやり方はdobon.netにあるようなごくごく単純な方法です。
おそらく↓のせいだと思うのですが、ポート番号と通信方法を変更しても、固まってしまい送信ができません。
どなたか送信ができている方がいたらやり方を教えてください。
【2021年1月19日より】メールソフトで「Yahooメール」の送受信が出来ない!?Outlook・Windows Liveメール設定変更方法 | 大阪狭山びこ
https://osayama.com/security/36346
書き直したプログラムは次のとおりです。
//SmtpClientオブジェクトを作成する
System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient();
//SMTPサーバーを指定する
sc.Host = "smtp.mail.yahoo.co.jp";
//ポート番号を指定する(既定値は25) SSL使用時は587→465
sc.Port = 465;
sc.Credentials = new NetworkCredential("hoge", "fuga");
//SSLを使用する
sc.EnableSsl = true;
//SMTPサーバーに送信する設定にする(既定はNetwork)
sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//メールを送信する
sc.Send(senderMail, recipientMail, subject, body);
これまでのやり方はdobon.netにあるようなごくごく単純な方法です。
おそらく↓のせいだと思うのですが、ポート番号と通信方法を変更しても、固まってしまい送信ができません。
どなたか送信ができている方がいたらやり方を教えてください。
【2021年1月19日より】メールソフトで「Yahooメール」の送受信が出来ない!?Outlook・Windows Liveメール設定変更方法 | 大阪狭山びこ
https://osayama.com/security/36346
書き直したプログラムは次のとおりです。
//SmtpClientオブジェクトを作成する
System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient();
//SMTPサーバーを指定する
sc.Host = "smtp.mail.yahoo.co.jp";
//ポート番号を指定する(既定値は25) SSL使用時は587→465
sc.Port = 465;
sc.Credentials = new NetworkCredential("hoge", "fuga");
//SSLを使用する
sc.EnableSsl = true;
//SMTPサーバーに送信する設定にする(既定はNetwork)
sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
//メールを送信する
sc.Send(senderMail, recipientMail, subject, body);
469デフォルトの名無しさん (ワッチョイ 9f7c-JWMU)
2021/02/05(金) 19:45:05.14ID:+3DA/7eT0 ちょっとググれば出るやんw
https://whatsnewmail.yahoo.co.jp/yahoo/20200824a.html
https://whatsnewmail.yahoo.co.jp/yahoo/20200824a.html
470デフォルトの名無しさん (ワッチョイ f761-DFMR)
2021/02/05(金) 19:49:44.60ID:KQRmB00P0 https://docs.microsoft.com/ja-jp/dotnet/api/system.net.mail.smtpclient.enablessl
SMTP+STARTTLSにしか対応してないのでSMTPSに対応する他の方法を使う
SMTP+STARTTLSにしか対応してないのでSMTPSに対応する他の方法を使う
471デフォルトの名無しさん (ワッチョイ 9fad-zhgz)
2021/02/05(金) 21:14:07.85ID:wjTgrFbp0 SmtpClientってそもそも非推奨だしな
472デフォルトの名無しさん (ワッチョイ 1794-56gX)
2021/02/05(金) 22:02:49.43ID:8Pa/tTU+0 >>470
ありがとうございます。
単純にポート番号と通信方法変えるだけじゃダメだったんですね。
SMTPSで検索してみたらMailKit使えと出てきたのでやってみたらできました。
ありがとうございました。
ありがとうございます。
単純にポート番号と通信方法変えるだけじゃダメだったんですね。
SMTPSで検索してみたらMailKit使えと出てきたのでやってみたらできました。
ありがとうございました。
473デフォルトの名無しさん (ワッチョイ 9fb6-blKv)
2021/02/06(土) 03:01:00.29ID:Yx7joU3b0 質問させてください。
c#でgoogle drive api を使ったWindowsアプリケーションを作ろうと思っているのですが、
ビルド後に出来た配布ファイルは実行ファイルはもちろんの事、NuGetで追加したDLL群や、
取得したJSONファイルも含めて配布すればいいのでしょうか?
c#でgoogle drive api を使ったWindowsアプリケーションを作ろうと思っているのですが、
ビルド後に出来た配布ファイルは実行ファイルはもちろんの事、NuGetで追加したDLL群や、
取得したJSONファイルも含めて配布すればいいのでしょうか?
474デフォルトの名無しさん (ワッチョイ ffda-BN1l)
2021/02/06(土) 03:29:14.46ID:Ygg5i19/0 インストーラー作れや
475デフォルトの名無しさん (ワッチョイ b778-56gX)
2021/02/06(土) 08:28:56.67ID:j0Q2R7my0 そのインストーラーを作るのにも必要なファイル群がわからないとダメだと思うけど
476デフォルトの名無しさん (ワッチョイ ff84-56gX)
2021/02/06(土) 11:41:20.20ID:MqA6OGOW0 >>473
必要なファイル郡は何らかの形で入手できるようにしなければいけないので、
最低限の情報としてこのDLLとかこのJSON使ってますって情報をユーザに
与えてあげないと動かしようがないけど、配布ファイルに含めるか各自で
ダウンロードさせるかはアプリの作成者が決めること
ただし、アプリに含めて配布する場合には、自分の作ったもの以外は
再配布可能なものなのか、各々のDllとかのライセンスを確認しないとダメだよ
ものによって勝手に配布しちゃダメとか、配布にはこれを使えとか、コンパイル
済みのものは配布不可とか色々あるので
必要なファイル郡は何らかの形で入手できるようにしなければいけないので、
最低限の情報としてこのDLLとかこのJSON使ってますって情報をユーザに
与えてあげないと動かしようがないけど、配布ファイルに含めるか各自で
ダウンロードさせるかはアプリの作成者が決めること
ただし、アプリに含めて配布する場合には、自分の作ったもの以外は
再配布可能なものなのか、各々のDllとかのライセンスを確認しないとダメだよ
ものによって勝手に配布しちゃダメとか、配布にはこれを使えとか、コンパイル
済みのものは配布不可とか色々あるので
477デフォルトの名無しさん (ワッチョイ d724-RXZG)
2021/02/06(土) 17:42:10.09ID:Bi5ar2460 >>473
そうだけど、GoogleTokenフォルダ下のものはそれぞれのアカウントのを利用させないと不正アクセス起こっちゃわないか
そうだけど、GoogleTokenフォルダ下のものはそれぞれのアカウントのを利用させないと不正アクセス起こっちゃわないか
478デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 17:55:40.49ID:UYR2I7R3M Unityでゲーム作りに挑戦しているのですが、自作クラスItemをリストにした
List<Item> itemList = new List<Item>();
があって、
クラスItemはint itemIDを持っています。
itemListをitemID順にソートするにはどうしたら良いのでしょうか?
itemList.Sort();
で出来ると思っていたのですが、よく考えたら出来る訳ありませんでした・・・。
Sort()のカッコ内にitemIDを指定したり出来るのでしょうか?
取り敢えず並び替え出来れば良いので一番かんたんな方法をどなたか教えて下さい。
よろしくお願いします。。
List<Item> itemList = new List<Item>();
があって、
クラスItemはint itemIDを持っています。
itemListをitemID順にソートするにはどうしたら良いのでしょうか?
itemList.Sort();
で出来ると思っていたのですが、よく考えたら出来る訳ありませんでした・・・。
Sort()のカッコ内にitemIDを指定したり出来るのでしょうか?
取り敢えず並び替え出来れば良いので一番かんたんな方法をどなたか教えて下さい。
よろしくお願いします。。
479デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/06(土) 18:18:20.71ID:zn5WrP4C0480デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/06(土) 18:24:06.35ID:bSeS6eqZa481デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 18:44:12.48ID:UYR2I7R3M482デフォルトの名無しさん (ワッチョイ 9f7c-KtkR)
2021/02/06(土) 18:49:45.30ID:Kl671woR0 Tってなに?とか言ってるのに
List<Item>使ってるやん(笑)
List<Item>使ってるやん(笑)
483デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 18:59:51.25ID:UYR2I7R3M >>482
サンプルなどで使って覚えたので。。
意味を理解しているというよりも、リストの書き方はこうって覚えています。
しかも私が言ってるのは<T>だけに限ったじゃありません。(わからないくせに偉そうですみません)
<T>に限って言えばClass名を入れるって事ですか?
サンプルなどで使って覚えたので。。
意味を理解しているというよりも、リストの書き方はこうって覚えています。
しかも私が言ってるのは<T>だけに限ったじゃありません。(わからないくせに偉そうですみません)
<T>に限って言えばClass名を入れるって事ですか?
484デフォルトの名無しさん (ワッチョイ b7ad-i1Ka)
2021/02/06(土) 19:04:04.81ID:uslvvrsY0 ジェネリックのことは黒柳さーんに聞くといいよ。
485デフォルトの名無しさん (ワッチョイ 9f52-xUEw)
2021/02/06(土) 19:24:51.67ID:xuEfQm7n0486デフォルトの名無しさん (ワッチョイ 9f7c-JWMU)
2021/02/06(土) 19:41:30.75ID:Kl671woR0487デフォルトの名無しさん (ワッチョイ 3733-r+oG)
2021/02/06(土) 19:58:10.04ID:pqKs8KDi0 List<Item>だとListにItemしか格納できなくて後々不便になるので、
普通はList<object>にするのが一般的だよ。
普通はList<object>にするのが一般的だよ。
488デフォルトの名無しさん (ワッチョイ 9701-JWMU)
2021/02/06(土) 20:10:24.73ID:f+vO1TLm0 え?
489デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/06(土) 20:20:56.81ID:zn5WrP4C0490デフォルトの名無しさん (ブーイモ MMcf-YUDs)
2021/02/06(土) 21:00:57.90ID:xFqAsQE9M491デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 21:04:16.10ID:UYR2I7R3M492デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 21:21:06.73ID:UYR2I7R3M >>490
今作ってるものが完成したら皆さんが言うとおり基礎の勉強したいと思います。
new Person(){Name = "a"}のaは普通の解説ならTaroとか書くはずで、のちのa,bとは関係ないって事ですね?
今作ってるものが完成したら皆さんが言うとおり基礎の勉強したいと思います。
new Person(){Name = "a"}のaは普通の解説ならTaroとか書くはずで、のちのa,bとは関係ないって事ですね?
493デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/06(土) 22:25:38.73ID:zn5WrP4C0 >>492
ああ、確かにPersonでName="a"は手を抜きすぎだな、"Taro"とか"田中"とかの方がいいね
その"a"とラムダ式のaは関係ない
それを示すために
> ※ a, b は単なる引数だから (x, y) => x.itemID - y.itemID とかでもいい
って書いたんだけどね
ああ、確かにPersonでName="a"は手を抜きすぎだな、"Taro"とか"田中"とかの方がいいね
その"a"とラムダ式のaは関係ない
それを示すために
> ※ a, b は単なる引数だから (x, y) => x.itemID - y.itemID とかでもいい
って書いたんだけどね
494デフォルトの名無しさん (ワッチョイ bf62-MEK4)
2021/02/06(土) 22:27:37.15ID:AyWHBNPF0 >>492
以下のメソッドの同じ意味
一々メソッドを定義するの面倒だし、型とか一々書くのが面倒で省略しまくったのがラムダ式と思うとイメージしやすい
int Hoge(Item a, Item b)
{
return a.itemID - b.itemID;
}
以下のメソッドの同じ意味
一々メソッドを定義するの面倒だし、型とか一々書くのが面倒で省略しまくったのがラムダ式と思うとイメージしやすい
int Hoge(Item a, Item b)
{
return a.itemID - b.itemID;
}
495デフォルトの名無しさん (テテンテンテン MM8f-MALB)
2021/02/06(土) 22:49:39.66ID:UYR2I7R3M496デフォルトの名無しさん (ワッチョイ bf42-JWMU)
2021/02/06(土) 23:20:37.38ID:b6D0c/Lh0 >>484
水虫でスヤスヤ
水虫でスヤスヤ
497デフォルトの名無しさん (エムゾネ FFbf-6HDI)
2021/02/07(日) 18:04:33.39ID:4v/nAOdwF 個々の人たちは若い女性には優しい
498デフォルトの名無しさん (ワッチョイ bfbb-5e/0)
2021/02/07(日) 20:57:57.25ID:knu7zqoU0 ラムダ式はちゃんと練習したいな、なんか練習問題集みたいなのないのかな?
特にキャプチャーの概念が自分の感覚と狂う狂う
特にキャプチャーの概念が自分の感覚と狂う狂う
499デフォルトの名無しさん (ワッチョイ bfde-Wae7)
2021/02/07(日) 21:21:20.13ID:S7zvZDvX0 意味不明
それでしか書けないものがあるならまだしも
結局モノが作りたいんじゃないなら
この職には近づかないほうがいいぞ
不幸になる
それでしか書けないものがあるならまだしも
結局モノが作りたいんじゃないなら
この職には近づかないほうがいいぞ
不幸になる
500デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/07(日) 21:21:56.15ID:pmm7svGna 真面目な話、ラムダ式はそこまで奥は深くない気がする。
決していきがって言ってないつもり。
キャプチャーに関してはC#5.0での破壊的変更が逆に落とし穴になってるような
気がしないでもないけど、他に直感を裏切るような落とし穴があるわけでもないし
https://ufcpp.net/study/csharp/ap_ver5.html#foreach
川俣さんの記事が割とよく書けてると思うしあれ読めば十分じゃないのかな
決していきがって言ってないつもり。
キャプチャーに関してはC#5.0での破壊的変更が逆に落とし穴になってるような
気がしないでもないけど、他に直感を裏切るような落とし穴があるわけでもないし
https://ufcpp.net/study/csharp/ap_ver5.html#foreach
川俣さんの記事が割とよく書けてると思うしあれ読めば十分じゃないのかな
501デフォルトの名無しさん (ワッチョイ 5763-ideP)
2021/02/07(日) 22:40:06.94ID:emwEhLVE0 arcoderでもやってりゃいいんじゃないの?
502デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/07(日) 23:10:43.01ID:YZfkY6ii0503デフォルトの名無しさん (スッップ Sdbf-p9Hx)
2021/02/07(日) 23:56:40.34ID:zExDTdlVd 俺もラムダ式は最初意味不明すぎて苦労した
何で躓いたかって言うと一番は用途が不明な点
デリゲートとか覚えたらそこから理解できた
何で躓いたかって言うと一番は用途が不明な点
デリゲートとか覚えたらそこから理解できた
504デフォルトの名無しさん (ワッチョイ 9f10-56gX)
2021/02/08(月) 00:50:31.00ID:Vt5mMx+g0 ラムダ式のメリットってなによ
わざと難解に書いてるだけにしか見えん
わざと難解に書いてるだけにしか見えん
505デフォルトの名無しさん (スッップ Sdbf-p9Hx)
2021/02/08(月) 00:57:45.90ID:GsV6CYPPd506デフォルトの名無しさん (ワッチョイ d779-YUDs)
2021/02/08(月) 01:00:19.26ID:BqxWbjT60 お手軽処理をその場で書いて渡せることかな
507デフォルトの名無しさん (ワッチョイ 7fdf-XSVS)
2021/02/08(月) 01:06:18.03ID:hRlo1f3e0 c#でUSBカメラから録画・録音処理をするライブラリでいいのないですかね?
Accordを使ってみたところ、録画は上手くいったけど録音が上手く動かないしもうリポジトリもアーカイブされてるので乗り換え先を探しています。
Accordを使ってみたところ、録画は上手くいったけど録音が上手く動かないしもうリポジトリもアーカイブされてるので乗り換え先を探しています。
508デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 01:25:17.22ID:EESpGXM5a デリゲートを理解してればラムダ式自体を覚えるのは何の苦もないと思うけど
確かにデリゲート的な概念って、プログラミング自体初心者だったりお上品な言語しか
やったことない人だと理解しづらいよねたぶん。
それはそうだと思うわ。
確かにデリゲート的な概念って、プログラミング自体初心者だったりお上品な言語しか
やったことない人だと理解しづらいよねたぶん。
それはそうだと思うわ。
509デフォルトの名無しさん (ワッチョイ 9f7c-KtkR)
2021/02/08(月) 01:52:41.04ID:YmxwiogA0 ラムダ式がメリットというより
引数として無名関数を指定出来るのがメリットという点を理解すれば良いだけかと
例えばよくあるソートだけど、大抵は2つの比較対象のオブジェクトがラムダ式の引数になるけど、ソート側からしたらそれをどう評価したらいいか分からないから、ラムダ式で評価する関数を戻り値として指定して、ソート側でそれを実行している訳で
この辺の説明でピンとこない人は中々理解できないかも知れない
引数として無名関数を指定出来るのがメリットという点を理解すれば良いだけかと
例えばよくあるソートだけど、大抵は2つの比較対象のオブジェクトがラムダ式の引数になるけど、ソート側からしたらそれをどう評価したらいいか分からないから、ラムダ式で評価する関数を戻り値として指定して、ソート側でそれを実行している訳で
この辺の説明でピンとこない人は中々理解できないかも知れない
510デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/08(月) 08:20:16.41ID:PnrMZIJR0511デフォルトの名無しさん (ワッチョイ bfde-8vQj)
2021/02/08(月) 09:02:11.48ID:6em1tYAf0 無名関数は優れた概念だと思う。
問題はコピペが簡単にできる現代であれほど省略する必要があったのかってこと
問題はコピペが簡単にできる現代であれほど省略する必要があったのかってこと
512デフォルトの名無しさん (ワッチョイ 37de-Wae7)
2021/02/08(月) 10:12:50.26ID:asopwXX20 メソッドを記述するのが面倒なだけってのはお前の都合じゃん
あの処理だけどさって同じ開発者同士で話すときに
名前がないのが超超超超超超超超強烈なデメリットしかない
あの処理だけどさって同じ開発者同士で話すときに
名前がないのが超超超超超超超超強烈なデメリットしかない
513デフォルトの名無しさん (ベーイモ MM4f-K+IG)
2021/02/08(月) 10:42:42.96ID:XTCsW3fgM ラムダはその場かぎりのちっこい処理にだけ使うものだぞ
命名しておくべきような内容・ボリュームの処理をわざわざ無名のラムダにしておきながらなに言ってんだか
不便にしてるのはお前自身だろ
命名しておくべきような内容・ボリュームの処理をわざわざ無名のラムダにしておきながらなに言ってんだか
不便にしてるのはお前自身だろ
514デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 11:03:59.10ID:gKVPdjPN0 僕たまに一行だけのメソッドも作るんでその感覚よくわかりません
あと他でも同じ処理が必要になったときにラムダで書いたから5箇所同じことやってますとか言ったやつは死刑でつ
あと他でも同じ処理が必要になったときにラムダで書いたから5箇所同じことやってますとか言ったやつは死刑でつ
515デフォルトの名無しさん (ワッチョイ d77c-NQaa)
2021/02/08(月) 11:06:59.86ID:LrP4KWut0 >>512
いちいちコードの全処理に名前付けるのかって話よ
いちいちコードの全処理に名前付けるのかって話よ
516デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2021/02/08(月) 12:05:27.80ID:TxCBSk9L0 >>512
高階関数に渡す処理なので
「ここのWhereの指定だけどさ…」とか
「ここのGroupByに渡してるラムダの書き方だけどさ…」で問題なく話が通じる
話が通じないようなところにラムダを書いてるなら使い方のほうが間違ってるかも
高階関数に渡す処理なので
「ここのWhereの指定だけどさ…」とか
「ここのGroupByに渡してるラムダの書き方だけどさ…」で問題なく話が通じる
話が通じないようなところにラムダを書いてるなら使い方のほうが間違ってるかも
517デフォルトの名無しさん (ベーイモ MM4f-K+IG)
2021/02/08(月) 12:07:08.93ID:QaH3FId2M 513はわからないんじゃなくて分かろうとするつもりが全く無いだけでしょ
その場限りじゃないことが明白なら1行の処理でも
メソッドにするのは当たり前
というか513はメソッドのラムダ表記すら難癖つけて全面禁止しそうだな
その場限りじゃないことが明白なら1行の処理でも
メソッドにするのは当たり前
というか513はメソッドのラムダ表記すら難癖つけて全面禁止しそうだな
518デフォルトの名無しさん (ベーイモ MM4f-K+IG)
2021/02/08(月) 12:08:42.71ID:QaH3FId2M レス番ずれてた
513じゃなくて>>512
513じゃなくて>>512
519デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 12:13:39.02ID:gKVPdjPN0 >>516
じゃあ、メソッド名もそうしたほうがいいのかな?
じゃあ、メソッド名もそうしたほうがいいのかな?
520デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2021/02/08(月) 12:16:19.29ID:TxCBSk9L0 Linqを使いやすくするためには高階関数を楽に使えるする必要があって
そのために導入されたのが無名関数とその表現形式であるラムダ式
Whereに渡す処理を必ず別の箇所で名前を付けて定義しなきゃいけないようだと面倒だし命名負荷が高い
そのために導入されたのが無名関数とその表現形式であるラムダ式
Whereに渡す処理を必ず別の箇所で名前を付けて定義しなきゃいけないようだと面倒だし命名負荷が高い
521デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2021/02/08(月) 12:17:03.96ID:TxCBSk9L0 >>519
そうしたほうとはどうしたほう?
そうしたほうとはどうしたほう?
522デフォルトの名無しさん (ワッチョイ 17ad-De3E)
2021/02/08(月) 12:52:14.43ID:NwJJp6aS0 >>512
LINQの記述を読めば分かるじゃん
LINQの記述を読めば分かるじゃん
523デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 12:53:18.46ID:nKGEYTSta こういう話は抽象論より具体例挙げた方が早いね
例えば>>358に出てくるOrderByが引数に取るセレクターを
実際に自分でラムダ式とメソッドの両方で書いてみれば
ラムダ式の意義なんて自ずから分かるよね
理論的根拠はその後で考えればいい
端的に言えば、アホのな初心者がやる「なんでもグローバル変数(フィールド)」がダメなのと同じ理由よ
例えば>>358に出てくるOrderByが引数に取るセレクターを
実際に自分でラムダ式とメソッドの両方で書いてみれば
ラムダ式の意義なんて自ずから分かるよね
理論的根拠はその後で考えればいい
端的に言えば、アホのな初心者がやる「なんでもグローバル変数(フィールド)」がダメなのと同じ理由よ
524デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 12:57:17.45ID:nKGEYTSta >>522
というより、ローカル変数を禁止してすべてフィールドで書こうとしたらどうなるか、と言った方がたぶん通じると思う。
というより、ローカル変数を禁止してすべてフィールドで書こうとしたらどうなるか、と言った方がたぶん通じると思う。
525デフォルトの名無しさん (スッップ Sdbf-p9Hx)
2021/02/08(月) 13:02:05.07ID:GsV6CYPPd ここでどんなにラムダ式を否定しようと
大多数の業界人はそうは思わないからわざわざ作られたし普通に使われてるんだよ
マイノリティなの自覚したほうが良い
大多数の業界人はそうは思わないからわざわざ作られたし普通に使われてるんだよ
マイノリティなの自覚したほうが良い
526デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 13:05:23.07ID:gKVPdjPN0 ラムダ式なんて書こうとした瞬間に明らかに特殊なことしようとしてんだからメソッドにしろよw
すくなくとももう一回その処理必要になった時点でメソッドにしたほうがいいだろ?
違うか?
検索一つとってもお前と別のやつは異なるラムダ式で同じことをやるかもしれなくて
そしてそれを見つけるのは異常に困難であると予想できる
すくなくとももう一回その処理必要になった時点でメソッドにしたほうがいいだろ?
違うか?
検索一つとってもお前と別のやつは異なるラムダ式で同じことをやるかもしれなくて
そしてそれを見つけるのは異常に困難であると予想できる
527デフォルトの名無しさん (ブーイモ MMcf-0RIK)
2021/02/08(月) 13:05:46.79ID:WEC5Fu99M >>504
LinQとの相性
LinQとの相性
528デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 13:13:24.77ID:nKGEYTSta529デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 13:17:25.53ID:gKVPdjPN0 >>528
え?じゃあ、同じことやってるのにラムダ式1、ラムダ式2、ラムダ式じゃない方法1、ラムダ式じゃない方法2みたいなコードがソース中に散布されちゃうけど
何か防止する方法あるの?
検索一つとっても起きちゃうよね?
え?じゃあ、同じことやってるのにラムダ式1、ラムダ式2、ラムダ式じゃない方法1、ラムダ式じゃない方法2みたいなコードがソース中に散布されちゃうけど
何か防止する方法あるの?
検索一つとっても起きちゃうよね?
530デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 13:21:46.31ID:nKGEYTSta >>529
馬鹿の一つ覚えはよくない。
もちろんケースバイケースで再利用を意識してメソッドにした方がよいケースもある。
今の論点は「ラムダ式に存在意義はあるのか?」ではないの?
誰も「デリゲート引数には必ずラムダ式を渡すべき」などとは言ってないでしょ
馬鹿の一つ覚えはよくない。
もちろんケースバイケースで再利用を意識してメソッドにした方がよいケースもある。
今の論点は「ラムダ式に存在意義はあるのか?」ではないの?
誰も「デリゲート引数には必ずラムダ式を渡すべき」などとは言ってないでしょ
531デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 13:23:07.55ID:gKVPdjPN0532デフォルトの名無しさん (アウアウエー Sadf-fCEL)
2021/02/08(月) 13:26:13.21ID:nKGEYTSta 何を指してはぐらかしてると言ってるのか意味がわからないけどw
この人は暇つぶしがしたいだけなのかな?
まあ俺もそうだから文句はないけどねw
この人は暇つぶしがしたいだけなのかな?
まあ俺もそうだから文句はないけどねw
533デフォルトの名無しさん (ワッチョイ 37a7-Wae7)
2021/02/08(月) 13:29:26.72ID:gKVPdjPN0 >>532
もういいよバイバイ
もういいよバイバイ
534デフォルトの名無しさん (ワッチョイ d72d-6qHG)
2021/02/08(月) 14:13:21.62ID:8emHxm3F0 LINQは難しくてよくわからないから使用禁止っていう会社本当に有るらしいよ
535デフォルトの名無しさん (ワッチョイ 9f7c-56gX)
2021/02/08(月) 14:17:19.77ID:YmxwiogA0 同じようなものをコピペするのが嫌だったら
普通にメソッド定義して、それをthis.methodみたいに指定も出来る
var q = new List<int>();
q.Add(10);
q.Add(2);
q.Add(5);
q.Sort(this.method);
foreach(var r in q){Console.WriteLine(r.ToString());}
このthis.methodが
private int method(int x,int y)
{
return x - y;
}
にしても動く
C#ならこれらの条件式を別のクラスでstaticでおいていても、別のクラス.methodみたいな指定で動く
まぁ、何度も同じような式を使うなら別のクラスに集めておくというのも無くは無いけどね
普通にメソッド定義して、それをthis.methodみたいに指定も出来る
var q = new List<int>();
q.Add(10);
q.Add(2);
q.Add(5);
q.Sort(this.method);
foreach(var r in q){Console.WriteLine(r.ToString());}
このthis.methodが
private int method(int x,int y)
{
return x - y;
}
にしても動く
C#ならこれらの条件式を別のクラスでstaticでおいていても、別のクラス.methodみたいな指定で動く
まぁ、何度も同じような式を使うなら別のクラスに集めておくというのも無くは無いけどね
536デフォルトの名無しさん (エムゾネ FFbf-6HDI)
2021/02/08(月) 14:30:19.75ID:5JxS4RLeF537デフォルトの名無しさん (ワッチョイ 7fdf-XSVS)
2021/02/08(月) 15:07:36.60ID:hRlo1f3e0538デフォルトの名無しさん (ワッチョイ bf42-JWMU)
2021/02/08(月) 19:08:17.30ID:xjBqJ/6J0 USBカメラでトラブルなくなんとかなりそうなのはUWPじゃね?
539デフォルトの名無しさん (ワッチョイ 9f2f-OU2n)
2021/02/08(月) 19:23:42.76ID:4Qyy9go20 ラムダ式使うなの人はvar使うなと同じ匂いがするな
540デフォルトの名無しさん (ワッチョイ 57e5-/W+d)
2021/02/08(月) 20:35:50.80ID:Pr1Hp8QQ0 λ式つかうとき、なんとなく不安なので()で囲みたくなる
()で囲むなら{return }ぐらい書いても対して変わらないような気がしてくる
()で囲むなら{return }ぐらい書いても対して変わらないような気がしてくる
541デフォルトの名無しさん (ワッチョイ d78d-H0CZ)
2021/02/08(月) 20:45:30.47ID:7ndpGKbk0 一番優先すべきは自分が(グループが)理解しやすいかどうかだからいいんじゃない?
三項演算式も単純な物以外は使わない方がいいと思うし
()で囲むなら囲むで全部囲むと統一すべきとは思うけど
三項演算式も単純な物以外は使わない方がいいと思うし
()で囲むなら囲むで全部囲むと統一すべきとは思うけど
542デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/08(月) 20:47:10.26ID:PnrMZIJR0 >>539
まあ身の回りにいないならどうでもいいや
まあ身の回りにいないならどうでもいいや
543デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/08(月) 21:00:30.48ID:NgGwlfwa0 >>507
MediaFoundationでいいじゃん。
MediaFoundationでいいじゃん。
544デフォルトの名無しさん (ワッチョイ 57da-ynvf)
2021/02/09(火) 02:08:46.17ID:W+QSEYkH0 c#はコードの記述量を減らす仕様の追加は多いよね
書き方も奇妙でなく今までの記述と整合性はあるし悪くない
でも増えた仕様を知らないとソースは読めないし覚える事が多くなって初心者が戸惑う事はないのかな
書き方も奇妙でなく今までの記述と整合性はあるし悪くない
でも増えた仕様を知らないとソースは読めないし覚える事が多くなって初心者が戸惑う事はないのかな
545デフォルトの名無しさん (ワッチョイ d72d-6qHG)
2021/02/09(火) 08:42:10.30ID:Y6/VWBkq0 varを使っていて読みにくいコードはvarを使ってなくても読みにくいって
ufcppの人が言ってた
ufcppの人が言ってた
546デフォルトの名無しさん (アウアウウー Sa9b-G5jb)
2021/02/09(火) 08:42:13.95ID:k5T/Xgmha >>544
知らない記述が出てきた時点で調べれば事足りるだろ
知らない記述が出てきた時点で調べれば事足りるだろ
547デフォルトの名無しさん (ワッチョイ d724-/hxM)
2021/02/09(火) 09:08:22.60ID:MQ4HPmPO0548デフォルトの名無しさん (ワッチョイ bf8c-ZFmd)
2021/02/09(火) 09:08:35.67ID:Q6+voU8N0 それはそうだけど??とか.?とかは調べても分からんよねっていう(検索しても引っかからないので)
549デフォルトの名無しさん (ワッチョイ 9f52-xUEw)
2021/02/09(火) 09:23:40.65ID:Ad7Y09LZ0 C# "??演算子"
とかで検索すればヒットしたよ
とかで検索すればヒットしたよ
550デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/09(火) 09:27:48.15ID:62rZ0qzr0551デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/09(火) 09:30:16.24ID:62rZ0qzr0552デフォルトの名無しさん (ワッチョイ 9f52-xUEw)
2021/02/09(火) 09:54:22.07ID:Ad7Y09LZ0 >>550,551
確かに初心者はラムダ式や演算子なんて用語は最初は知らないだろうけど、学習の過程で当然学ぶべき事柄でもあると思うよ。
だから、やりたいことだけググって断片的な知識を積み重ねるだけでは不十分で、最低一冊は入門書とかで基本的な用語や概念について一通りは理解できないまでも聞いたことはあるというくらいにはなっていくべきだと思う。
確かに初心者はラムダ式や演算子なんて用語は最初は知らないだろうけど、学習の過程で当然学ぶべき事柄でもあると思うよ。
だから、やりたいことだけググって断片的な知識を積み重ねるだけでは不十分で、最低一冊は入門書とかで基本的な用語や概念について一通りは理解できないまでも聞いたことはあるというくらいにはなっていくべきだと思う。
553デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/09(火) 10:42:08.15ID:62rZ0qzr0 べきべき言われても…
554デフォルトの名無しさん (ワッチョイ 9f63-ideP)
2021/02/09(火) 12:10:30.66ID:5WPpwWTv0 他言語経験者が入門書をバーっと一通り見るなんて1日ありゃできるんだし、それすらやらずに演算子という単語も知らないんだから調べようがない!とかどんだけ甘えたいのとしか思えない
はじめてのプログラミングでC#やってますってのならなおさら入門書ちゃんと見ようねってだけでは
はじめてのプログラミングでC#やってますってのならなおさら入門書ちゃんと見ようねってだけでは
555デフォルトの名無しさん (ワッチョイ d724-/hxM)
2021/02/09(火) 12:30:07.39ID:MQ4HPmPO0 ところで質問なんだけど、Jpegバイナリのポインタ、もしくはSpan<T>からBitmap作る事って標準ライブラリで可能?
byte[]にせずStreamでラップもせずに出来る方法があれば教えてもらいたい
byte[]にせずStreamでラップもせずに出来る方法があれば教えてもらいたい
556デフォルトの名無しさん (ワッチョイ 7f7c-OU2n)
2021/02/09(火) 12:47:47.15ID:eguAZIqj0 > Streamでラップもせず
の理由は?
これさえなければUnmanagedMemoryStreamで簡単だと思うけど
の理由は?
これさえなければUnmanagedMemoryStreamで簡単だと思うけど
557デフォルトの名無しさん (ワッチョイ d724-/hxM)
2021/02/09(火) 12:52:26.96ID:MQ4HPmPO0 >>556
別に大した理由じゃないから実際現状はImage.FromStreamにUnmanagedMemoryStream渡してやってるけど
瞬間的に大量のjpegを変換するから標準でSpan<byte>かbyte*で渡せる関数があるならそれに越したことはないなと
別に大した理由じゃないから実際現状はImage.FromStreamにUnmanagedMemoryStream渡してやってるけど
瞬間的に大量のjpegを変換するから標準でSpan<byte>かbyte*で渡せる関数があるならそれに越したことはないなと
558デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/09(火) 22:21:08.48ID:dAJwA0Wq0 .NET5って.NET Frameworkと.NET Coreを統合した奴になるんですか?
Windows10のデスクトップ用に書いたコードが自分のiPhoneでも走るようになるんですか?
Windows10のデスクトップ用に書いたコードが自分のiPhoneでも走るようになるんですか?
559デフォルトの名無しさん (ワッチョイ 7fdf-XSVS)
2021/02/10(水) 00:44:02.96ID:PXY5WDG20 夢のある勘違いだな
俺もできるならそうあってほしい
俺もできるならそうあってほしい
560デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/10(水) 01:36:35.72ID:eSNkeEaH0 じゃあ、統合する利点は?
561デフォルトの名無しさん (ワッチョイ 17ad-su1W)
2021/02/10(水) 07:33:17.31ID:9TuBJaQx0 >>526
車輪の再発明
車輪の再発明
562デフォルトの名無しさん (ラクッペペ MM8f-/W+d)
2021/02/10(水) 17:27:33.39ID:Eg7RIeNgM frameworkはwin10を続ける限りサポートしなくちゃいけないけど
coreは3年間だけで済む
まったくかんたんだ
coreは3年間だけで済む
まったくかんたんだ
563デフォルトの名無しさん (ワッチョイ 9f7c-JWMU)
2021/02/10(水) 18:43:48.14ID:WeU5fM2j0 .NETなんて辞めればいいのにと思うけどねぇ
.NET Coreの事は全然詳しく無いけどGUIアプリ作るなら結局はWPFと殆ど同じぽいし
こんなの流行る訳無いよなぁ
WinFormsぐらいの気軽さが無いとちょっとしたアプリを作る気にもなれないw
もうそういうのも何でも感でもwebみたいな事になりつつあるけど
.NET Coreの事は全然詳しく無いけどGUIアプリ作るなら結局はWPFと殆ど同じぽいし
こんなの流行る訳無いよなぁ
WinFormsぐらいの気軽さが無いとちょっとしたアプリを作る気にもなれないw
もうそういうのも何でも感でもwebみたいな事になりつつあるけど
564デフォルトの名無しさん (ワッチョイ 370c-QgsX)
2021/02/10(水) 18:51:06.66ID:cIkntQZr0 >>560
別ける必要がなくなったから統合するだけ
別ける必要がなくなったから統合するだけ
565デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/11(木) 06:25:03.02ID:z8KyJUiV0 >>562
で、.NET5ではどんだけサポートしなきゃならないの?
で、.NET5ではどんだけサポートしなきゃならないの?
566デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/11(木) 06:25:30.46ID:z8KyJUiV0567デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/11(木) 06:26:05.10ID:z8KyJUiV0 >>564
じゃ、今までなんで分けてたの?
じゃ、今までなんで分けてたの?
568デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 06:28:27.83ID:k5l1P+DH0 意識高い系が作ったから
XMLで画面デザイン、俺かっこいい
XMLで画面デザイン、俺かっこいい
569デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/11(木) 06:41:08.46ID:z8KyJUiV0570デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 06:45:22.54ID:k5l1P+DH0 XAMLがXMLでないならそうだろうな。
以下世に出たときの売り文句や
EXtensible Application Markup Language (XAML) is a XML based markup language developed by Microsoft. It is used in several Microsoft technologies like Windows Presentation Foundation (WPF), Silverlight, WinRT, Universal Windows Platform, etc. to define the User Interface for applications.
以下世に出たときの売り文句や
EXtensible Application Markup Language (XAML) is a XML based markup language developed by Microsoft. It is used in several Microsoft technologies like Windows Presentation Foundation (WPF), Silverlight, WinRT, Universal Windows Platform, etc. to define the User Interface for applications.
571デフォルトの名無しさん (ワッチョイ ffb5-UcqE)
2021/02/11(木) 07:54:59.98ID:z8KyJUiV0 それでも「XAML=XML」じゃないだろ
じゃ、なにか?XMLで書けばデザインできるのか?
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="testxsl.xsl"?>
<おこづかい帳>
<支出>
<内容>
<日付>1月20日</日付>
<交通費>780</交通費>
<食費>980</食費>
<嗜好品>250</嗜好品>
</内容>
<内容>
<日付>1月21日</日付>
<交通費>950</交通費>
<食費>1200</食費>
<嗜好品>300</嗜好品>
</内容>
<内容>
<日付>1月22日</日付>
<交通費>500</交通費>
<食費>1500</食費>
<嗜好品>250</嗜好品>
</内容>
</支出>
</おこづかい帳>
・・・一体、どんなデザインになるんだろな、これ?
じゃ、なにか?XMLで書けばデザインできるのか?
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="testxsl.xsl"?>
<おこづかい帳>
<支出>
<内容>
<日付>1月20日</日付>
<交通費>780</交通費>
<食費>980</食費>
<嗜好品>250</嗜好品>
</内容>
<内容>
<日付>1月21日</日付>
<交通費>950</交通費>
<食費>1200</食費>
<嗜好品>300</嗜好品>
</内容>
<内容>
<日付>1月22日</日付>
<交通費>500</交通費>
<食費>1500</食費>
<嗜好品>250</嗜好品>
</内容>
</支出>
</おこづかい帳>
・・・一体、どんなデザインになるんだろな、これ?
572デフォルトの名無しさん (ワッチョイ b7ad-i1Ka)
2021/02/11(木) 08:10:23.63ID:Xnd4NzfF0 馬鹿なのかしら…
573デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 08:39:30.15ID:k5l1P+DH0 日常生活に問題が出る程の馬鹿だな
574デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/11(木) 09:00:10.84ID:bJBhJ33y0575デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 09:14:28.30ID:zGBoORUF0 >>568
まあある意味意識高い系が作ったから自動テストが楽でCI/CDバッチリってところだよな。
まあある意味意識高い系が作ったから自動テストが楽でCI/CDバッチリってところだよな。
576デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 09:27:06.58ID:k5l1P+DH0 デメリットもあるけど、メリットもあるね。
ザマリンは取り巻きがユーザーを馬鹿にして炎上したけど
ザマリンは取り巻きがユーザーを馬鹿にして炎上したけど
577デフォルトの名無しさん (ワッチョイ bf42-JWMU)
2021/02/11(木) 09:58:06.70ID:w5wYX4n30 htmlを触れる程度の知識があればxamlでアニメーションをやらないレベルまでなら簡単に扱えるはずなのにな
webアプリを使える設定の人が何故そこまでxamlを拒否するのか理解に苦しむ
webアプリを使える設定の人が何故そこまでxamlを拒否するのか理解に苦しむ
578デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 10:01:50.05ID:k5l1P+DH0 世の中業務アプリ屋だけだと思うなよw
579デフォルトの名無しさん (ワッチョイ b702-kbB0)
2021/02/11(木) 10:04:15.26ID:zlnnHWka0 このまえ興味本位で「WinFormsぐらいの気軽」なソフトを WPF で作ってみたけど、別にタイヘンってことはなかったような。
まあ環境が違うから覚えることはあったけど。・・・もう忘れたけど。w
まあ環境が違うから覚えることはあったけど。・・・もう忘れたけど。w
580デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 10:07:51.67ID:zGBoORUF0 一応Forms爺とWeb派は別勢力だと思いたいところだけど、たしかに
Forms爺がWPFをdisるためだけにwebを持ち出している感も否めない。
Forms爺がWPFをdisるためだけにwebを持ち出している感も否めない。
581デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/11(木) 10:18:08.25ID:bJBhJ33y0582デフォルトの名無しさん (ワッチョイ d724-/hxM)
2021/02/11(木) 10:37:27.67ID:7XoW1ZA50 WebView2ってWPFみたいに重くないの?
583デフォルトの名無しさん (エアペラ SD3b-NQaa)
2021/02/11(木) 11:00:57.44ID:K3umRmpBD XAML∈XMLって理解できないバカがいるな
584デフォルトの名無しさん (ワッチョイ 9701-vsPm)
2021/02/11(木) 11:12:52.35ID:89K1HM4Z0585デフォルトの名無しさん (ワッチョイ 9701-vsPm)
2021/02/11(木) 11:16:29.74ID:89K1HM4Z0586デフォルトの名無しさん (ワッチョイ bf42-JWMU)
2021/02/11(木) 11:22:49.45ID:w5wYX4n30 Formsもそのまま使えば楽ちんだけど、ちょっと凝ったことやってオーナードローに手を出すと途端に面倒になる
>>584
WinUIになるとvmにイベントハンドラを書けるから、そこらへんは解消されるんだけどね
>>584
WinUIになるとvmにイベントハンドラを書けるから、そこらへんは解消されるんだけどね
587デフォルトの名無しさん (ワッチョイ 9701-vsPm)
2021/02/11(木) 11:53:47.88ID:89K1HM4Z0588デフォルトの名無しさん (アウアウエー Sadf-blKv)
2021/02/11(木) 12:46:25.44ID:c/k7g2fva WPF(XAML)固有の問題なのか宣言型に一般的な問題なのか判断するだけの
経験がないのでアレだけど、WPFの一番嫌なとことは
自分が書いたコードでも後から見たとき何をどうやって実現してるか、
理解するのに時間が掛かり過ぎること。これが他人の書いたコードならなおさら。
なんちゃらフレームワークでMVVMなんてやってるとこの傾向にさらに拍車がかかる。
こんなもの推進してる奴はメンテを考慮する必要性がなく他人のコードを読むことも
やらない人種なんじゃないか?というのが偽らざる感想。
ちょっと上のラムダ式批判とかはスタティックおじさん級の無理解か勘違いだろうけど、
誕生から15年とか経過してここまで普及しないXAML系はやっぱり根本的にどこか問題があるとは思うね。
経験がないのでアレだけど、WPFの一番嫌なとことは
自分が書いたコードでも後から見たとき何をどうやって実現してるか、
理解するのに時間が掛かり過ぎること。これが他人の書いたコードならなおさら。
なんちゃらフレームワークでMVVMなんてやってるとこの傾向にさらに拍車がかかる。
こんなもの推進してる奴はメンテを考慮する必要性がなく他人のコードを読むことも
やらない人種なんじゃないか?というのが偽らざる感想。
ちょっと上のラムダ式批判とかはスタティックおじさん級の無理解か勘違いだろうけど、
誕生から15年とか経過してここまで普及しないXAML系はやっぱり根本的にどこか問題があるとは思うね。
589デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 12:51:30.38ID:zGBoORUF0 >ここまで普及しない
そもそもこれ事実かねぇ?単に5chでアンチWPFの声が大きいだけにも思うが。
そもそもこれ事実かねぇ?単に5chでアンチWPFの声が大きいだけにも思うが。
590デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/11(木) 13:01:06.47ID:bJBhJ33y0 初心者スレでイキってないでそろそろこっちへ行け
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463/
591デフォルトの名無しさん (ブーイモ MM1b-FX7e)
2021/02/11(木) 13:05:05.39ID:h8j/NKIWM だって専門スレだと笑い者にされる馬鹿にされるんだもの
592デフォルトの名無しさん (ワッチョイ 9f01-OQuQ)
2021/02/11(木) 16:31:22.52ID:PvN170ep0593デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 17:04:29.55ID:zGBoORUF0 その辺の印象はやっぱりxml自体に馴染みがあるかどうかで違うんだろうな。
自分は独自文法よりxmlの方がよっぽどありがたいが。
あと現実問題として、サードパーティのコンポーネントを追加するなら名前の
衝突をを考慮しないとならないが、xmlなら名前空間が規格に含まれているので
こういった用途に適している。
自分は独自文法よりxmlの方がよっぽどありがたいが。
あと現実問題として、サードパーティのコンポーネントを追加するなら名前の
衝突をを考慮しないとならないが、xmlなら名前空間が規格に含まれているので
こういった用途に適している。
594デフォルトの名無しさん (ワッチョイ 9701-vsPm)
2021/02/11(木) 17:34:42.76ID:89K1HM4Z0595デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 17:42:30.14ID:k5l1P+DH0 リソースに対する優位性は?
ロード時間を犠牲にするだけのメリットが
無いと選択されないな
ロード時間を犠牲にするだけのメリットが
無いと選択されないな
596デフォルトの名無しさん (ワッチョイ 9701-JWMU)
2021/02/11(木) 18:13:31.33ID:MqaoYapD0 winformと同じくらいのコード量で作れるようにしてくれないと困るわ
597デフォルトの名無しさん (ワッチョイ 9f01-pSMo)
2021/02/11(木) 18:28:09.94ID:bJBhJ33y0 >>596
老害はそのままWinForms使ってなよ
老害はそのままWinForms使ってなよ
598デフォルトの名無しさん (ワッチョイ 9701-JWMU)
2021/02/11(木) 19:32:48.45ID:MqaoYapD0 なんかイキってるやつがいるな
599デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 19:47:54.21ID:k5l1P+DH0 pinta も paint.NET もWPFを採用していない
事が全て(=向き不向きがある)
だと思うのだけどね。
信者はそれを受け入れられないw
事が全て(=向き不向きがある)
だと思うのだけどね。
信者はそれを受け入れられないw
600デフォルトの名無しさん (ワッチョイ fff2-w34G)
2021/02/11(木) 20:05:19.03ID:qDEqQMnn0 WinFormsに回帰せよ
見た目は最新のモダンなGUI部品、
中身はWinFormsってのも不可能じゃないでしよ、頑張れよMS
見た目は最新のモダンなGUI部品、
中身はWinFormsってのも不可能じゃないでしよ、頑張れよMS
601デフォルトの名無しさん (ワッチョイ 9f63-QgsX)
2021/02/11(木) 20:09:34.00ID:7n3rG35h0 もうQtでよくね?と思う
商用もOKっぽいし
商用もOKっぽいし
602デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 20:13:58.80ID:k5l1P+DH0 QImageかQPixmapがMatサポートしたら
考える
考える
603デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 20:22:34.99ID:zGBoORUF0 >>599
よりによってWPFリリースより前に開発されたソフトを持ち出す頭の悪さ
よりによってWPFリリースより前に開発されたソフトを持ち出す頭の悪さ
604デフォルトの名無しさん (ワッチョイ 9701-BN1l)
2021/02/11(木) 20:28:55.42ID:k5l1P+DH0605デフォルトの名無しさん (ワッチョイ b7b2-0RIK)
2021/02/11(木) 20:45:16.85ID:MZXX+vIJ0 >>600
賛成
賛成
606デフォルトの名無しさん (ワッチョイ d74f-QgsX)
2021/02/11(木) 20:48:28.14ID:zGBoORUF0 pintaはPaint.NETを参考にクロスプラットフォーム対応でGTKで開発したもの
元のPaint.NETの開発は2004年
元のPaint.NETの開発は2004年
607デフォルトの名無しさん (ワッチョイ 9701-vsPm)
2021/02/11(木) 23:20:50.41ID:89K1HM4Z0 ちょっと戻って整理してくれ。
WPFは従来型(コードビハインド)での実装も
根本レベルでサポートしてるのに、
なんでwinFormsに回帰したいん?
WPFは従来型(コードビハインド)での実装も
根本レベルでサポートしてるのに、
なんでwinFormsに回帰したいん?
608デフォルトの名無しさん (ワッチョイ b702-kbB0)
2021/02/11(木) 23:42:04.25ID:zlnnHWka0609デフォルトの名無しさん (ワッチョイ 1e42-DrOF)
2021/02/12(金) 00:29:54.50ID:STyCrufi0 Wpfは、Prism.Unity等のDIコンテナ使う前提で設計すると、コード量は却って少なくなるんじゃね?
DIそのものじゃないが、Event Aggregatorなんか凄く便利だ
DIそのものじゃないが、Event Aggregatorなんか凄く便利だ
610デフォルトの名無しさん (ワッチョイ 9354-cU8Z)
2021/02/12(金) 02:33:39.65ID:8skgNT+D0 非同期の勉強してるんですが、
1つの処理を非同期にしたら、それを呼び出すメソッドも、更にそのメソッドを呼び出すメソッドも非同期に・・・・
って感じになってしまうんですが、ピンポイントで非同期にして上手い設計にするコツを教えてください。
1つの処理を非同期にしたら、それを呼び出すメソッドも、更にそのメソッドを呼び出すメソッドも非同期に・・・・
って感じになってしまうんですが、ピンポイントで非同期にして上手い設計にするコツを教えてください。
611デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/12(金) 03:41:53.86ID:jLDSfmCza612デフォルトの名無しさん (ワッチョイ 5e62-68oT)
2021/02/12(金) 04:13:40.25ID:BHIDBrst0613デフォルトの名無しさん (ワッチョイ 5e62-68oT)
2021/02/12(金) 04:24:05.42ID:BHIDBrst0 >>610
補足だけど設計という話になると、非同期メソッドを呼び出しているメソッドが非同期メソッドじゃない様な設計をいいとは思わない
補足だけど設計という話になると、非同期メソッドを呼び出しているメソッドが非同期メソッドじゃない様な設計をいいとは思わない
614デフォルトの名無しさん (ワッチョイ 9ebb-9N8P)
2021/02/12(金) 04:35:12.34ID:0YHTI9ak0 でもこう間違ったのはよく理解できる
結構な数の入門書やブログに、こういった間違った記述があるんだよな
結構な数の入門書やブログに、こういった間違った記述があるんだよな
615610 (ワッチョイ 9354-cU8Z)
2021/02/12(金) 04:43:36.86ID:NIOdbtDV0 ありがとうございます。ググってみました。
非同期処理の結果を受け取るために、Result ばっかり使用していたのですが、デッドロックするという情報を見て脳死してました。
・戻り値が欲しい場合は呼び出し元の同期メソッドで、GetAwaiter(false).GetResult();
・非同期メソッド内で処理完結させたい場合は、GetAwaiter(false).OnCompleted();
・同期メソッド内で非同期処理を完結させたい場合は、Task.Run();
をすればとりあえず大丈夫そう?という感じみたいなので、これをベースに考えてみます。
今勉強で作ってるのが WinForms アプリですが、多くの処理の起点が戻り値 void のイベントハンドラで、
GetAwaiter(false) にすれば、空いてるスレッド使うことでデッドロックのリスクも下がる(なくなる?)みたいなので、試行錯誤してみます。
非同期処理の結果を受け取るために、Result ばっかり使用していたのですが、デッドロックするという情報を見て脳死してました。
・戻り値が欲しい場合は呼び出し元の同期メソッドで、GetAwaiter(false).GetResult();
・非同期メソッド内で処理完結させたい場合は、GetAwaiter(false).OnCompleted();
・同期メソッド内で非同期処理を完結させたい場合は、Task.Run();
をすればとりあえず大丈夫そう?という感じみたいなので、これをベースに考えてみます。
今勉強で作ってるのが WinForms アプリですが、多くの処理の起点が戻り値 void のイベントハンドラで、
GetAwaiter(false) にすれば、空いてるスレッド使うことでデッドロックのリスクも下がる(なくなる?)みたいなので、試行錯誤してみます。
616デフォルトの名無しさん (ワッチョイ c232-oFCC)
2021/02/12(金) 05:48:58.46ID:jWNhPSPe0 >>615
それはResult云々というより変な場所でawaitしてるとじゃないの?
Awaiterは直接扱う物じゃないしConfigureAwaitの間違いだと思うけど
基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
ライブラリ作るとか、妙な組み方しなければ意識する必要はないはず
元スレッドを解放したい場所(多くの場合UIスレッド)でawaitを使う
非同期処理ならば結果を取り出して返すのではなくTaskを丸ごと返す
勿論それが絶対ではないが、大抵の場合はそれで済むんじゃないかな
あとはProgress<T>とかContinueWithとかTaskExtensions.Unwrapとか
それはResult云々というより変な場所でawaitしてるとじゃないの?
Awaiterは直接扱う物じゃないしConfigureAwaitの間違いだと思うけど
基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
ライブラリ作るとか、妙な組み方しなければ意識する必要はないはず
元スレッドを解放したい場所(多くの場合UIスレッド)でawaitを使う
非同期処理ならば結果を取り出して返すのではなくTaskを丸ごと返す
勿論それが絶対ではないが、大抵の場合はそれで済むんじゃないかな
あとはProgress<T>とかContinueWithとかTaskExtensions.Unwrapとか
617デフォルトの名無しさん (ワッチョイ 1f24-mR93)
2021/02/12(金) 09:14:15.17ID:Sw85Yz/U0 >>600
WinFormsは要素を大量生成するとバカ重くなるという現代GUIには向かない根本的欠陥がある
WinFormsもといWin32はコントロール一つ一つがCreateWindowで生成されるウインドウだからな
その点WPFはWindowクラス以外は基本「ただの絵」であるため大量生成してもそこまで重くならない
が、WPFは抽象化に抽象化を重ねまくったせいで初期の時点でかなり重いという元も子もない産物だが
WinFormsは要素を大量生成するとバカ重くなるという現代GUIには向かない根本的欠陥がある
WinFormsもといWin32はコントロール一つ一つがCreateWindowで生成されるウインドウだからな
その点WPFはWindowクラス以外は基本「ただの絵」であるため大量生成してもそこまで重くならない
が、WPFは抽象化に抽象化を重ねまくったせいで初期の時点でかなり重いという元も子もない産物だが
618デフォルトの名無しさん (ワッチョイ 1663-CPJR)
2021/02/12(金) 09:30:08.77ID:1LnGwNFm0 WPFは無かった扱いにしてパフォーマンスも記述も洗練された奴を作り直してくんねえかな
悪くなかったとしても15年前のアーキテクチャだ
バージョン2が出てもいいだろう
悪くなかったとしても15年前のアーキテクチャだ
バージョン2が出てもいいだろう
619デフォルトの名無しさん (ワッチョイ a701-pCKf)
2021/02/12(金) 10:18:15.52ID:ecic4es+0 >>618
それが、こんどのMS流 MVU(Model-View-Update)ジャマイカ?
https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
https://forest.watch.impress.co.jp/docs/news/1254643.html
それが、こんどのMS流 MVU(Model-View-Update)ジャマイカ?
https://devblogs.microsoft.com/dotnet/introducing-net-multi-platform-app-ui/
https://forest.watch.impress.co.jp/docs/news/1254643.html
620デフォルトの名無しさん (エムゾネ FF32-olyV)
2021/02/12(金) 13:13:53.93ID:x9NfpsA7F yield
621デフォルトの名無しさん (ワッチョイ a701-CuPO)
2021/02/12(金) 19:15:40.43ID:3JpcuYvx0 イエーイ
622デフォルトの名無しさん (ワッチョイ a701-SSu2)
2021/02/12(金) 19:53:50.62ID:Ah/zVhy20 遺詠
623デフォルトの名無しさん (ワッチョイ 527c-OxJ8)
2021/02/13(土) 23:26:09.07ID:zYMuRkWP0 WPFはもうサポート終了にして終わりでいいのではw
XAMLがクソ過ぎるw
もっとマシなものを作ってほしいわ
XAMLがクソ過ぎるw
もっとマシなものを作ってほしいわ
624デフォルトの名無しさん (ワッチョイ df4f-Xfe6)
2021/02/13(土) 23:33:59.55ID:x5WG3KQe0 新しいものが出たってどうせついてこれないんだからそのままForms使ってればいいんでない?
625デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/13(土) 23:36:28.82ID:+40inVMc0626デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/13(土) 23:36:39.68ID:gxnJuOwS0 あからさまにメリットなかったやん
書籍も全くない有様
書籍も全くない有様
627デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/14(日) 00:04:22.88ID:a94i0UVza メリットがないは言い過ぎで、レイアウトやデザイン性の自由度は明らかにFormより圧倒的に高い。
反面GDI+の機能を完全に包含してない、みたいな問題点もあった。
反面GDI+の機能を完全に包含してない、みたいな問題点もあった。
628デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:31:12.63ID:wyKYn9A/0 こんど WPF + VMU で
少し状況かわるんじゃねーーの。
少し状況かわるんじゃねーーの。
629デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:31:45.69ID:wyKYn9A/0 WPF + MVU
630デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/14(日) 00:44:18.09ID:D24G58JB0631デフォルトの名無しさん (ササクッテロラ Spc7-lrpJ)
2021/02/14(日) 00:49:41.65ID:HSnUb3X8p で、MSが開発者から切り捨てられるわけですね
笛吹いても誰も踊らない
笛吹いても誰も踊らない
632デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 00:50:37.43ID:x2D1GnEN0 じゃあ、それができてるサンプルないの?ってゆーたら1個も出てこなかったじゃない?
633デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 00:51:52.68ID:wyKYn9A/0 基本線で上位互換です。
@ WPF + イベントハンドラー
A WPF + MVVM
B WPF + MVU
メジャーなもんでもこんなに...
@ WPF + イベントハンドラー
A WPF + MVVM
B WPF + MVU
メジャーなもんでもこんなに...
634デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 00:52:35.39ID:x2D1GnEN0 この世のどこにもないものを何故か偉そうに語ってたってのが真相
635デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 00:55:34.53ID:KRyWJVgF0 XPSをどうしたいのか?とか
疑問は尽きないよな
疑問は尽きないよな
636デフォルトの名無しさん (ワッチョイ 527c-OxJ8)
2021/02/14(日) 01:01:03.63ID:Vd2M5/i80 WinFormsと同じコントロールを用意しているなら上位互換だけど
WPFはコントロールの数は減っているし、同じ名前ですらないし
ちょっとしたツール作るだけならWPFで作る理由が全然無いな
世に売るようなものでデザインとかスケーリングとか考慮するなら
WPFでもアリだろうけど、今はelectronとかで作ったほうがmacにも対応出来るし
WPFはもう過去のものという感じがするわ
WPFはコントロールの数は減っているし、同じ名前ですらないし
ちょっとしたツール作るだけならWPFで作る理由が全然無いな
世に売るようなものでデザインとかスケーリングとか考慮するなら
WPFでもアリだろうけど、今はelectronとかで作ったほうがmacにも対応出来るし
WPFはもう過去のものという感じがするわ
637デフォルトの名無しさん (ワッチョイ 1fad-uyRj)
2021/02/14(日) 01:16:47.00ID:F5r/6Yw/0 業務アプリだけど、WPF出始めから採用して、全然問題なくみんな移行できたよ。
638デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/14(日) 01:32:57.20ID:a94i0UVza 前も書いたかもしれんけどデータ数が多い折れ線グラフなんか実装しようとすると
行き詰るんだよねWPFは。これでWPFが嫌いになった。
あと、これは勉強不足で勘違いしてるかもしれないけどGDI+みたいに印刷と画面を
透過的に扱えない。
行き詰るんだよねWPFは。これでWPFが嫌いになった。
あと、これは勉強不足で勘違いしてるかもしれないけどGDI+みたいに印刷と画面を
透過的に扱えない。
639デフォルトの名無しさん (ワッチョイ a701-lZy2)
2021/02/14(日) 01:45:32.23ID:wyKYn9A/0 MVVMで使ってるコントロールも
内部実装はMVVMしてませんしねwww
内部実装はMVVMしてませんしねwww
640デフォルトの名無しさん (ワッチョイ 63a7-WbtV)
2021/02/14(日) 01:46:58.58ID:x2D1GnEN0 酷い裏切り行為だな
641デフォルトの名無しさん (ワッチョイ ff2d-GDsi)
2021/02/14(日) 01:51:03.43ID:rF0WajFI0 コントロールをMVVMにする意味あるのか
642デフォルトの名無しさん (ワッチョイ a701-pCKf)
2021/02/14(日) 02:02:16.26ID:wyKYn9A/0 >>641
無いです。
外向きにMVVM対応させて内部実装は普通の実装です。
まあ最短高速な実装です。
昔クラスが1000以上あるでかいグラフコントロールを改修したときも、
内部はMVVMじゃなく普通の実装でしたし、
それ以外の関連コントール(とある会社のWFPコントールスイート製品)
もそんな感じでした。
無いです。
外向きにMVVM対応させて内部実装は普通の実装です。
まあ最短高速な実装です。
昔クラスが1000以上あるでかいグラフコントロールを改修したときも、
内部はMVVMじゃなく普通の実装でしたし、
それ以外の関連コントール(とある会社のWFPコントールスイート製品)
もそんな感じでした。
643デフォルトの名無しさん (ワッチョイ 46df-2f+G)
2021/02/14(日) 08:37:53.56ID:ZrfffQoz0 chartコントロールが標準で用意されてないのが気に入らん
上位互換ならコントロールもwinform以上用意しとけよ
上位互換ならコントロールもwinform以上用意しとけよ
644デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/14(日) 09:03:10.41ID:D24G58JB0 そもそも上位互換って言ってるのはMSじゃなくて>>625だし
645デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 09:16:57.56ID:KRyWJVgF0 禿道
646デフォルトの名無しさん (ワッチョイ df4f-Xfe6)
2021/02/14(日) 09:23:18.05ID:BvP4KASJ0 >>627
そのGDI+ももう明確にレガシーとされたしね。Forms使ってる人もDirectXにしろってことなんだろう。
そのGDI+ももう明確にレガシーとされたしね。Forms使ってる人もDirectXにしろってことなんだろう。
647デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/14(日) 09:25:17.46ID:KRyWJVgF0 ザマリンはskia
648デフォルトの名無しさん (ワッチョイ a701-DrOF)
2021/02/14(日) 09:33:25.22ID:q1FxdJ8A0 formと互換性あるとかかなり痛い人だな
649デフォルトの名無しさん (ワッチョイ 1f24-mR93)
2021/02/14(日) 11:00:50.44ID:zLYzvO1s0 >>643
作ろうと思えば作れるだけマシ
WPFはちょっと頑張れば最新ゲームのUIかのようなトリッキーなものも普通に作れるからな
WinFormsで同様の事をしようとするとOnPaintオーバーライドするなりしてGDIやDirect2Dで自力描画しないといけない(描画のみならずマウスの感知動作なども自力計算)
実際俺は自力描画でWinForms版マテリアルデザインとか昔作ってたけど
作ろうと思えば作れるだけマシ
WPFはちょっと頑張れば最新ゲームのUIかのようなトリッキーなものも普通に作れるからな
WinFormsで同様の事をしようとするとOnPaintオーバーライドするなりしてGDIやDirect2Dで自力描画しないといけない(描画のみならずマウスの感知動作なども自力計算)
実際俺は自力描画でWinForms版マテリアルデザインとか昔作ってたけど
650デフォルトの名無しさん (アウウィフ FFc3-olyV)
2021/02/14(日) 11:35:44.81ID:PGTjJwEIF +1
651デフォルトの名無しさん (ワッチョイ 16b5-duN9)
2021/02/14(日) 13:02:54.63ID:QrfVAGKh0652デフォルトの名無しさん (ワッチョイ ef7b-sg8N)
2021/02/14(日) 13:08:44.18ID:n35aAobg0 テンプレに書かれている日本語理解できないのか?
653デフォルトの名無しさん (ワッチョイ ef93-VJu3)
2021/02/14(日) 13:20:53.69ID:UC+EmpeR0 >>652
日本語初心者なんでしょう
日本語初心者なんでしょう
654デフォルトの名無しさん (ワッチョイ df4f-Xfe6)
2021/02/14(日) 13:22:05.52ID:BvP4KASJ0 作ろうと思えば作れるって話なのに、そんなもの要らん→だからFormsで充分、と
飛躍するところがいかにも頭が悪い。
飛躍するところがいかにも頭が悪い。
655デフォルトの名無しさん (ワッチョイ 1f24-mR93)
2021/02/14(日) 13:25:35.27ID:zLYzvO1s0 >>651
別に俺はWinForms要らないとも言ってないしWPFマンセーする気はない
小規模アプリであれば「WinFormsで十分」は同意だけど、中規模以上だと何だかんだでMVVMのが生産性高いしカスタム要素が必要になる率も高いから「WPFで十分」も同様に言えるんだけどな
まぁ俺はそもそもqt派だからもう全然まともにデスクトップ開発でC#使ってないが
別に俺はWinForms要らないとも言ってないしWPFマンセーする気はない
小規模アプリであれば「WinFormsで十分」は同意だけど、中規模以上だと何だかんだでMVVMのが生産性高いしカスタム要素が必要になる率も高いから「WPFで十分」も同様に言えるんだけどな
まぁ俺はそもそもqt派だからもう全然まともにデスクトップ開発でC#使ってないが
656デフォルトの名無しさん (ブーイモ MM0e-UZ9t)
2021/02/14(日) 13:35:12.11ID:N/o0G9JEM トリッキーな機能は要らないからプレゼンテーションはフレームワークにおまかせして
人間はモデルの実装に集中しようぜ
それができるのがMVVM、MVUだよって話だろ
WinFormsだと一番省力したいプレゼンテーションで疲弊するじゃん
人間はモデルの実装に集中しようぜ
それができるのがMVVM、MVUだよって話だろ
WinFormsだと一番省力したいプレゼンテーションで疲弊するじゃん
657デフォルトの名無しさん (ワッチョイ a701-pCKf)
2021/02/14(日) 13:39:25.24ID:wyKYn9A/0 ご移動下さい。
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
658デフォルトの名無しさん (ワッチョイ 1ede-WbtV)
2021/02/14(日) 14:04:10.76ID:k4XbJN7x0 MVVMなんかいらないよ
いらないから誰も使ってないんじゃん
いらないから誰も使ってないんじゃん
659デフォルトの名無しさん (ワッチョイ 1e42-DrOF)
2021/02/14(日) 14:14:37.91ID:/ikZE8v50 MVVMは単なるXamlの付属品じゃなくて、Prism.Unityを中心としたページ遷移型のアプリケーション構築
EventAggregatorによる疎結合のイベント通知、DIコンテナによるモジュールの管理なども有る
勿論web系でも使われている技術だけど、Formsではあまり使わない技術だね
ここらへんを一度使っちまうとFormsには戻りたくなくなる
EventAggregatorによる疎結合のイベント通知、DIコンテナによるモジュールの管理なども有る
勿論web系でも使われている技術だけど、Formsではあまり使わない技術だね
ここらへんを一度使っちまうとFormsには戻りたくなくなる
660デフォルトの名無しさん (ワッチョイ 1ede-WbtV)
2021/02/14(日) 14:34:25.50ID:k4XbJN7x0661デフォルトの名無しさん (ワッチョイ ef93-VJu3)
2021/02/14(日) 14:43:14.04ID:UC+EmpeR0 冗談のつもりだったのにホントに日本語理解できてないのか?
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
移動できない奴は、バカなのでぼくの主張は間違ってますって言ってるのと一緒だと気付けよ
ふらっと C#,C♯,C#(議論用) [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1469538912/
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463
移動できない奴は、バカなのでぼくの主張は間違ってますって言ってるのと一緒だと気付けよ
662デフォルトの名無しさん (ササクッテロラ Spc7-lrpJ)
2021/02/14(日) 16:08:58.24ID:HSnUb3X8p 全部Microsoftが悪い
663デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/14(日) 17:40:25.04ID:qsBeAXJea 何度も言うけどこんな過疎スレでなんで一生懸命「交通整理」してるのか、
その自分の動機の卑しさを自覚できない奴が一番バカっぽいと思うよw
誰かのため?みんなのため?
絶対違うよねそれ。
いやこれマジで大丈夫か。
その自分の動機の卑しさを自覚できない奴が一番バカっぽいと思うよw
誰かのため?みんなのため?
絶対違うよねそれ。
いやこれマジで大丈夫か。
664デフォルトの名無しさん (ワッチョイ d602-w1GE)
2021/02/14(日) 19:57:36.92ID:xK5MF7GG0 >>616
615じゃないけど質問です
>基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
wpfで結果を得てプロパティを変更しイベントが発生する場合
Dispatcher.BeginInvokeは必要ですか ?
615じゃないけど質問です
>基本的にはUIスレッドで待つ・結果を得るならTaskをawaitするだけ
wpfで結果を得てプロパティを変更しイベントが発生する場合
Dispatcher.BeginInvokeは必要ですか ?
665デフォルトの名無しさん (ワッチョイ 3302-2jKL)
2021/02/14(日) 20:12:15.63ID:ZZdmuf4k0666デフォルトの名無しさん (ワッチョイ 96bb-6fnu)
2021/02/14(日) 20:44:22.17ID:xqD1GcXH0 >>663
死ねよ
死ねよ
667デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/14(日) 20:53:10.91ID:K2VDjDyL0 Ruby on Rails で、控えめなJS フレームワークの、Stimulu を使えば良い
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
668デフォルトの名無しさん (ワッチョイ 162c-VmDF)
2021/02/14(日) 21:14:32.55ID:RwzQEShB0 >>664
引用してる文と質問内容が全然別物に見えるので回答できん
とりあえずINotifyPropertyChangedでのBindingならPropertyChangedは別スレッドで発生させても問題ない
引用してる文と質問内容が全然別物に見えるので回答できん
とりあえずINotifyPropertyChangedでのBindingならPropertyChangedは別スレッドで発生させても問題ない
669デフォルトの名無しさん (ワッチョイ c232-oFCC)
2021/02/14(日) 21:22:32.21ID:EcQCs95s0 >>664
そのレスはTask使ってるのに一々同期的に取り出してそうに見えて
固まらせたくない箇所を非同期にすれば良い的な意味合いで質問と噛み合うかどうか
そのプロパティを変更するのがUIコントロールでスレッドが異なれば必要…なんだけど
TaskをConfigureAwait(false)してなければawaitは待機元スレッドに帰ってくるよ
BeginInvokeはTaskベースで使うかな?別スレッドから実行させるならProgress<T>とか
4.5未満としてもSynchronizationContext.PostやTaskSchedulerを指定してContinueWithかな
そのレスはTask使ってるのに一々同期的に取り出してそうに見えて
固まらせたくない箇所を非同期にすれば良い的な意味合いで質問と噛み合うかどうか
そのプロパティを変更するのがUIコントロールでスレッドが異なれば必要…なんだけど
TaskをConfigureAwait(false)してなければawaitは待機元スレッドに帰ってくるよ
BeginInvokeはTaskベースで使うかな?別スレッドから実行させるならProgress<T>とか
4.5未満としてもSynchronizationContext.PostやTaskSchedulerを指定してContinueWithかな
670デフォルトの名無しさん (ワッチョイ d2ad-DrOF)
2021/02/15(月) 08:14:10.72ID:rMuvZP7r0 surfaceやipadなどで使えるクロスプラットフォームの、ペイントアプリを作ってみたいのですが、
C#が採用されているペイントソフトや3DCGソフトで有名なのってありますか?
C#が採用されているペイントソフトや3DCGソフトで有名なのってありますか?
671デフォルトの名無しさん (ワッチョイ 778c-pCKf)
2021/02/15(月) 08:52:18.66ID:URqj7Tc+0 >>670
Paint.NET
Paint.NET
672デフォルトの名無しさん (ワッチョイ ff2d-GDsi)
2021/02/15(月) 08:53:55.45ID:efsWz5OT0 >>670
Paint.NET
Paint.NET
673デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/15(月) 09:34:24.49ID:D0ANu2Du0 >>670
https://www.pinta-project.com/
なお paint.netのソースはwin32Api 知ってないと
キツいぞ。
projectはformだがwindow周りの実装は
ほぼwin32apiだ
https://www.pinta-project.com/
なお paint.netのソースはwin32Api 知ってないと
キツいぞ。
projectはformだがwindow周りの実装は
ほぼwin32apiだ
674デフォルトの名無しさん (ワッチョイ 5eda-S5lR)
2021/02/15(月) 11:14:53.43ID:r1R8Fv3d0 int port;
に対して
if( port < 1 && 65535 < port )
みたいなtrueになりえない条件文ってコンパイル時の警告出せないんでしたっけ?
に対して
if( port < 1 && 65535 < port )
みたいなtrueになりえない条件文ってコンパイル時の警告出せないんでしたっけ?
675664 (ワッチョイ d602-w1GE)
2021/02/15(月) 15:06:53.89ID:Hxbo2jbM0 >>668,669
質問が下手ですみません。質問を変えます
private async void Button_Click(object sender, RoutedEventArgs e)
{
Button.IsEnabled = false;
await Task.Delay(2000);
Button.IsEnabled = true; // *1
}
タスクが完了したときにUIスレッドが作業中だったとします。
そうすると、UIスレッドは作業を中断して *1を呼びますよね。
この解釈で正しいですか ?
だとすると、Buttonに対して
Button.IsEnabled += Button_IsEnabled がある場合、
UIスレッドが作業中だとUIスレッドは混乱するのではないかと思っています。
混乱を解消するには、awaitの後処理にはUIスレッドが暇になるのを待つ必要があるのではと考え、Dispatchr.BeginInvokeを思いつきました。
ただし、BeginInvokeを追加した例が見当たらないので、もっとうまい手があるのかもしれないと思い、質問しました。
長文失礼
質問が下手ですみません。質問を変えます
private async void Button_Click(object sender, RoutedEventArgs e)
{
Button.IsEnabled = false;
await Task.Delay(2000);
Button.IsEnabled = true; // *1
}
タスクが完了したときにUIスレッドが作業中だったとします。
そうすると、UIスレッドは作業を中断して *1を呼びますよね。
この解釈で正しいですか ?
だとすると、Buttonに対して
Button.IsEnabled += Button_IsEnabled がある場合、
UIスレッドが作業中だとUIスレッドは混乱するのではないかと思っています。
混乱を解消するには、awaitの後処理にはUIスレッドが暇になるのを待つ必要があるのではと考え、Dispatchr.BeginInvokeを思いつきました。
ただし、BeginInvokeを追加した例が見当たらないので、もっとうまい手があるのかもしれないと思い、質問しました。
長文失礼
676デフォルトの名無しさん (ワッチョイ 527c-Oe62)
2021/02/15(月) 15:24:35.05ID:89MhGAsi0 実際の実装は知らんがWindowsのメッセージループを処理するスレッドがUIスレッド(メインスレッド)だろうから、その手のスレッドプールで処理されるものは処理が終わった時点でメインスレッドにメッセージをポストしてメインスレッドがメッセージを受信したときに終了後の処理がされると言う流れかと
677デフォルトの名無しさん (ワッチョイ 9316-oFCC)
2021/02/15(月) 16:12:35.84ID:CfDXxyFV0 >>675
TaskとThreadを混同してるってオチ?
君が懸念してることは別Threadを利用したときに起こる事であって、DispatcherInvoke類も"別Thread"からUI操作を行うときに使う機能
TaskとThreadを混同してるってオチ?
君が懸念してることは別Threadを利用したときに起こる事であって、DispatcherInvoke類も"別Thread"からUI操作を行うときに使う機能
678デフォルトの名無しさん (ワッチョイ c232-oFCC)
2021/02/15(月) 17:54:07.29ID:ytBU07x20 >>675
作業を中断して*1を呼ぶというのは不適切に感じます。中断というならButton_Clickがawaitで後続処理が保留になる所でしょうか
そうなると*1が再開される手順ですが、UI処理はメッセージ単位なので>>676が仰る様なその合間に完了を感知してになると思います
このメッセージキューがパフォーマンスや互換性問題から専用スレッドによる処理が前提なのでBeginInvokeなどが必要になる訳です
翻ってawaitを使うとその辺りをやってくれます。FormsやWPFで異なる手順を抽象化したものがSynchronizationContextやTaskSchedulerですが
それらを推し進めて簡便に扱えるようにしたのがasync/awaitです。※同期的待機内で非同期待機とかしなければそんなに留意する必要はありません
技術的な解説については↓等が参考になると思いますが、直下のコードについてはTaskベース世代のものではないですね
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/threading-model?view=netframeworkdesktop-4.8
作業を中断して*1を呼ぶというのは不適切に感じます。中断というならButton_Clickがawaitで後続処理が保留になる所でしょうか
そうなると*1が再開される手順ですが、UI処理はメッセージ単位なので>>676が仰る様なその合間に完了を感知してになると思います
このメッセージキューがパフォーマンスや互換性問題から専用スレッドによる処理が前提なのでBeginInvokeなどが必要になる訳です
翻ってawaitを使うとその辺りをやってくれます。FormsやWPFで異なる手順を抽象化したものがSynchronizationContextやTaskSchedulerですが
それらを推し進めて簡便に扱えるようにしたのがasync/awaitです。※同期的待機内で非同期待機とかしなければそんなに留意する必要はありません
技術的な解説については↓等が参考になると思いますが、直下のコードについてはTaskベース世代のものではないですね
https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/advanced/threading-model?view=netframeworkdesktop-4.8
679664 (ワッチョイ d602-w1GE)
2021/02/15(月) 19:20:24.59ID:Hxbo2jbM0 >>677,678
私の例で *1のプロパティ変更と通知ではメッセージループを使っているのかもしれませんが、*1の呼び出しは awaitの後続処理ではないでしょうか
次の例はまずいのではないでしょうか。
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MyCLREvent(this, EventArgs.Empty);
}
私の例で *1のプロパティ変更と通知ではメッセージループを使っているのかもしれませんが、*1の呼び出しは awaitの後続処理ではないでしょうか
次の例はまずいのではないでしょうか。
private async void Button_Click(object sender, RoutedEventArgs e)
{
await Task.Delay(2000);
MyCLREvent(this, EventArgs.Empty);
}
680デフォルトの名無しさん (ワッチョイ 162c-VmDF)
2021/02/16(火) 00:47:37.27ID:yRjou++30 なにをしてまずいというのかはわからんが
各所でThread.CurrentThread.ManagedThreadId表示させて
どこでどのスレッドになってるか確認してみれば?
各所でThread.CurrentThread.ManagedThreadId表示させて
どこでどのスレッドになってるか確認してみれば?
681デフォルトの名無しさん (ワッチョイ ff2d-XIid)
2021/02/16(火) 01:07:19.33ID:fNU3Qny80 >>679
*1はawaitの後続処理だけど、UIスレッドが空くまで実行されない
*1はawaitの後続処理だけど、UIスレッドが空くまで実行されない
682デフォルトの名無しさん (ワッチョイ c67c-FDiY)
2021/02/16(火) 09:52:46.68ID:ZNVxOhBd0 ボタン2つ用意してこういうので確認してみては
async void btn1_Click(object sender, RoutedEventArgs e) {
await Task.Delay(2000);
Trace.WriteLine("btn1");
}
void btn2_Click(object sender, RoutedEventArgs e) {
for (int i = 0; i < 10; i++) {
Thread.Sleep(300);
Trace.WriteLine("btn2");
}
}
async void btn1_Click(object sender, RoutedEventArgs e) {
await Task.Delay(2000);
Trace.WriteLine("btn1");
}
void btn2_Click(object sender, RoutedEventArgs e) {
for (int i = 0; i < 10; i++) {
Thread.Sleep(300);
Trace.WriteLine("btn2");
}
}
683デフォルトの名無しさん (ワッチョイ c232-lrpJ)
2021/02/16(火) 22:48:01.66ID:/yXZfRwG0 csvで数字を読み込んで、それをグラフ化して表示して、GUIの画面ごとスクリーンショットして保存するWPFプログラムを作ってます。
グラフはwindowsformhostを使ってchartコントロールで表示させています。
VisualTreeHelperでGUIの縦横サイズを取得して、RenderTargetBitmapにDrawingVisualを渡してスクリーンショットしているのですが、chart部分が保存されません
Graphics.CopyFromScreenというのも試してみましたがこちらではchartも表示されるものの、ウィンドウのドロップシャドウみたいなものが一緒に保存されてその分縦横がズレてGUIの右下が見切れます。
解決策を教えてください
グラフはwindowsformhostを使ってchartコントロールで表示させています。
VisualTreeHelperでGUIの縦横サイズを取得して、RenderTargetBitmapにDrawingVisualを渡してスクリーンショットしているのですが、chart部分が保存されません
Graphics.CopyFromScreenというのも試してみましたがこちらではchartも表示されるものの、ウィンドウのドロップシャドウみたいなものが一緒に保存されてその分縦横がズレてGUIの右下が見切れます。
解決策を教えてください
684デフォルトの名無しさん (ワッチョイ a333-CuPO)
2021/02/16(火) 22:58:23.73ID:92chE2An0 allowtransparencyがtrueになってるとか?
685デフォルトの名無しさん (アウアウエー Saaa-pCKf)
2021/02/17(水) 03:55:15.13ID:eRzk3aeWa686デフォルトの名無しさん (オッペケ Src7-adQg)
2021/02/17(水) 14:41:28.07ID:UPYA2zP2r ディスプレイ上の座標を指定して、
画面の指定部分をそのままフォームに表示させたいと思っています
まずこれが可能なのかが資料見つかりませんでした
可能なら、毎回スクショ切り取って保存して表示、とかせずに、リアルタイムで反映させたいです
また、そのようにして表示した画面に、拡大や色反転などの加工を行うことは可能でしょうか?
画面の指定部分をそのままフォームに表示させたいと思っています
まずこれが可能なのかが資料見つかりませんでした
可能なら、毎回スクショ切り取って保存して表示、とかせずに、リアルタイムで反映させたいです
また、そのようにして表示した画面に、拡大や色反転などの加工を行うことは可能でしょうか?
687デフォルトの名無しさん (ワッチョイ d633-Xfe6)
2021/02/17(水) 15:11:52.55ID:JjIbIhY/0688デフォルトの名無しさん (ワッチョイ c67c-FDiY)
2021/02/17(水) 16:27:46.54ID:VhEokLWI0 可能かどうかで言えばWindows標準の拡大鏡ツールで実現できてるから可能といえる
C#で実現するのにはまあまず687を試してみればいいんじゃないかな
あと著作権保護されてるコンテンツを表示してる部分は多分無理
C#で実現するのにはまあまず687を試してみればいいんじゃないかな
あと著作権保護されてるコンテンツを表示してる部分は多分無理
689デフォルトの名無しさん (ワッチョイ d6da-SSu2)
2021/02/17(水) 21:03:31.28ID:D9ZFiUm80 PaintWindowで取れないかな
690デフォルトの名無しさん (ササクッテロ Spc7-Jyxv)
2021/02/17(水) 23:31:19.68ID:5a8siaYVp リアルアイムでやるならWindows.Graphics.CaptureやDesktop Duplication APIだな
691デフォルトの名無しさん (ワッチョイ 1ee9-0s3P)
2021/02/17(水) 23:35:50.45ID:wHZs7f540 VSのProjectの構成って何仕様書で定義するものでしょうか?
外部仕様では見たこと無いのですが世間様はどうしてるんだろうと
外部仕様では見たこと無いのですが世間様はどうしてるんだろうと
692デフォルトの名無しさん (ワッチョイ a701-CuPO)
2021/02/18(木) 00:11:30.22ID:c2uEmfa00 安心の俺様仕様
693デフォルトの名無しさん (ワッチョイ 46df-2f+G)
2021/02/18(木) 00:19:08.60ID:80X4NLoW0 一般的には詳細設計で各プロジェクトの構成定義する
694デフォルトの名無しさん (ワッチョイ a701-0s3P)
2021/02/18(木) 08:41:32.49ID:K3tSL8mT0 世間様じゃ詳細設計で決めてるのですね
参考になります
外仕作成でプロジェクトの構造考えずプロトタイプもりもり作っていたので気になってました
参考になります
外仕作成でプロジェクトの構造考えずプロトタイプもりもり作っていたので気になってました
695デフォルトの名無しさん (アウアウエー Saaa-UZ9t)
2021/02/18(木) 09:18:08.93ID:fjuXbMGDa んなもん設計書にはかかないよ
696デフォルトの名無しさん (ワッチョイ 96bb-9N8P)
2021/02/18(木) 09:27:17.33ID:jXEmO6nJ0 Swiftスレにも似たようなこと書いてる奴がいるから、きっとこのことをまとめてアフィブログにでもするんだろう
697デフォルトの名無しさん (ラクッペペ MMde-HHI4)
2021/02/18(木) 10:41:06.50ID:4sNPnSsIM Debug.Printの引数はリリース版でも評価されますか?
698デフォルトの名無しさん (ワッチョイ a701-0s3P)
2021/02/18(木) 12:42:01.95ID:DdhrYGF40 現実的にプロジェクトの構造なんて誰も気にしない
699デフォルトの名無しさん (ワッチョイ 1201-EsoH)
2021/02/18(木) 18:00:30.64ID:EVRbmhyV0 プロジェクトの構成なのか構造なのか
そもそも構成とか構造って具体的に何?
そもそも構成とか構造って具体的に何?
700デフォルトの名無しさん (ワッチョイ 162c-FDiY)
2021/02/18(木) 22:14:18.02ID:UlBwu06v0 Ruby on Rails は、設定よりも規約
プロジェクト構成・名前付けルールなど、すべて決まっているから、
誰でも、同じ構成で作る
これが「レールに乗る」と言う事。
Rails のルールから外れて、独自なものを作ってはならない
オレオレ構成みたいなものを認めていない
プロジェクト構成・名前付けルールなど、すべて決まっているから、
誰でも、同じ構成で作る
これが「レールに乗る」と言う事。
Rails のルールから外れて、独自なものを作ってはならない
オレオレ構成みたいなものを認めていない
701デフォルトの名無しさん (ワッチョイ 8fdf-D7W+)
2021/02/19(金) 00:45:43.92ID:GwnD0oPh0 なんでRoRの話が突然出てくるのか
702デフォルトの名無しさん (ワッチョイ ffad-jt1D)
2021/02/19(金) 01:48:24.06ID:8tmtltZz0 >>701
他のスレ追い出されたやつだから
他のスレ追い出されたやつだから
703デフォルトの名無しさん (ワッチョイ 83e3-Nz9x)
2021/02/19(金) 02:16:52.43ID:+BesUuNA0 定期的に沸くたびに丁寧に相手するから居着いたパターン
704デフォルトの名無しさん (ワッチョイ 035f-ylyd)
2021/02/19(金) 05:03:59.49ID:Eig2tonS0 こいつわざわざpythonスレにやってきて時代遅れの遺物を押し付けに来る荒らしだろ
705デフォルトの名無しさん (ワッチョイ cf63-Bb+k)
2021/02/19(金) 05:37:12.65ID:473cJTkx0 ム板全域にいるよねこのガイジ
bashスレにもいた時は頭が痛くなったな
ふれあい作業所とかで遊んでればいいのにね
bashスレにもいた時は頭が痛くなったな
ふれあい作業所とかで遊んでればいいのにね
706デフォルトの名無しさん (エアペラ SDa7-OYW5)
2021/02/19(金) 08:26:30.93ID:qL15PbA4D 相手するから喜ぶ
粛々とNGしとけ
粛々とNGしとけ
707デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/19(金) 09:49:46.59ID:SQn3IdCjM ルビキチが珍しく質問に合ったレスを返してるのにお前らヒドイなw
708デフォルトの名無しさん (ブーイモ MMff-wfSA)
2021/02/19(金) 09:55:27.59ID:SQn3IdCjM プロジェクトのディレクトリ構成はアーキテクチャ設計を反映したもの
アーキテクチャ設計が詳細設計に含まれてるならで詳細設計段階で決める
Railsのようにアプリの機能構成に関係なく一律同じディレクトリ構成にするのもそれなりのメリットがある
アーキテクチャ設計が詳細設計に含まれてるならで詳細設計段階で決める
Railsのようにアプリの機能構成に関係なく一律同じディレクトリ構成にするのもそれなりのメリットがある
709デフォルトの名無しさん (エムゾネ FF1f-ZFay)
2021/02/19(金) 15:40:30.15ID:LoU7pdW5F710デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/19(金) 18:51:07.37ID:xy8YPNBA0 初心者です。画像の一部をクリックすると画面遷移を行うようなプログラムを
作りたいと考え、自分なりに作ってみたのですが
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class NG2to3 : MonoBehaviour
{
Vector2 Pos;
void Start()
{}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Pos = Input.mousePosition;
if (-15 <= this.Pos.x && this.Pos.x <= 15 &&
-35 <= this.Pos.y && this.Pos.y <= -15 )
{
SceneManager.LoadScene("scene3");
}
}
}
}
このプログラムで指定したPosの範囲の場合画面遷移を行いたいのですが、
画面の至るところをタッチすれど遷移してくれません。
どこが間違っているのか教えていただきたいです。
作りたいと考え、自分なりに作ってみたのですが
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class NG2to3 : MonoBehaviour
{
Vector2 Pos;
void Start()
{}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Pos = Input.mousePosition;
if (-15 <= this.Pos.x && this.Pos.x <= 15 &&
-35 <= this.Pos.y && this.Pos.y <= -15 )
{
SceneManager.LoadScene("scene3");
}
}
}
}
このプログラムで指定したPosの範囲の場合画面遷移を行いたいのですが、
画面の至るところをタッチすれど遷移してくれません。
どこが間違っているのか教えていただきたいです。
711デフォルトの名無しさん (ワッチョイ ff7c-Nz9x)
2021/02/19(金) 19:22:01.16ID:YkVGv+Id0 >>710
https://docs.unity3d.com/ja/2018.4/ScriptReference/Input-mousePosition.html
読めよw
どっちにしても値は
xは0〜Screen.width - 1
yは0〜Screen.hright - 1
やろ
https://docs.unity3d.com/ja/2018.4/ScriptReference/Input-mousePosition.html
読めよw
どっちにしても値は
xは0〜Screen.width - 1
yは0〜Screen.hright - 1
やろ
712デフォルトの名無しさん (ワッチョイ 035f-ylyd)
2021/02/19(金) 19:42:33.49ID:Eig2tonS0 ドキュメント読むのもそうだけど実際 にmousePositionの値を見たら良いと思うよ
713デフォルトの名無しさん (ワッチョイ ffad-jt1D)
2021/02/22(月) 02:08:01.45ID:aMOGcJaK0 構造体とリストどっちがいいとかあるの?
714デフォルトの名無しさん (ワッチョイ 83ad-bVKt)
2021/02/22(月) 07:33:16.03ID:DBdQ6Dl10 どちらもいい
715デフォルトの名無しさん (ワッチョイ 8f02-lzga)
2021/02/22(月) 08:40:26.66ID:q2LnICsL0 構造体リストにしよう
716デフォルトの名無しさん (ワッチョイ 7f52-n1zC)
2021/02/22(月) 09:21:08.61ID:KlgM0RdP0 >>713
まったく用途が違うから、普通はその二つでどちらにするかを迷うことはない
まったく用途が違うから、普通はその二つでどちらにするかを迷うことはない
717デフォルトの名無しさん (ワッチョイ a37c-OYW5)
2021/02/22(月) 11:28:40.84ID:J1FRHNv90 >>713
夕食は弁当と定食どっちがいいと思う?
夕食は弁当と定食どっちがいいと思う?
718デフォルトの名無しさん (ワッチョイ f361-cyI8)
2021/02/22(月) 18:39:45.74ID:5BxgjfJ50 リストじゃなくレコードじゃね?と言ってみるテスト
719デフォルトの名無しさん (ワッチョイ 83ad-96D9)
2021/02/22(月) 19:19:17.10ID:DBdQ6Dl10 structとclassの使い分けだったら質問の意図も分かるけど
720デフォルトの名無しさん (ラクッペペ MM7f-0TpN)
2021/02/22(月) 19:22:09.14ID:rk3Z26pVM カレーとコンビニ、どっちにする?
721デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/22(月) 21:06:02.69ID:8s+nkcdt0 スクリプトから条件で画像を表示させたいんですが、張り替えは出来ても新しく出現させることってできない?
722デフォルトの名無しさん (ワッチョイ b378-Nz9x)
2021/02/22(月) 21:22:09.87ID:7Jd6R0uh0 質問下手すぎでしょ
723デフォルトの名無しさん (ワッチョイ cfda-iyw6)
2021/02/22(月) 21:26:08.64ID:6SeUKgvV0 日本語でよろ
724デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
2021/02/22(月) 21:42:20.42ID:0aX736QQ0 I want to display an image conditionally from a script,
but can I make it appear new even if I can replace it?
but can I make it appear new even if I can replace it?
725デフォルトの名無しさん (ワッチョイ cfbb-dJoW)
2021/02/22(月) 21:45:15.13ID:/lIHFE+b0 5W1Hでよろ
726デフォルトの名無しさん (ワッチョイ cfbb-EvSd)
2021/02/22(月) 23:51:22.27ID:nluN8fGs0 C#でWin32のHeapAlloc(GetProcessHeap(), 0, 0x1000);みたいなことするとGCと競合してバグるったりするの?
727デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/23(火) 00:10:32.83ID:qmo9+9Uk0 すいませんw
2Dunityでボタンを押したら画像を表示できるようなプログラムを作りたいのですが、
調べてみても元々ある画像をスクリプトによって別の物に変更するものはあれど
ボタンを押して0から画像を表示させることができるようなものを
見つけられなかったので、できないのかなと。。。どうなんでしょう?
2Dunityでボタンを押したら画像を表示できるようなプログラムを作りたいのですが、
調べてみても元々ある画像をスクリプトによって別の物に変更するものはあれど
ボタンを押して0から画像を表示させることができるようなものを
見つけられなかったので、できないのかなと。。。どうなんでしょう?
728デフォルトの名無しさん (ワッチョイ e393-OYW5)
2021/02/23(火) 00:26:01.44ID:DnkfMlNP0 できる
729デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/23(火) 01:56:55.10ID:qmo9+9Uk0 >>728
詳細を教えていただきたいですw(__)
詳細を教えていただきたいですw(__)
730デフォルトの名無しさん (ワッチョイ b35f-Rlil)
2021/02/23(火) 02:13:02.76ID:6EEdG0Ut0 >>726
アンマネージドだろうから特に影響なさそうだけどね
アンマネージドだろうから特に影響なさそうだけどね
731デフォルトの名無しさん (ワッチョイ a324-wc/N)
2021/02/23(火) 09:57:34.63ID:kvat21cB0 Windows下におけるmalloc = HeapAllocだけど
どこかしらでロードせざるを得ないネイティブdll内で当然の如くmallocは行われまくってる訳だからその程度でバグったら言語として成り立たない
どこかしらでロードせざるを得ないネイティブdll内で当然の如くmallocは行われまくってる訳だからその程度でバグったら言語として成り立たない
732デフォルトの名無しさん (ワッチョイ cfda-iyw6)
2021/02/23(火) 10:05:27.49ID:IRMSQgrY0 バグったらHeapDestroyすれば良いじゃない。by マリー
733デフォルトの名無しさん (ワッチョイ 83ad-96D9)
2021/02/23(火) 10:05:48.25ID:OuCytsjB0 >>727
'c# image 生成' で調べれば?
'c# image 生成' で調べれば?
734デフォルトの名無しさん (ワッチョイ 73a7-2w4v)
2021/02/23(火) 10:07:40.79ID:8QyPv/It0 unityでの載せ方がわからないんじゃね?
735デフォルトの名無しさん (ワッチョイ 73a7-2w4v)
2021/02/23(火) 10:10:41.92ID:8QyPv/It0736デフォルトの名無しさん (ワッチョイ 035f-pQAD)
2021/02/23(火) 12:52:43.06ID:qmo9+9Uk0737デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/23(火) 17:06:07.35ID:Ke2QO8XG0 質問よろしくお願いします。
uint 型の二つの値 x, y について、
x = 0b_0101, y = 0b_0110
のように最上位の 1 のビットの位置が同じなら true を返し、
x = 0b_0101, y = 0b_0011
のように最上位の 1 のビットの位置が違うなら false を返す関数を
作るというクイズをやっていて、
static bool BitsEquals(uint x, uint y) => (x ^ y) < (x & y);
という答えを考えました。
しかし、どうやらもっと演算の回数が少なくてすむ方法があるらしく、
それがどうしても分かりません。
どなたか良いアイディアをお持ちの方がいらっしゃれば教えていただけないでしょうか。
どうぞよろしくお願いいたします。
uint 型の二つの値 x, y について、
x = 0b_0101, y = 0b_0110
のように最上位の 1 のビットの位置が同じなら true を返し、
x = 0b_0101, y = 0b_0011
のように最上位の 1 のビットの位置が違うなら false を返す関数を
作るというクイズをやっていて、
static bool BitsEquals(uint x, uint y) => (x ^ y) < (x & y);
という答えを考えました。
しかし、どうやらもっと演算の回数が少なくてすむ方法があるらしく、
それがどうしても分かりません。
どなたか良いアイディアをお持ちの方がいらっしゃれば教えていただけないでしょうか。
どうぞよろしくお願いいたします。
738デフォルトの名無しさん (ワッチョイ 7f52-n1zC)
2021/02/23(火) 18:54:24.22ID:oVEFpcof0739デフォルトの名無しさん (ワッチョイ 6fda-huk7)
2021/02/23(火) 19:56:17.34ID:8AF7Ea+I0740デフォルトの名無しさん (ワッチョイ 232d-AkpG)
2021/02/23(火) 20:19:12.56ID:lNyBX+Rq0 >>739
最上位ビットではなくて1になってるビットの最上位だぞ
最上位ビットではなくて1になってるビットの最上位だぞ
741デフォルトの名無しさん (ワッチョイ cff2-Hwf9)
2021/02/23(火) 20:25:36.23ID:BNINfFnp0 >>727
ツー・デュニティって何のことかと思った
ツー・デュニティって何のことかと思った
742デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/23(火) 20:26:05.61ID:Ke2QO8XG0 レスありがとうございます!
>>738
> クイズでも出されたの?
おっしゃるとおりです。ネットで調べるのは OK なのですが、
外国語も含めて検索してみても私の力では解決できそうになかったので
こちらで質問させていただきました。
>>739
説明がうまくできなくて申し訳ありません。
x = 0b_0101, y = 0b_0110
の例だと、1 になっているビットで最上位のものが
両方とも下から数えて 3 番目なので true なのですが、
x = 0b_0101, y = 0b_0011
の例だと、x は先ほどと同じですが y のほうは 1 になっているビットで
最上位のものが下から数えて 2 番目なので、false になります。
>>740
補足どうもありがとうございます。
最上位ビット(MSB)というと普通は >>739 さんのおっしゃっているような
意味で捉えられそうなものなので、最初からもう少し丁寧に説明すべきでした。
どうぞよろしくお願いいたします。
>>738
> クイズでも出されたの?
おっしゃるとおりです。ネットで調べるのは OK なのですが、
外国語も含めて検索してみても私の力では解決できそうになかったので
こちらで質問させていただきました。
>>739
説明がうまくできなくて申し訳ありません。
x = 0b_0101, y = 0b_0110
の例だと、1 になっているビットで最上位のものが
両方とも下から数えて 3 番目なので true なのですが、
x = 0b_0101, y = 0b_0011
の例だと、x は先ほどと同じですが y のほうは 1 になっているビットで
最上位のものが下から数えて 2 番目なので、false になります。
>>740
補足どうもありがとうございます。
最上位ビット(MSB)というと普通は >>739 さんのおっしゃっているような
意味で捉えられそうなものなので、最初からもう少し丁寧に説明すべきでした。
どうぞよろしくお願いいたします。
743デフォルトの名無しさん (ワッチョイ ff01-aOo0)
2021/02/23(火) 20:26:52.22ID:iu17pC6m0744デフォルトの名無しさん (ワッチョイ 6fda-huk7)
2021/02/23(火) 20:47:25.97ID:8AF7Ea+I0 それなら
2*x<y
でいいんじゃないの?
trueなら一番左の1の位置は同じ
2*x<y
でいいんじゃないの?
trueなら一番左の1の位置は同じ
745デフォルトの名無しさん (ワッチョイ ff01-aOo0)
2021/02/23(火) 20:57:42.88ID:iu17pC6m0 >>744
x = 1, y = 1 がfalseになるんですけど…
x = 1, y = 1 がfalseになるんですけど…
746デフォルトの名無しさん (ワッチョイ 6fda-huk7)
2021/02/23(火) 21:04:05.18ID:8AF7Ea+I0 それは失礼w
難しいね
y:123456789abcdef
x:12 4 8
難しいね
y:123456789abcdef
x:12 4 8
747デフォルトの名無しさん (ワッチョイ 7333-siIf)
2021/02/23(火) 21:55:49.11ID:26JD/Fyv0 演算の回数っていうのがよくわからないが、
BitOperations.LeadingZeroCount(val)
の比較じゃダメなの?
BitOperations.LeadingZeroCount(val)
の比較じゃダメなの?
748デフォルトの名無しさん (ワッチョイ b35f-Rlil)
2021/02/23(火) 22:04:06.39ID:6EEdG0Ut0749デフォルトの名無しさん (ワッチョイ ff01-aOo0)
2021/02/23(火) 22:07:00.98ID:iu17pC6m0 >>737みたいに4bit同士程度ならテーブル引くとかでもいいかも
750デフォルトの名無しさん (ワッチョイ b35f-Rlil)
2021/02/23(火) 22:14:05.32ID:6EEdG0Ut0 >>749
uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
751デフォルトの名無しさん (ワッチョイ bf7d-w+8Q)
2021/02/23(火) 22:33:00.48ID:W3jldd/z0752デフォルトの名無しさん (ワッチョイ bf7d-w+8Q)
2021/02/23(火) 22:53:10.92ID:W3jldd/z0753デフォルトの名無しさん (ワッチョイ ff63-bUHw)
2021/02/24(水) 00:39:34.09ID:bQ0lAzRD0 (x^y)<(x<y?x:y)
こんなのはいいのかな?
細かくテストしてないからバグってたらごめん
演算1回比較2回だから演算回数は減ったとも言える
どっちが早いかは最適化とかCPUとか次第な気もするけど
こんなのはいいのかな?
細かくテストしてないからバグってたらごめん
演算1回比較2回だから演算回数は減ったとも言える
どっちが早いかは最適化とかCPUとか次第な気もするけど
754デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 00:52:24.83ID:jmWlpF6B0 皆様レスどうもありがとうございます。
>>743
> > 比較する2つの数値はビット長が一緒なのか
> さすがにそれは仮定してもいいんじゃね?
補足ありがとうございます。
ひとまず、符号なし32ビット長整数ということにさせてください。
>>744
> 2*x<y
> でいいんじゃないの?
実際、(x ^ y) < (x & y) より簡単なものを探そうとすると
もうそのくらい簡単なものくらいしか候補に残らないですよね。
もしくは、何か発想の転換が必要なんでしょうか。。。
>>745
> x = 1, y = 1 がfalseになるんですけど…
このレスを読んで思ったのですが、
(x ^ y) < (x & y) という計算も x = 0, y = 0 のときは
false になるんですよね。
最上位の 1 の位置を比較するのが目的なので
x や y が 0 のときは気にしなくてもいいのかもしれませんが、
やはりちょっと不自然なので (x ^ y) <= (x & y) のように
等号付き不等号にしたほうがベターでしょうか。
(ただ、
Math.Floor(Math.Log(2, x)) == Math.Floor(Math.Log(2, y))
という式は x = 0, y = 0 のとき false になるようです)
>>743
> > 比較する2つの数値はビット長が一緒なのか
> さすがにそれは仮定してもいいんじゃね?
補足ありがとうございます。
ひとまず、符号なし32ビット長整数ということにさせてください。
>>744
> 2*x<y
> でいいんじゃないの?
実際、(x ^ y) < (x & y) より簡単なものを探そうとすると
もうそのくらい簡単なものくらいしか候補に残らないですよね。
もしくは、何か発想の転換が必要なんでしょうか。。。
>>745
> x = 1, y = 1 がfalseになるんですけど…
このレスを読んで思ったのですが、
(x ^ y) < (x & y) という計算も x = 0, y = 0 のときは
false になるんですよね。
最上位の 1 の位置を比較するのが目的なので
x や y が 0 のときは気にしなくてもいいのかもしれませんが、
やはりちょっと不自然なので (x ^ y) <= (x & y) のように
等号付き不等号にしたほうがベターでしょうか。
(ただ、
Math.Floor(Math.Log(2, x)) == Math.Floor(Math.Log(2, y))
という式は x = 0, y = 0 のとき false になるようです)
755デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 00:54:09.63ID:jmWlpF6B0 >>747
> BitOperations.LeadingZeroCount(val)
> の比較じゃダメなの?
なるほど!こんな関数があるんですね。
BitOperations クラスのドキュメントを読んでみると
「これらのメソッドでは、基になるプラットフォームで使用可能な場合、
ハードウェアの組み込みを使用します。」
と書いてあるので、良い答えになりそうです。
アドバイスどうもありがとうございます。
>>748
> 今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、
> これより少ない(軽い)となると、なかなか難しいね
難しいですよね?!
普通の演算子だけを使うなら考えられるパターンは限られているので、
やはり拡張命令を使うとかテーブルを用意するとか、
なにか根本的な発想の転換が必要なのかもしれません。
>>749
> 4bit同士程度ならテーブル引くとかでもいいかも
>>750
> uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
>>750 さんが言ってくださっているとおりなのですが、
逆にわかりにくくなってしまったかもしれません。失礼しました。
ただ、普通の演算子を組み合わせるだけの方法ではどうにも手詰まりな気がしてきたので、
テーブルというアイディア自体は検討する価値がありそうです。どうもありがとうございます。
> BitOperations.LeadingZeroCount(val)
> の比較じゃダメなの?
なるほど!こんな関数があるんですね。
BitOperations クラスのドキュメントを読んでみると
「これらのメソッドでは、基になるプラットフォームで使用可能な場合、
ハードウェアの組み込みを使用します。」
と書いてあるので、良い答えになりそうです。
アドバイスどうもありがとうございます。
>>748
> 今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、
> これより少ない(軽い)となると、なかなか難しいね
難しいですよね?!
普通の演算子だけを使うなら考えられるパターンは限られているので、
やはり拡張命令を使うとかテーブルを用意するとか、
なにか根本的な発想の転換が必要なのかもしれません。
>>749
> 4bit同士程度ならテーブル引くとかでもいいかも
>>750
> uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
>>750 さんが言ってくださっているとおりなのですが、
逆にわかりにくくなってしまったかもしれません。失礼しました。
ただ、普通の演算子を組み合わせるだけの方法ではどうにも手詰まりな気がしてきたので、
テーブルというアイディア自体は検討する価値がありそうです。どうもありがとうございます。
756デフォルトの名無しさん (ワッチョイ ff63-bUHw)
2021/02/24(水) 00:54:22.31ID:bQ0lAzRD0 boolのために比較が必要という前提なら比較は6種
== != < <= > >=
2項演算子は加減乗除商、シフト、and or xorくらい?
演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
全部試したわけじゃないけど無理じゃない?
== != < <= > >=
2項演算子は加減乗除商、シフト、and or xorくらい?
演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
全部試したわけじゃないけど無理じゃない?
757デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 00:58:28.94ID:jmWlpF6B0758デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 01:04:08.81ID:jmWlpF6B0 >>756
> boolのために比較が必要という前提なら比較は6種
> == != < <= > >=
> 2項演算子は加減乗除商、シフト、and or xorくらい?
> 演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
> 全部試したわけじゃないけど無理じゃない?
レスどうもありがとうございます。確かにおっしゃるとおりのような気がしてきているところです。
とりあえずこの前提の場合だけでも (x ^ y) < (x & y) が最善なのかどうか結論を出したいので、
全パターンを網羅して確認するプログラムの作成に挑戦してみたいと思います。(できるかな…(汗)
> boolのために比較が必要という前提なら比較は6種
> == != < <= > >=
> 2項演算子は加減乗除商、シフト、and or xorくらい?
> 演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
> 全部試したわけじゃないけど無理じゃない?
レスどうもありがとうございます。確かにおっしゃるとおりのような気がしてきているところです。
とりあえずこの前提の場合だけでも (x ^ y) < (x & y) が最善なのかどうか結論を出したいので、
全パターンを網羅して確認するプログラムの作成に挑戦してみたいと思います。(できるかな…(汗)
759デフォルトの名無しさん (アウアウウー Sae7-pQAD)
2021/02/24(水) 01:07:30.18ID:OSOzzlvda760デフォルトの名無しさん (アウアウウー Sae7-pQAD)
2021/02/24(水) 01:08:45.27ID:OSOzzlvda あ、これじゃX == yの時2になるからダメかw
761デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 01:11:25.71ID:jmWlpF6B0 >>756
全部網羅と簡単に書きましたが、
例えば仮に (20210224 * x ^ y) < 12345 が正解だとして、
しらみつぶしに探してこれを見つけるのは至難のワザですよね。
う〜ん、難しい。。。。
全部網羅と簡単に書きましたが、
例えば仮に (20210224 * x ^ y) < 12345 が正解だとして、
しらみつぶしに探してこれを見つけるのは至難のワザですよね。
う〜ん、難しい。。。。
762デフォルトの名無しさん (ワッチョイ ff63-bUHw)
2021/02/24(水) 01:15:30.76ID:bQ0lAzRD0 >>757
もともと提示された式と比較すると同じ結果になるんだけど?
https://sharplab.io/#v2:C4LgTgrgdgNAJiA1AHwAICYAMBYAUBgRjzwDMB7MACgDcBDMAAgEsGBeBzAbmYYB53MAIwD6mAuO5NEiAJR4GChuSp1GAKzYduG/hxFiJDNdLm5F55iQaUAxgAsApjYDWmSkxhqZDAITt7Ts4E7p4yphYRDKgEAJyUACQARFBkwAwOAI4QtAA2IADeTAC+MAz5akWJMpzykebE+AQAbAyCZGQ5DAEubkxQaQAepX1pAJ7erAB81gMMAHoM43wzDABki9V40S1tHV2OLsEjDEPM/Rts05SzC0u8K/ejDAD8JwwgGzW4QA
もともと提示された式と比較すると同じ結果になるんだけど?
https://sharplab.io/#v2:C4LgTgrgdgNAJiA1AHwAICYAMBYAUBgRjzwDMB7MACgDcBDMAAgEsGBeBzAbmYYB53MAIwD6mAuO5NEiAJR4GChuSp1GAKzYduG/hxFiJDNdLm5F55iQaUAxgAsApjYDWmSkxhqZDAITt7Ts4E7p4yphYRDKgEAJyUACQARFBkwAwOAI4QtAA2IADeTAC+MAz5akWJMpzykebE+AQAbAyCZGQ5DAEubkxQaQAepX1pAJ7erAB81gMMAHoM43wzDABki9V40S1tHV2OLsEjDEPM/Rts05SzC0u8K/ejDAD8JwwgGzW4QA
763デフォルトの名無しさん (ワッチョイ 83ff-AkpG)
2021/02/24(水) 01:20:20.17ID:jmWlpF6B0 >>759
> 0を排除できるなら、たぶん
> x/y + y/x == 1
> になるような気がする。
!!!
確かにこれ自体は違うかもしれませんし、計算量も減っているとは思いませんが、
発想の新鮮さは私にとって正直感動を覚えるほどでした。
私は問題文にビットという言葉が出ている時点で数値をビットの並びとしか捉えていなくて、
このレスを読むまで数値を数値として扱うという発想がまったくもって出てきていませんでした。
貴重なアイディアどうもありがとうございます。
> 0を排除できるなら、たぶん
> x/y + y/x == 1
> になるような気がする。
!!!
確かにこれ自体は違うかもしれませんし、計算量も減っているとは思いませんが、
発想の新鮮さは私にとって正直感動を覚えるほどでした。
私は問題文にビットという言葉が出ている時点で数値をビットの並びとしか捉えていなくて、
このレスを読むまで数値を数値として扱うという発想がまったくもって出てきていませんでした。
貴重なアイディアどうもありがとうございます。
764デフォルトの名無しさん (ワッチョイ b35f-Rlil)
2021/02/24(水) 01:22:06.74ID:xxKZPG3j0765デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
2021/02/24(水) 09:43:01.27ID:BstpO7i2M NOT(x ^ y) &x &y
766デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
2021/02/24(水) 09:47:44.01ID:BstpO7i2M ビット反転は ~か
~(x ^ y) &x &y
~(x ^ y) &x &y
767デフォルトの名無しさん (ワッチョイ a324-wc/N)
2021/02/24(水) 10:19:17.50ID:TFahGwNV0 >>764
代入とかってアセンブラ上はmov1命令だけど実際内部ではxorクリアしてから|=してるだろうからビット演算と同列で並べちゃダメだろ
代入とかってアセンブラ上はmov1命令だけど実際内部ではxorクリアしてから|=してるだろうからビット演算と同列で並べちゃダメだろ
768デフォルトの名無しさん (アウアウエー Sadf-Qd3k)
2021/02/24(水) 16:56:51.55ID:seoVzzn4a 仕事でJavaをやるとC#って快適だったんだなと実感する
Javaは開発環境の準備からなにから全てが辛い
Javaは開発環境の準備からなにから全てが辛い
769デフォルトの名無しさん (ワッチョイ 8fdf-D7W+)
2021/02/24(水) 18:14:53.26ID:edAGB3A30 というかjavaはプロジェクト自体が辛いことが多い
客先しかり他のエンジニアしかり
客先しかり他のエンジニアしかり
770デフォルトの名無しさん (ワッチョイ cfda-iyw6)
2021/02/24(水) 19:34:45.11ID:lrBUkyKZ0 単価安いし
771デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
2021/02/24(水) 21:35:26.39ID:KW+DlOc20 この流れに乗って質問するが、
おまいらはこれからC#とどう付き合っていくつもり?
C#をとことん極めて、新しいバージョンが出れば追い、このまま一生C#と骨をうずめるつもり?
それとも、C#は腰かけ程度と考えて適当に付き合い、もっと良い言語が出たら乗り換えるつもり?
質問を言い換えると、C#ってあと何年ぐらい人気言語の一つとして君臨していられると思う?
Javaがオラ狂うによってほぼほぼ有償化された今、
Javaが失速するのは間違いない
あのJavaが、だ
C#だってそんな日が来るんじゃないの?
来るとしたらどんなオチ?
それとも、親方マイクロソフトだから大丈夫?
おまいらはこれからC#とどう付き合っていくつもり?
C#をとことん極めて、新しいバージョンが出れば追い、このまま一生C#と骨をうずめるつもり?
それとも、C#は腰かけ程度と考えて適当に付き合い、もっと良い言語が出たら乗り換えるつもり?
質問を言い換えると、C#ってあと何年ぐらい人気言語の一つとして君臨していられると思う?
Javaがオラ狂うによってほぼほぼ有償化された今、
Javaが失速するのは間違いない
あのJavaが、だ
C#だってそんな日が来るんじゃないの?
来るとしたらどんなオチ?
それとも、親方マイクロソフトだから大丈夫?
772デフォルトの名無しさん (ブーイモ MMff-cyI8)
2021/02/24(水) 21:58:03.72ID:NDokwu7RM 友達以上愛人未満
773デフォルトの名無しさん (ワッチョイ 4301-siIf)
2021/02/24(水) 22:08:07.59ID:F5qWAR4O0 別れたいけど、できちゃったので。
774デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
2021/02/24(水) 22:13:18.72ID:KW+DlOc20 >>772
無駄に幅広いな
無駄に幅広いな
775デフォルトの名無しさん (ワッチョイ cfb5-xG0S)
2021/02/24(水) 22:17:05.12ID:KW+DlOc20 >>773
惰性で一緒になっても幸せになれんぞ
惰性で一緒になっても幸せになれんぞ
776デフォルトの名無しさん (ワッチョイ cf63-Bb+k)
2021/02/24(水) 22:58:18.77ID:UF3ntcxf0 都合のいい友人
777デフォルトの名無しさん (ワッチョイ cff2-Hwf9)
2021/02/24(水) 23:51:18.96ID:K88oDGnD0 テキストエディタとWindowsにデフォで入ってるcsc.exeでできる範囲で付き合っていくわ
GUIもWinFormsで十分
GUIもWinFormsで十分
778デフォルトの名無しさん (ワッチョイ ff63-bUHw)
2021/02/25(木) 02:48:18.40ID:A477YYD30 15年前にいつかは消えると思ってたjsが気づけば最前線にいるんだ
先のことなんてわからんからその時の仕事に合わせて適当に付き合ってくだけよ
先のことなんてわからんからその時の仕事に合わせて適当に付き合ってくだけよ
779デフォルトの名無しさん (ワッチョイ ffad-2NXR)
2021/02/25(木) 07:47:32.19ID:ljkJPR6C0 >>771
プロダクトに最適な言語を使うだけよ
どんな業界でも、年々道具は新しくなるだろ?
プログラミング言語もそれと同じ
中には代々受け継がれた道具しか使わないような職もあるが、それは一般的じゃない
プロダクトに最適な言語を使うだけよ
どんな業界でも、年々道具は新しくなるだろ?
プログラミング言語もそれと同じ
中には代々受け継がれた道具しか使わないような職もあるが、それは一般的じゃない
780デフォルトの名無しさん (ワッチョイ cf2d-pQAD)
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0 この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd
大変お手数ですがご指摘いただけるとありがたいです。
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd
大変お手数ですがご指摘いただけるとありがたいです。
781デフォルトの名無しさん (ワッチョイ cf2d-pQAD)
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0 この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd
大変お手数ですがご指摘いただけるとありがたいです。
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd
大変お手数ですがご指摘いただけるとありがたいです。
782デフォルトの名無しさん (ワッチョイ 6f62-y4gS)
2021/02/25(木) 11:44:12.11ID:zlGf24tO0 文字数計算のためのCalcDだと思うけど正常に計算できてなさそう
何日後も引数にして、2日後とか3日後で想定した戻り値になってることをテストしてみた方がいいよ
メソッドを分離することとメソッド毎にテストすることの大切さがわかる典型例だな
何日後も引数にして、2日後とか3日後で想定した戻り値になってることをテストしてみた方がいいよ
メソッドを分離することとメソッド毎にテストすることの大切さがわかる典型例だな
783デフォルトの名無しさん (ワッチョイ a324-wc/N)
2021/02/25(木) 11:45:33.33ID:Kp+Bp4Dl0784デフォルトの名無しさん (アウアウエー Sadf-pQAD)
2021/02/25(木) 13:46:32.79ID:5iIS9NC9a785デフォルトの名無しさん (ワッチョイ 6f8c-zh7K)
2021/02/25(木) 13:54:37.81ID:HJ9YlmBf0 ソースコード見えないけど5000兆なんて時間計算量も空間計算量も現実的な値にならんから愚直に文字列計算する方法じゃ無理
最初が1以外なら答えは常に最初の桁の数字になって、そうじゃないときは1じゃなくなるまでの桁数よりKが小さいか同じなら1でKがそれより大きいなら1以外で最初に現れた数字が答え
最初が1以外なら答えは常に最初の桁の数字になって、そうじゃないときは1じゃなくなるまでの桁数よりKが小さいか同じなら1でKがそれより大きいなら1以外で最初に現れた数字が答え
786デフォルトの名無しさん (アウアウエー Sadf-pQAD)
2021/02/25(木) 13:58:47.94ID:5iIS9NC9a パラメータの与え方が間違ってるなw
Console.WriteLine(mi.GetDigit((long)5e15, 9460730472580800));
Console.WriteLine(mi.GetDigit((long)5e15, 9460730472580800));
787デフォルトの名無しさん (ワッチョイ 6f62-y4gS)
2021/02/25(木) 14:32:33.73ID:zlGf24tO0 >>785
競技プログラミングでそんなひねくれた回答に何の意味があるの?
知らんけどとんち問題じゃないんだから実行時間2sメモリ976MBという制限で作れてるのか、出来てなかったら減点とかそういう感じでしょ
競技プログラミングでそんなひねくれた回答に何の意味があるの?
知らんけどとんち問題じゃないんだから実行時間2sメモリ976MBという制限で作れてるのか、出来てなかったら減点とかそういう感じでしょ
788デフォルトの名無しさん (ワッチョイ 8f7c-QclQ)
2021/02/25(木) 14:45:28.54ID:lgRHqN3Y0 解法を自然言語で書き下しただけなのに対してひねくれた回答ってどういうことだ
789デフォルトの名無しさん (ワッチョイ ffad-jt1D)
2021/02/25(木) 14:48:23.79ID:Odue14P30 競技プログラミングって
そういうやつなのか
そういうやつなのか
790デフォルトの名無しさん (ワッチョイ 232d-WTU+)
2021/02/25(木) 14:56:27.68ID:lnJvnVl60 処理時間短縮のために工夫したアルゴリズムを文章で書いただけじゃん
捻くれたと捉える方がどうかしてる
捻くれたと捉える方がどうかしてる
791デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2021/02/25(木) 15:06:03.06ID:cAbWQIRq0 >>787
競技プログラミングってある種のとんち問題だぞ
競技プログラミングってある種のとんち問題だぞ
792デフォルトの名無しさん (ワッチョイ ff63-bUHw)
2021/02/25(木) 15:24:52.06ID:A477YYD30 競技プログラミングって問題文を読み解きいかに計算量を少なくする解法を見つけるかに特化した問題が多い
プログラミング知識より数学的知識やひらめきのほうが重要なこと多い
大抵の問題はメモリも処理速度も大して必要とせずに数秒以内で解けるような解法が存在してる
プログラミング知識より数学的知識やひらめきのほうが重要なこと多い
大抵の問題はメモリも処理速度も大して必要とせずに数秒以内で解けるような解法が存在してる
793デフォルトの名無しさん (ワッチョイ ff5d-3/4o)
2021/02/25(木) 16:05:21.75ID:WNWuE6ey0 若いなあ
794デフォルトの名無しさん (ワッチョイ 6f62-y4gS)
2021/02/25(木) 17:09:26.66ID:zlGf24tO0 プログラミング技術を競うものかと思ってたけど関係ないのも多いんだな
まあ今回の問題がそうだったって感じなのかもしれないけど数値設定がやってくれと言わんばかりにおかしいもんな
まあ今回の問題がそうだったって感じなのかもしれないけど数値設定がやってくれと言わんばかりにおかしいもんな
795デフォルトの名無しさん (ワッチョイ a324-wc/N)
2021/02/25(木) 17:23:13.48ID:Kp+Bp4Dl0 ちゃんとインプットのチェックロジックを作れば初っ端に気付ける事なんだよ
pow(10, 18)はqword範囲内なのに対して1以外の文字長は最小の2だとしても余裕で範囲外だからな
pow(10, 18)はqword範囲内なのに対して1以外の文字長は最小の2だとしても余裕で範囲外だからな
796デフォルトの名無しさん (ワッチョイ cf2d-pQAD)
2021/02/25(木) 17:30:29.82ID:BkBvtXEC0797デフォルトの名無しさん (ワッチョイ 6f62-y4gS)
2021/02/25(木) 17:46:07.28ID:zlGf24tO0798デフォルトの名無しさん (ワッチョイ a324-wc/N)
2021/02/25(木) 18:28:40.93ID:Kp+Bp4Dl0 >>797
だからこそ標準入力から渡された桁数指定であるKが10^18以下であるかのチェック構文をちゃんと書けばその時点で気付けるって話
781のコードはそれが書かれてないから「Kは10^18以下」っていう制約自体を見逃してるんだろうな
だからこそ標準入力から渡された桁数指定であるKが10^18以下であるかのチェック構文をちゃんと書けばその時点で気付けるって話
781のコードはそれが書かれてないから「Kは10^18以下」っていう制約自体を見逃してるんだろうな
799デフォルトの名無しさん (エムゾネ FF1f-pQAD)
2021/02/25(木) 18:53:48.04ID:rcOltu0HF >>789
競プロっていわゆる普通のプログラミングとか数学とかとは別の世界だと思う
競プロっていわゆる普通のプログラミングとか数学とかとは別の世界だと思う
800デフォルトの名無しさん (アウアウウー Sae7-pQAD)
2021/02/25(木) 19:05:19.81ID:mcXAAtHya >>796
どっちもケースもちゃんと1を出力するよ
可読性重視で冗長に書いたけど合ってるんじゃないかな?
知らんけど。
非OOPで短く書き直すとこう
https://ideone.com/f58hKP
どっちもケースもちゃんと1を出力するよ
可読性重視で冗長に書いたけど合ってるんじゃないかな?
知らんけど。
非OOPで短く書き直すとこう
https://ideone.com/f58hKP
801デフォルトの名無しさん (ワッチョイ ffe6-0TpN)
2021/02/25(木) 19:49:45.24ID:BqNXMQx70 新聞紙を100回折りたたむと厚みが宇宙と同じぐらいになるって奴ね
802デフォルトの名無しさん (ワッチョイ b302-lut+)
2021/02/25(木) 20:05:35.05ID:84+MX2N/0 >>785
おまえアタマいいな。
自分は3分考えて分からなかった。
792 の言うようにひらめきの世界だわ。
3分の間にアタマに引っかかっていたところに手が届いてれば正解に行き着いてたかも、とか 785 を読んで思いましたまる
おまえアタマいいな。
自分は3分考えて分からなかった。
792 の言うようにひらめきの世界だわ。
3分の間にアタマに引っかかっていたところに手が届いてれば正解に行き着いてたかも、とか 785 を読んで思いましたまる
803デフォルトの名無しさん (ワッチョイ ff01-pEhb)
2021/02/25(木) 21:52:33.13ID:cAbWQIRq0 Math.Pow(2, 5e15)はInfinityになって計算できてないの気持ち悪いな
Kが10 ^ 19まで広がると日付次第ではバグる
Kが10 ^ 19まで広がると日付次第ではバグる
804デフォルトの名無しさん (アウアウウー Sae7-pQAD)
2021/02/25(木) 22:02:36.79ID:OCB2UzGya あーなるほどそういう問題なのね
まったく気づかなかったw
冷静に数字見りゃそりゃそうだよね
こんなスレでそんなひねくれた問題が出てくると夢にも思ってないし
まったく気づかなかったw
冷静に数字見りゃそりゃそうだよね
こんなスレでそんなひねくれた問題が出てくると夢にも思ってないし
805デフォルトの名無しさん (ワッチョイ 6f02-oL1e)
2021/02/26(金) 15:03:06.02ID:JTr0u2pq0 Benchmark.netにてAllocatedのサイズは見れるんですが、何のオブジェクトかの内訳詳細は見れないんでしょうか?
806デフォルトの名無しさん (ワッチョイ cedf-zMIR)
2021/03/03(水) 21:31:29.25ID:GRpGW1SM0 closedxml初めて触ったけどすごいね
エクセル操作プログラミングで毎回うんざりしてたのがウソみたいに快適
gasのスプレッドシート制御と同じような感覚で書けるしusingも使える
エクセル操作プログラミングで毎回うんざりしてたのがウソみたいに快適
gasのスプレッドシート制御と同じような感覚で書けるしusingも使える
807デフォルトの名無しさん (ワッチョイ 4e02-CIDx)
2021/03/04(木) 12:19:55.97ID:RGW+RZMQ0 以下のような2つの構造体リストを重複除外して結合したいのですがどうすれば良いでしょうか。
Unionをすると重複したまま結合されてしまうので困っています。
public struct Menber
{
/// <summary>
/// 部署
/// </summary>
public int Id;
/// <summary>
/// 名前
/// </summary>
public string Name;
}
List<Menber> list1
list[0].id = 1
list[0].Name = 田中
List<Menber> list2
list[0].id = 1
list[0].Name = 鈴木
list[1].id = 1
list[1].Name = 田中
list[2].id = 2
list[2].Name = 吉田
Unionをすると重複したまま結合されてしまうので困っています。
public struct Menber
{
/// <summary>
/// 部署
/// </summary>
public int Id;
/// <summary>
/// 名前
/// </summary>
public string Name;
}
List<Menber> list1
list[0].id = 1
list[0].Name = 田中
List<Menber> list2
list[0].id = 1
list[0].Name = 鈴木
list[1].id = 1
list[1].Name = 田中
list[2].id = 2
list[2].Name = 吉田
808デフォルトの名無しさん (アウアウウー Sa2f-CIDx)
2021/03/04(木) 12:41:03.43ID:7LtyX+sHa >>807
Unionのドキュメントぐらい読もうよ。
IEquatable<T>を実装しろって書いてあるでしょ
構造体の場合はEqualsは全フィールドとプロパティが等価なら
trueを返すように自動実装されるはずだと思ったけど、UnionはEqualsの方は
使ってくれないんでしょうたぶん。
知らんけど。
Unionのドキュメントぐらい読もうよ。
IEquatable<T>を実装しろって書いてあるでしょ
構造体の場合はEqualsは全フィールドとプロパティが等価なら
trueを返すように自動実装されるはずだと思ったけど、UnionはEqualsの方は
使ってくれないんでしょうたぶん。
知らんけど。
809デフォルトの名無しさん (ブーイモ MM4f-5nx2)
2021/03/04(木) 14:28:31.44ID:JHtiE7pvM デフォルト実装で特に問題無いけどな
https://dotnetfiddle.net/UIfYBX
https://dotnetfiddle.net/UIfYBX
810デフォルトの名無しさん (ワッチョイ 9f33-nEX7)
2021/03/04(木) 18:58:02.93ID:wo0nxJ5c0 >>809
だよな。騙されてるんだよ、相手するだけ無駄。
だよな。騙されてるんだよ、相手するだけ無駄。
811デフォルトの名無しさん (ワッチョイ fb5f-/obZ)
2021/03/06(土) 02:12:29.40ID:t6oqPQ7k0 なんか久しぶりにc#に戻ってきたら
public int GetIntVal
{
get => _intVal;
}
とかプロパティの取得に=>とか使ってて意味がわからなかった
この手の構文って今から憶えるとしたらどこのサイトを見たらいいでしょう
public int GetIntVal
{
get => _intVal;
}
とかプロパティの取得に=>とか使ってて意味がわからなかった
この手の構文って今から憶えるとしたらどこのサイトを見たらいいでしょう
812デフォルトの名無しさん (テテンテンテン MM7f-3iqd)
2021/03/06(土) 02:24:50.57ID:+wsnPdhjM MSのリファレンス
813デフォルトの名無しさん (スフッ Sdbf-6rSs)
2021/03/06(土) 11:37:07.78ID:3bUl0e7xd >>811
c# ラムダ式でググれ
c# ラムダ式でググれ
814デフォルトの名無しさん (テテンテンテン MM7f-3iqd)
2021/03/06(土) 11:52:26.43ID:+wsnPdhjM public int IntVal => _intVal; の形式はよく使うけど、>>811の形式は個人的には嫌いだな
811の形式はgetだけなら冗長なだけなのでsetアクセサを書く必要のある場合のみ意味があるわけだが、
setは副作用そのものなのでexpression bodied syntaxで書くのはあまり良くないと思う
811の形式はgetだけなら冗長なだけなのでsetアクセサを書く必要のある場合のみ意味があるわけだが、
setは副作用そのものなのでexpression bodied syntaxで書くのはあまり良くないと思う
815デフォルトの名無しさん (スプッッ Sdbf-FSd8)
2021/03/06(土) 14:22:19.93ID:JTkugHrDd 構文調べんじゃなくてまずバージョンアップの変更点一通り見てきなよ
まずはそこからだろ
まずはそこからだろ
816デフォルトの名無しさん (ワッチョイ 9f42-/obZ)
2021/03/06(土) 14:55:39.29ID:NkI+ANJT0 https://ufcpp.net/study/csharp/
バージョンごとの新機能はここに纏めてあるから、ダラダラ見てみるといいよ
バージョンごとの新機能はここに纏めてあるから、ダラダラ見てみるといいよ
817デフォルトの名無しさん (ワッチョイ 7b54-4Vw4)
2021/03/06(土) 15:23:05.91ID:F0Z1/6ce0 Class class = new();
が地味に便利。
が地味に便利。
818デフォルトの名無しさん (スププ Sdbf-v0L1)
2021/03/06(土) 16:05:50.67ID:2Vsiq+bMd ラムダ式は初見で何じゃコリャって思ったけど、今じゃガンガン使ってる。
あっさりコーディングできていいね。
あっさりコーディングできていいね。
819デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/06(土) 16:12:37.53ID:WRKHF19V0 >>818
慣れると分かりやすいよね
慣れると分かりやすいよね
820デフォルトの名無しさん (ワッチョイ efda-9sU8)
2021/03/06(土) 18:54:57.52ID:NwqNYXOS0 var hoge = new();
で、俺様が何をインスタンス化したいか的確に判断してコンパイルしてくれるAIできないかな
で、俺様が何をインスタンス化したいか的確に判断してコンパイルしてくれるAIできないかな
821デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/06(土) 19:04:15.77ID:WRKHF19V0 >>820
それ出来たとしてもお前がインスタンス化しようと思ったものが正しいとは限らんから結局バグるだけやぞw
それ出来たとしてもお前がインスタンス化しようと思ったものが正しいとは限らんから結局バグるだけやぞw
822デフォルトの名無しさん (ワッチョイ 0fbb-r5bj)
2021/03/06(土) 19:19:09.69ID:eoDpywBc0 >>821
その時はすぐに別のものを思うんだよ!
その時はすぐに別のものを思うんだよ!
823デフォルトの名無しさん (ワッチョイ fb5f-/obZ)
2021/03/06(土) 19:56:18.42ID:t6oqPQ7k0 思考をホットリロードするの?
また新しいUSBガジェット買わないとならないじゃん
また新しいUSBガジェット買わないとならないじゃん
824デフォルトの名無しさん (ワッチョイ 9f63-+f/l)
2021/03/06(土) 20:22:48.44ID:wbV88shF0 そんなとこまで読み取ってくれるならもうコードすら書かなくて良いようにして欲しい
825デフォルトの名無しさん (ワッチョイ efda-9sU8)
2021/03/06(土) 21:26:52.61ID:NwqNYXOS0 ObservableCollection<LongLongClassName>
とか
ConcurrentDictionary<Guid, ConcurrentDictionary<Guid, DeviceInfo>>
とか
見ただけで吐き気してくる宣言。
なげぇんだよ
とか
ConcurrentDictionary<Guid, ConcurrentDictionary<Guid, DeviceInfo>>
とか
見ただけで吐き気してくる宣言。
なげぇんだよ
826デフォルトの名無しさん (スププ Sdbf-GioG)
2021/03/06(土) 21:55:10.56ID:c0Nk1tFyd ReadOnlyReactivePropertySlim<List<string>>
827デフォルトの名無しさん (ワッチョイ 9f01-AHxu)
2021/03/06(土) 22:44:49.40ID:iEqPiFd00 type alias使えば?
828デフォルトの名無しさん (ワッチョイ 0fb5-FlFm)
2021/03/06(土) 22:51:05.76ID:zakmvXbT0 INotifyCollectionChangedとか
BuildinglistCollectionViewとか
FrameworkContentElementとか
PolyQuadraticBezierSegmentとかな ←最長ぢゃねーか?
ObservableCollectionはクソいっぱい使ってるんでなんとかしてほしいわ
BuildinglistCollectionViewとか
FrameworkContentElementとか
PolyQuadraticBezierSegmentとかな ←最長ぢゃねーか?
ObservableCollectionはクソいっぱい使ってるんでなんとかしてほしいわ
829デフォルトの名無しさん (ワッチョイ 0fb5-FlFm)
2021/03/06(土) 22:58:22.18ID:zakmvXbT0830デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/06(土) 23:04:01.25ID:WRKHF19V0 辞書にストーリー求めるバカw
831デフォルトの名無しさん (ワッチョイ 9f42-/obZ)
2021/03/06(土) 23:04:24.81ID:NkI+ANJT0 BindingOperations.EnableCollectionSynchronization
832デフォルトの名無しさん (ワッチョイ 0fb5-FlFm)
2021/03/06(土) 23:13:02.08ID:zakmvXbT0833デフォルトの名無しさん (ワッチョイ 4fdf-OKNI)
2021/03/06(土) 23:26:27.18ID:RvUIQ/dU0 別にリファレンス読めって人もMSのリファレンスが読みやすいとは言ってないぞ
834デフォルトの名無しさん (スププ Sdbf-v0L1)
2021/03/06(土) 23:50:16.20ID:2Vsiq+bMd 空白やアンダーバーで区切らないPascal形式だから余計に見づらいよね。
835デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/06(土) 23:58:57.56ID:d/Tm++Xea >>834
好みの問題と言えばそれまでだけど個人的には
Pascal形式が一番相対的にマシだと思うし、だから
比較的若い言語であるC#の文化では標準になってるんだと思う。
しかし、いつもの交通整理の人仕事しろよ。
いつまでこの状態を放っておくの?
やっぱり自分で自分に文句は言えないってご都合主義な事情かねw
好みの問題と言えばそれまでだけど個人的には
Pascal形式が一番相対的にマシだと思うし、だから
比較的若い言語であるC#の文化では標準になってるんだと思う。
しかし、いつもの交通整理の人仕事しろよ。
いつまでこの状態を放っておくの?
やっぱり自分で自分に文句は言えないってご都合主義な事情かねw
836デフォルトの名無しさん (ワッチョイ 7b6e-xiWk)
2021/03/07(日) 07:51:51.56ID:m48VQs8o0 高い知識を持っている技術者や学者さんが
人に文章として伝える(分からない人に分かるように伝える)技術が高いとは限らない
むしろそれが下手な人が多いので、情報系の大学の講義はほにょつまらんしわかりづらい
別の仕事につきながら片手間に独学で勉強したあとに
学生時代のテキストや講義資料みると
いまじゃ簡単なことが、どんだけわかりづらい教え方してるんだろうと思った
いい先生がいればその頃からプログラムが楽しくて好きになってたんだろうなと
人に文章として伝える(分からない人に分かるように伝える)技術が高いとは限らない
むしろそれが下手な人が多いので、情報系の大学の講義はほにょつまらんしわかりづらい
別の仕事につきながら片手間に独学で勉強したあとに
学生時代のテキストや講義資料みると
いまじゃ簡単なことが、どんだけわかりづらい教え方してるんだろうと思った
いい先生がいればその頃からプログラムが楽しくて好きになってたんだろうなと
837デフォルトの名無しさん (ワッチョイ fb02-zlPp)
2021/03/07(日) 10:53:06.62ID:viNH5wsJ0 製造の人員に限ってみれば、分かりやすい(日本語の)文章を書けない人が、キレイなコードを書けるとも思えないんだけどね。
コードは機械に対する指示書だから、そう見ると「(人に対する)分かりやすい文章」との共通点は多い。
あと、教師の教え方についても、特定の人に分かりやすい教え方が万人に対してそうとも限らない。
自分の場合は振り返ってみれば開発環境が違うけど C のポインタはテキストを読んでもさっぱり分からなかった。
けどいつの間にか分かるようになってた。
分かるようになった後は「いまじゃ簡単なことが」なんで分からなかったのか分からない状態で、今も分からない。
ある意味での概念的な関門があるんだろうな、とか思う。「自転車に乗る」ってのとどこか似てるような気もしなくもない。
コードは機械に対する指示書だから、そう見ると「(人に対する)分かりやすい文章」との共通点は多い。
あと、教師の教え方についても、特定の人に分かりやすい教え方が万人に対してそうとも限らない。
自分の場合は振り返ってみれば開発環境が違うけど C のポインタはテキストを読んでもさっぱり分からなかった。
けどいつの間にか分かるようになってた。
分かるようになった後は「いまじゃ簡単なことが」なんで分からなかったのか分からない状態で、今も分からない。
ある意味での概念的な関門があるんだろうな、とか思う。「自転車に乗る」ってのとどこか似てるような気もしなくもない。
838デフォルトの名無しさん (ワッチョイ cb24-Wv4Y)
2021/03/07(日) 10:58:07.46ID:RNKpyeef0 それを突き詰めると日本語って欠陥言語じゃね?という結論に行き着くんだけどな
ポインタが難しいってのもカタカナ英語だからってだけの理由だから
ポインタが難しいってのもカタカナ英語だからってだけの理由だから
839デフォルトの名無しさん (アウアウエー Sa3f-gdNk)
2021/03/07(日) 11:11:35.58ID:N1SdY6iGa コードと自然言語は別物だよ
自然言語には関数がない
自然言語には関数がない
840デフォルトの名無しさん (ワッチョイ 1f52-e875)
2021/03/07(日) 12:32:34.07ID:LoC/rHxp0 >>838
その難しい理由ってお前さんがそう感じただけで別の人にとっては別の理由があるだろう
その難しい理由ってお前さんがそう感じただけで別の人にとっては別の理由があるだろう
841デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/07(日) 12:37:54.55ID:Fyhrh8y5a842デフォルトの名無しさん (アウアウエー Sa3f-gdNk)
2021/03/07(日) 13:24:35.77ID:N1SdY6iGa >>841
自然言語が達者な(しかし数理に弱い)人って、手続き型プログラミングの方向に進んじゃうんだよ
しかもどういうわけかみんな1つのルーチンを長く書きたがる
冗長な長文に慣れてる&関数を使わないで生きてきたから癖になってるんだと思う
意味があるなら1行でも関数にするなんてタイプはめったに居ない
自然言語が達者な(しかし数理に弱い)人って、手続き型プログラミングの方向に進んじゃうんだよ
しかもどういうわけかみんな1つのルーチンを長く書きたがる
冗長な長文に慣れてる&関数を使わないで生きてきたから癖になってるんだと思う
意味があるなら1行でも関数にするなんてタイプはめったに居ない
843デフォルトの名無しさん (ワッチョイ 9fad-XCuL)
2021/03/07(日) 13:55:29.41ID:c6XRgyJU0 リファレンスの理解力上がると無敵なんだよなあ
844デフォルトの名無しさん (ワッチョイ 4fdf-OKNI)
2021/03/07(日) 15:31:20.66ID:1wgjEUZz0 関係ないけど実装工程を製造って呼ぶ文化、アタシ嫌い
845デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/07(日) 15:36:58.40ID:dfvBReb20846デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/07(日) 15:39:52.85ID:dfvBReb20 大した理由もなく企業文化に文句付けるやつ客先で滅茶苦茶印象悪いから発言に気をつけろよ
847デフォルトの名無しさん (ワッチョイ 9f01-AHxu)
2021/03/07(日) 15:55:22.31ID:RWgRWesX0 >>837
コードは機械に対する指示を機械が理解可能な範囲内で
人間とってできるだけ分かりやすいように書くもの
読み手として意識するのは機械じゃなく人間
だから自然言語で論理的な文章を書く力とかなり部分が共通なのは当然
コードは機械に対する指示を機械が理解可能な範囲内で
人間とってできるだけ分かりやすいように書くもの
読み手として意識するのは機械じゃなく人間
だから自然言語で論理的な文章を書く力とかなり部分が共通なのは当然
848デフォルトの名無しさん (ワッチョイ 8b93-UoQD)
2021/03/07(日) 16:01:59.94ID:TNmQ0Vam0 滅茶苦茶印象悪いから気を付けて頂きたく。
849デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/07(日) 16:08:44.22ID:FZPehcc/0850デフォルトの名無しさん (ワッチョイ 9f01-u5b1)
2021/03/07(日) 16:12:50.50ID:FZPehcc/0851デフォルトの名無しさん (ブーイモ MM7f-5Nd/)
2021/03/07(日) 16:22:51.53ID:hFyVV8HRM >>844
現実を見ろよ。実装なんざ仕様書をプログラミング言語に置換しているだけだろ。製造って銘打ってもらえるだけありがたい。
現実を見ろよ。実装なんざ仕様書をプログラミング言語に置換しているだけだろ。製造って銘打ってもらえるだけありがたい。
852デフォルトの名無しさん (ワッチョイ cbad-ojga)
2021/03/07(日) 16:32:47.46ID:j7St4ggd0 建設仮勘定たてるために原価計算ちゃんとしようとしたら、製造以外に入れようがないんじゃないの?
853デフォルトの名無しさん (アウアウエー Sa3f-gdNk)
2021/03/07(日) 16:35:46.28ID:N1SdY6iGa854デフォルトの名無しさん (ワッチョイ 9f7c-6rSs)
2021/03/07(日) 16:36:35.91ID:Htr3Z/NJ0855デフォルトの名無しさん (ワッチョイ cb24-Wv4Y)
2021/03/07(日) 16:41:10.88ID:RNKpyeef0 日本人ちゃうなら何人なんだよ
856デフォルトの名無しさん (ワッチョイ cb7b-NDfE)
2021/03/07(日) 16:42:46.48ID:DjMbSgMb0 何でスレ違いなのにこのスレに書き込まなきゃならないんだろう
義務感でもあるの?
義務感でもあるの?
857デフォルトの名無しさん (ワッチョイ cbad-ojga)
2021/03/07(日) 16:52:12.98ID:j7St4ggd0858デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 17:03:50.83ID:lpPFFuHs0 C#.NETの質問ですが
System.Web.Helpers
を参照しないといけないという情報までは辿り付きましたが
参照しようと検索しても出てきません(一覧にない)。どうすればいいんでしょうか?
System.Web.Helpers
を参照しないといけないという情報までは辿り付きましたが
参照しようと検索しても出てきません(一覧にない)。どうすればいいんでしょうか?
859デフォルトの名無しさん (ワッチョイ cb7b-NDfE)
2021/03/07(日) 17:24:03.46ID:DjMbSgMb0860デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 17:26:58.17ID:lpPFFuHs0861デフォルトの名無しさん (ワッチョイ df2d-mwmJ)
2021/03/07(日) 18:48:35.44ID:kXP4cZZ90 C# というか ASP の質問かもしれないのですが、
public class HiddenFieldEx : System.Web.UI.WebControls.HiddenField
{
public string TextEx { get => (string)this.ViewState["TextEx"]; set => this.ViewState["TextEx"] = value; }
}
こういうの作りました。
普通にフォームに貼る分にはいいのですが、GridView の ItemTemplate のところに配置し
GridView.RowCreated あたりで TextEx を設定したとき
PostBack すると TextEx が消えてしまいます。
ViewState に保存してるつもりなのですが、
GridView の ItemTemplate でも大丈夫にするには特殊なことが必要なのでしょうか。
public class HiddenFieldEx : System.Web.UI.WebControls.HiddenField
{
public string TextEx { get => (string)this.ViewState["TextEx"]; set => this.ViewState["TextEx"] = value; }
}
こういうの作りました。
普通にフォームに貼る分にはいいのですが、GridView の ItemTemplate のところに配置し
GridView.RowCreated あたりで TextEx を設定したとき
PostBack すると TextEx が消えてしまいます。
ViewState に保存してるつもりなのですが、
GridView の ItemTemplate でも大丈夫にするには特殊なことが必要なのでしょうか。
862デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 19:15:16.87ID:lpPFFuHs0 これを実行してボタンクリックすると処理が返って来ず固まります。
ちゃんと動かすにはどうしたらいいでしょう?
async System.Threading.Tasks.Task<string> Get(){
return await webView2.CoreWebView2.ExecuteScriptAsync("test");
}
private void Button_Click(object sender,EventArgs e) {
var task = this.Get();
System.Diagnostics.Debug.WriteLine(task.Result);
}
ちゃんと動かすにはどうしたらいいでしょう?
async System.Threading.Tasks.Task<string> Get(){
return await webView2.CoreWebView2.ExecuteScriptAsync("test");
}
private void Button_Click(object sender,EventArgs e) {
var task = this.Get();
System.Diagnostics.Debug.WriteLine(task.Result);
}
863デフォルトの名無しさん (ワッチョイ 0f2c-yd4z)
2021/03/07(日) 20:05:28.07ID:8OuV17PR0 var result = await this.Get();
System.Diagnostics.Debug.WriteLine(result);
System.Diagnostics.Debug.WriteLine(result);
864デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 20:51:26.38ID:lpPFFuHs0 >>863
Get()からのstringの戻り値を受け取るにはどうすればいいんでしょうか?
Get()からのstringの戻り値を受け取るにはどうすればいいんでしょうか?
865デフォルトの名無しさん (ワッチョイ 7b6e-xiWk)
2021/03/07(日) 20:58:22.56ID:m48VQs8o0866デフォルトの名無しさん (ワッチョイ 4b2d-0RAh)
2021/03/07(日) 21:02:50.60ID:HvxUUjRD0867デフォルトの名無しさん (ワッチョイ 3b33-YXAD)
2021/03/07(日) 21:06:37.22ID:raVsxTVL0868デフォルトの名無しさん (ワッチョイ 9f01-AHxu)
2021/03/07(日) 21:19:02.70ID:RWgRWesX0 >>865
良いか悪いかは別として
それは可読性をどういう範囲で捉えるかの違いだな
読み手が理解しやすくするように伝え方を工夫することが
可読性を良くしようとすることに含まれないと考えたことはなかったわ
良いか悪いかは別として
それは可読性をどういう範囲で捉えるかの違いだな
読み手が理解しやすくするように伝え方を工夫することが
可読性を良くしようとすることに含まれないと考えたことはなかったわ
869デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 21:22:42.06ID:lpPFFuHs0 >>866-867
Debug.WriteLine()で表示しても以下のようになるんですが…
System.Threading.Tasks.Task`1[System.String]
取得した中身を表示できないんでしょうか?
Debug.WriteLine()で表示しても以下のようになるんですが…
System.Threading.Tasks.Task`1[System.String]
取得した中身を表示できないんでしょうか?
870デフォルトの名無しさん (ワッチョイ fbad-8+U4)
2021/03/07(日) 21:28:21.66ID:HR+EwL2z0 だからawait
871デフォルトの名無しさん (ワッチョイ 9f42-/obZ)
2021/03/07(日) 21:34:04.57ID:KHBonaWT0 private async void Button_Click(object sender,EventArgs e) {
var result = await webView2.CoreWebView2.ExecuteScriptAsync("test");
System.Diagnostics.Debug.WriteLine(result);
}
ポイントは1行目にasync
var result = await webView2.CoreWebView2.ExecuteScriptAsync("test");
System.Diagnostics.Debug.WriteLine(result);
}
ポイントは1行目にasync
872デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 21:48:02.10ID:lpPFFuHs0 >>870-871
そこに書けば表示できるんですね。
出来れば分けて書きたかったのですがこれでいきます。
async、await、の使い方がよくわかってないので
ちゃんと勉強します。ありがとうございました。
そこに書けば表示できるんですね。
出来れば分けて書きたかったのですがこれでいきます。
async、await、の使い方がよくわかってないので
ちゃんと勉強します。ありがとうございました。
873デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 22:13:34.28ID:lpPFFuHs0 >>871
これ戻り値決まってるメソッドの場合、どうすればいいでしょうかね。
これ戻り値決まってるメソッドの場合、どうすればいいでしょうかね。
874デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/07(日) 23:07:47.45ID:hG4ECmLc0 戻り値が決まっているメソッドとは?
具体的なコードを出してくれないと分からん
具体的なコードを出してくれないと分からん
875デフォルトの名無しさん (ワッチョイ ab01-YXAD)
2021/03/07(日) 23:13:32.78ID:/i694rT30 こんなカンジかな?
public string SayYes(string question){
return "Yes";
}
public string SayYes(string question){
return "Yes";
}
876デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/07(日) 23:33:44.48ID:lpPFFuHs0877デフォルトの名無しさん (ワッチョイ fb02-zlPp)
2021/03/07(日) 23:42:39.88ID:viNH5wsJ0 とりあえず、落ち着け。
878デフォルトの名無しさん (ワッチョイ ab01-YXAD)
2021/03/07(日) 23:43:28.55ID:/i694rT30879デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/07(日) 23:53:49.57ID:hG4ECmLc0 意味わからんがとりあえずasync await を使わないコードを書いてくれ
まずはそこから
まずはそこから
880デフォルトの名無しさん (ワッチョイ 4b2d-0RAh)
2021/03/08(月) 00:00:47.06ID:2O4m7huW0 >>876
やりたいことが良く分からないけれど
Task.Run()を使えば良いんじゃないかな。
var result = await Task.Run( () => SayYes( "hoge" ) );
やりたいことが良く分からないけれど
Task.Run()を使えば良いんじゃないかな。
var result = await Task.Run( () => SayYes( "hoge" ) );
881デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 00:21:38.35ID:qzvxIX+G0 >>878
上手く言えてなくてすみません。
既に定義された形のメソッドを渡す必要があって
戻り値の型を変えられないんです。変えられるかもしれないけど他人が書いた部分なので弄りたくない感じです。
その場合は無理でしょうか?
上手く言えてなくてすみません。
既に定義された形のメソッドを渡す必要があって
戻り値の型を変えられないんです。変えられるかもしれないけど他人が書いた部分なので弄りたくない感じです。
その場合は無理でしょうか?
882デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 00:31:52.37ID:qzvxIX+G0883デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/08(月) 00:53:45.52ID:pnlhyJpZ0884デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/08(月) 01:01:23.25ID:8a53dPGk0885デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/08(月) 01:09:14.76ID:pnlhyJpZ0 asyncawait が前準備無しにドキュメントも無しに実装されているときは無意味な上に99.89%バグっているので安心してほしい
886デフォルトの名無しさん (ワッチョイ 9bc3-yEdm)
2021/03/08(月) 02:12:24.04ID:ZhwAN9h80887デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 04:11:09.12ID:qzvxIX+G0 >>883
これの一番最初にあるサンプルコードをコピペして
Form1_Load()から呼び出すと止まるのですが
これは当然の結果なのでしょうか?
void Form1_Load(object sender, EventArgs e)
{
var radius = 1.0;
var area = CalculateCircleAreaAsync(radius).Result;
}
static async Task<double> CalculateCircleAreaAsync(double radius)
{
var π = await Task.Run(() =>
{
Thread.Sleep(3000);
return Math.PI; // 級数展開などで円周率を計算したとする
});
return π * Math.Pow(radius, 2); // 円の面積
}
これの一番最初にあるサンプルコードをコピペして
Form1_Load()から呼び出すと止まるのですが
これは当然の結果なのでしょうか?
void Form1_Load(object sender, EventArgs e)
{
var radius = 1.0;
var area = CalculateCircleAreaAsync(radius).Result;
}
static async Task<double> CalculateCircleAreaAsync(double radius)
{
var π = await Task.Run(() =>
{
Thread.Sleep(3000);
return Math.PI; // 級数展開などで円周率を計算したとする
});
return π * Math.Pow(radius, 2); // 円の面積
}
888デフォルトの名無しさん (ワッチョイ efda-tl3b)
2021/03/08(月) 04:37:29.21ID:V3d7DsS+0 どこからコピペしたか詳しく
889デフォルトの名無しさん (ワッチョイ 3b33-YXAD)
2021/03/08(月) 08:35:47.21ID:lsfVgCLC0890デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/08(月) 08:55:46.45ID:pnlhyJpZ0 >>887
リンク先になくね?
リンク先になくね?
891デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 13:21:09.68ID:qzvxIX+G0 >>888-890
すみません。こっちでした。
https://www.atmarkit.co.jp/ait/articles/1211/02/news066.html
>>887みたいな感じでForm_Load()から呼び出したいんですけど
その場合はどうすればいいんでしょうか?
すみません。こっちでした。
https://www.atmarkit.co.jp/ait/articles/1211/02/news066.html
>>887みたいな感じでForm_Load()から呼び出したいんですけど
その場合はどうすればいいんでしょうか?
892デフォルトの名無しさん (ワッチョイ 4b2d-0RAh)
2021/03/08(月) 14:31:07.77ID:DDkttHUo0893デフォルトの名無しさん (ワッチョイ fb02-zlPp)
2021/03/08(月) 14:51:25.43ID:ZiVdiQxH0 まずは落ち着いて自分に宛てられたレスをきちんと理解するところから始めたら?
いくつかの質問にはすでに答えが付いてるよ。
いくつかの質問にはすでに答えが付いてるよ。
894デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 15:00:46.23ID:qzvxIX+G0895894 (ワッチョイ fb02-kkZq)
2021/03/08(月) 15:12:14.98ID:qzvxIX+G0 これってメソッドの戻り値の型を自分で指定したい場合は
Task<T>でラップしないといけないって解釈でいいですかね?
Task<T>でラップしないといけないって解釈でいいですかね?
896デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 15:30:58.68ID:qzvxIX+G0 webView2.CoreWebView2.ExecuteScriptAsync()
がTask<T>を受け取らないといけないせいで
既に戻り値を定義された色々なメソッドにも影響が出てしまって
どうにかそれらを全て書き換えるかしないといけないのが困ってる点ですね。
これどうにかならないんですかね?
がTask<T>を受け取らないといけないせいで
既に戻り値を定義された色々なメソッドにも影響が出てしまって
どうにかそれらを全て書き換えるかしないといけないのが困ってる点ですね。
これどうにかならないんですかね?
897894 (ワッチョイ fb02-kkZq)
2021/03/08(月) 16:02:08.72ID:qzvxIX+G0 しかもこれ自作クラスを戻り値にしてるメソッドだと
GetAwaiter()がないとかって怒られてそれも実装しないといけないみたいで凄い面倒で困る…
GetAwaiter()がないとかって怒られてそれも実装しないといけないみたいで凄い面倒で困る…
898デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 16:05:05.45ID:qzvxIX+G0 もう非同期とかいいので普通にこれでデータ取得できないもんなんですかね。
webView2.CoreWebView2.ExecuteScriptAsync()
非同期とかしなくていいんですよ。必要なら1分くらい待ってもいいので。
たったこれだけのことなのに凄い面倒だ。
webView2.CoreWebView2.ExecuteScriptAsync()
非同期とかしなくていいんですよ。必要なら1分くらい待ってもいいので。
たったこれだけのことなのに凄い面倒だ。
899デフォルトの名無しさん (ワッチョイ fb02-zlPp)
2021/03/08(月) 16:20:50.73ID:ZiVdiQxH0 まず落ち着いて自分に宛てられたレスを最初から読み直してみるといいんじゃないかな。
900デフォルトの名無しさん (アウアウエー Sa3f-gdNk)
2021/03/08(月) 16:31:12.58ID:cnxTx+zha task.ConfigureAwait(false).GetAwaiter().GetResult()
901デフォルトの名無しさん (ワッチョイ 9f42-/obZ)
2021/03/08(月) 16:47:22.57ID:R5ZHjmWC0 素直にasync/await対応したほうが建設的
悩んでいる時間で修正終わるわ
悩んでいる時間で修正終わるわ
902デフォルトの名無しさん (ワッチョイ 9f7c-/obZ)
2021/03/08(月) 18:11:10.07ID:c6FLXLbe0 このレベルだとこんな所で教えてもどうせ理解出来ない
903デフォルトの名無しさん (ワッチョイ 0f63-IW+M)
2021/03/08(月) 18:39:35.08ID:2YZIHCv70 今時めずらしいタイプだ
こういうのから金を巻き上げてその辺に棄てるのがスクールの役目のはず
こういうのから金を巻き上げてその辺に棄てるのがスクールの役目のはず
904デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 19:15:52.15ID:qzvxIX+G0905デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/08(月) 20:13:34.27ID:pnlhyJpZ0 使用者に非同期処理が必要ないのに非同期処理しか実装されてないクソライブラリはクソだからないのでクソとしか表現のしようがないんだぜ
そこはおk?
ああ、クソじゃん・・・
って話よ?
そこはおk?
ああ、クソじゃん・・・
って話よ?
906デフォルトの名無しさん (ワッチョイ 0fda-SsJe)
2021/03/08(月) 20:20:54.40ID:lWZwpqsv0 鶏糞と牛糞の詰め合わせでも送ってやろうか?
907デフォルトの名無しさん (ワッチョイ 3ba7-k3/Y)
2021/03/08(月) 20:21:12.62ID:pnlhyJpZ0 散々罵った挙げ句に同期処理が用意されてることがわかったときは死にたくなるぐらい恥ずかしいので気をつけるんだぜ
908デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/08(月) 20:54:37.86ID:qzvxIX+G0 >>907
どうやればいいんでしょうか?
どうやればいいんでしょうか?
909デフォルトの名無しさん (ワッチョイ 3b33-YXAD)
2021/03/08(月) 21:39:32.19ID:lsfVgCLC0 >>908
理解せず簡単に済ますなら900の方法か、
UIスレッドから新しいTaskを作って、そのタスク内で非同期メソッドの結果をawaitして、UIスレッドは作ったTaskのResultを取得すれば良い。
理解せず簡単に済ますなら900の方法か、
UIスレッドから新しいTaskを作って、そのタスク内で非同期メソッドの結果をawaitして、UIスレッドは作ったTaskのResultを取得すれば良い。
910デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/09(火) 02:15:52.82ID:Km1Y7VEG0 >>909
900さんの方法でもイケるんですね。ありがとうございます。
あとこんな風にやったら一応自分が求めてる感じにもなりました。
Invoke((MethodInvoker)(async () => {
var task = await func();
}));
900さんの方法でもイケるんですね。ありがとうございます。
あとこんな風にやったら一応自分が求めてる感じにもなりました。
Invoke((MethodInvoker)(async () => {
var task = await func();
}));
911デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 13:25:20.94ID:/HWklS3sa >>887
これ、今更だけど
var radius = 1.0;
Task<double> task = null;
Task.Run(() => task = CalculateCircleAreaAsync(radius)).Wait();
var area = task.Result;
じゃいかんのかな知らんけど。
しかし、非同期メソッドの結果をawaitせずに求めるなんて考えたこともなかったし、
一瞬そんなの簡単だろと思ったけど意外と面倒なのね。
というか非同期メソッドの戻り値は呼び出し元のスレッドで実行される自分自身になるのな。
っていうか、>>891の引用元のコードはバグ?
何年も前の記事なのに誰も突っ込んでないのかな
これ、今更だけど
var radius = 1.0;
Task<double> task = null;
Task.Run(() => task = CalculateCircleAreaAsync(radius)).Wait();
var area = task.Result;
じゃいかんのかな知らんけど。
しかし、非同期メソッドの結果をawaitせずに求めるなんて考えたこともなかったし、
一瞬そんなの簡単だろと思ったけど意外と面倒なのね。
というか非同期メソッドの戻り値は呼び出し元のスレッドで実行される自分自身になるのな。
っていうか、>>891の引用元のコードはバグ?
何年も前の記事なのに誰も突っ込んでないのかな
912デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/09(火) 14:04:19.73ID:G6YhpKjy0 引用元はコンソールアプリケーションだからな
913デフォルトの名無しさん (ワッチョイ ab01-YXAD)
2021/03/09(火) 19:16:54.66ID:v67EGRm00 独習C#でもコンソールアプリ以外だとデッドロックするコードが書いてあるからな。
914デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 21:21:04.94ID:mjd4ZCLWa コンソールかどうか関係ある?
コンソールだろうが何だろうが、「自分が宿題をやり終わるのを寝ながら待つ」子は
死ぬまで宿題完成しないでしょ。
コンソールだろうが何だろうが、「自分が宿題をやり終わるのを寝ながら待つ」子は
死ぬまで宿題完成しないでしょ。
915デフォルトの名無しさん (ワッチョイ 4b2d-0RAh)
2021/03/09(火) 21:25:50.24ID:zZk3I07S0916デフォルトの名無しさん (ワッチョイ ef62-FSd8)
2021/03/09(火) 21:40:53.62ID:G6YhpKjy0 なんでタスクで実行すればデッドロックが発生しないか理解してなさそう
こことか分かりやすく書いてくれてるから見てくるといい
ttps://chronoir.net/cs-async-await-taskrun/
こことか分かりやすく書いてくれてるから見てくるといい
ttps://chronoir.net/cs-async-await-taskrun/
917デフォルトの名無しさん (アウアウウー Sa0f-kkZq)
2021/03/09(火) 21:43:31.37ID:mjd4ZCLWa918デフォルトの名無しさん (ワッチョイ 9f7c-/obZ)
2021/03/09(火) 22:52:54.19ID:BIanm+fj0 そもそもTask型が帰ってくるのだから非同期前提だしなぁ
言わばスレッドで実行出来る形にしましたよという事なんだし
非同期だとスレッドセーフかどうかも本来なら問題になる事ではあるけど
言わばスレッドで実行出来る形にしましたよという事なんだし
非同期だとスレッドセーフかどうかも本来なら問題になる事ではあるけど
919デフォルトの名無しさん (ワッチョイ cb24-xiWk)
2021/03/10(水) 10:40:32.47ID:ayODL1B00 stackallocが使われてる関数ってAggressiveInlining属性付けてもインライン展開されないの?
920デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/11(木) 03:25:40.12ID:5JzLcMRo0 System.Web.Helpers.Json.Decode()これと同じ機能を持つのって他にないでしょうか?
使ってるとMaxJsonLength の値を超えています。とエラーがでる時があって。
使ってるとMaxJsonLength の値を超えています。とエラーがでる時があって。
921デフォルトの名無しさん (ワッチョイ fb5f-+xDJ)
2021/03/11(木) 12:01:38.32ID:YEgU3HLW0 Json.NET とか?
922デフォルトの名無しさん (ブーイモ MM8f-WiTX)
2021/03/11(木) 12:20:29.59ID:QyQtpTU4M >>920
MaxJsonLengthは設定で拡張可能
MaxJsonLengthは設定で拡張可能
923デフォルトの名無しさん (ワッチョイ fb02-kkZq)
2021/03/11(木) 16:20:05.07ID:5JzLcMRo0 921-922
ありがとうございます!
ありがとうございます!
924デフォルトの名無しさん (ワッチョイ 0bac-4pgk)
2021/03/11(木) 21:28:32.37ID:DBtckLkr0 いえいえ
925デフォルトの名無しさん (ワッチョイ a905-pfBZ)
2021/03/15(月) 11:36:48.53ID:hpWLXBIY0 C#でSocketIOサーバーを作りたいと思ったのですが、SocketIOのライブラリに思いっきりclientと書いてあるのでサーバーにはなれないんですかね?
926デフォルトの名無しさん (ワッチョイ 619b-IMun)
2021/03/15(月) 12:48:51.81ID:fhTxsYs40 表形式を扱うデータ構造といえばList<T>の入れ子、構造体、DataTableクラスとありますが
速度的に一番有利なのはどれでしょうか?
速度的に一番有利なのはどれでしょうか?
927デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/15(月) 12:57:13.67ID:qxmjw6qQa 二次元配列、ジャグ配列、その他の順番でしょう。
928デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/15(月) 13:14:39.26ID:dLPloTkj0 何をやるときの速度?
929デフォルトの名無しさん (ワッチョイ 619b-IMun)
2021/03/15(月) 13:19:09.67ID:fhTxsYs40 2つのテーブルから共通のコード番号を手掛かりに新しいテーブルを作る処理です
2次元配列が一番速いのですか
最初に件数をカウントしておく必要がありますね
2次元配列が一番速いのですか
最初に件数をカウントしておく必要がありますね
930デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/15(月) 13:25:10.25ID:dLPloTkj0931デフォルトの名無しさん (ワッチョイ c201-Ruah)
2021/03/15(月) 15:18:17.81ID:W4mhVG7e0 >>929
SQLのJoinアルゴリズムと考え方は同じなのでそういうの解説してるサイトをググればいいんじゃない
基本はSort Merge Join, Nested Loop Join, Hash Joinの3種類
SQLのJoinアルゴリズムと考え方は同じなのでそういうの解説してるサイトをググればいいんじゃない
基本はSort Merge Join, Nested Loop Join, Hash Joinの3種類
932デフォルトの名無しさん (ワッチョイ 8284-drwQ)
2021/03/16(火) 13:43:13.37ID:ClH9askc0 >>925
使ってないからリポジトリ眺めただけだけど、Socket.IOのサーバと接続するのに
手順を簡略化できるだけで、サーバは普通にWebサーバにjavascriptとかで
作れみたいだよ
https://github.com/doghappy/socket.io-client-csharp
使ってないからリポジトリ眺めただけだけど、Socket.IOのサーバと接続するのに
手順を簡略化できるだけで、サーバは普通にWebサーバにjavascriptとかで
作れみたいだよ
https://github.com/doghappy/socket.io-client-csharp
933デフォルトの名無しさん (ワッチョイ 7d5f-qwqs)
2021/03/16(火) 21:36:32.98ID:Wl/nKXCF0 float[] array_A = new float[] { 0.2, 0.4, 0.6 };
float[] array_B = new float[] { 0.4, 0.6, 0.8 };
List<float[]> hoge = new List<float[]> { array_A, array_B };
floatの配列を要素に持つリストhogeがあったとして、配列の対応する要素の平均を算出してリストを返すスマートな方法ってありますか?
LINQでうまいことやれそうな気がしたものの、やり方が分からず今はfor文でゴリ押してしまっています
最終的にこういうリストが返ってきて欲しいです
{ 0.3, 0.5, 0.7 };
float[] array_B = new float[] { 0.4, 0.6, 0.8 };
List<float[]> hoge = new List<float[]> { array_A, array_B };
floatの配列を要素に持つリストhogeがあったとして、配列の対応する要素の平均を算出してリストを返すスマートな方法ってありますか?
LINQでうまいことやれそうな気がしたものの、やり方が分からず今はfor文でゴリ押してしまっています
最終的にこういうリストが返ってきて欲しいです
{ 0.3, 0.5, 0.7 };
934デフォルトの名無しさん (ワッチョイ 8da7-ABek)
2021/03/16(火) 21:40:37.58ID:xlIBh31U0935デフォルトの名無しさん (ワッチョイ ee63-fwr7)
2021/03/16(火) 22:22:56.72ID:6arf77iJ0 Enumerable.zipでも使っとけ
936デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/17(水) 01:49:18.61ID:YSkJqwOsa Zipって上手いネーミングだよね関係ないけど
937デフォルトの名無しさん (ワッチョイ 82e4-pJz1)
2021/03/17(水) 21:54:38.73ID:96WF7Dou0 最近C#の勉強を始めて、オブジェクト指向に関して何となく分かったけどプログラムに落とし込むまでは理解出来ていません
手を動かさなきゃ身につかないと思うのですが練習になる例題などあったら教えて頂きたいです
手を動かさなきゃ身につかないと思うのですが練習になる例題などあったら教えて頂きたいです
938デフォルトの名無しさん (ワッチョイ f1ac-LiHY)
2021/03/17(水) 22:43:21.99ID:EwAVXU9r0 作りたいものがないのにプログラミング言語の学習を始めるってつらくない?
あと大きく分けてコンソールアプリ、Windowsとかのアプリ、Webアプリ(サイト)とかあるけど、
(多分コンソールが一番勉強するには素直に始められそうだけど)
どれがやりたいとかないの?
VS使えるならそれぞれプロジェクト作れば大体helloworldくらいまでは勝手に作ってくれるよ
あと大きく分けてコンソールアプリ、Windowsとかのアプリ、Webアプリ(サイト)とかあるけど、
(多分コンソールが一番勉強するには素直に始められそうだけど)
どれがやりたいとかないの?
VS使えるならそれぞれプロジェクト作れば大体helloworldくらいまでは勝手に作ってくれるよ
939デフォルトの名無しさん (ワッチョイ 4d33-Wsu4)
2021/03/17(水) 23:04:26.73ID:5t1i5SYf0 >>937
Unityとかだとオブジェクト指向を楽しく学べそう。
Unityとかだとオブジェクト指向を楽しく学べそう。
940デフォルトの名無しさん (ワッチョイ 2eda-8efn)
2021/03/17(水) 23:44:31.78ID:U0+PPwHU0941デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/18(木) 02:59:56.18ID:/DoLsZj+a >>937
ライブラリのクラスで比較的単純そうなのを
あえて車輪の再発明してみるとか。
例えばList<T>の簡易版を自分で作ってみる。
ただ、オブジェクト指向を習得したいという目標設定自体が
本当に意味があるかどうかは疑った方がいいかもしれないね。
以下個人の見解ですだけど、オブジェクト指向なんて別に
そんな難しい話じゃない。
机上で本読んでる時にはもやもやしてても
コード書いてる間に自然に府に落ちてくる類のものかもしれないよ。
少なくとも俺はそうだった。
ライブラリのクラスで比較的単純そうなのを
あえて車輪の再発明してみるとか。
例えばList<T>の簡易版を自分で作ってみる。
ただ、オブジェクト指向を習得したいという目標設定自体が
本当に意味があるかどうかは疑った方がいいかもしれないね。
以下個人の見解ですだけど、オブジェクト指向なんて別に
そんな難しい話じゃない。
机上で本読んでる時にはもやもやしてても
コード書いてる間に自然に府に落ちてくる類のものかもしれないよ。
少なくとも俺はそうだった。
942デフォルトの名無しさん (ワッチョイ 6124-BeTG)
2021/03/18(木) 15:19:17.41ID:9YUM+NUH0 ソースファイル数十くらいの規模からじゃないとオブジェクト指向は必要にならないから
初心者は暫くstaticマンとして修業するしかない
初心者は暫くstaticマンとして修業するしかない
943デフォルトの名無しさん (アウアウエー Sa8a-+gzz)
2021/03/18(木) 15:24:02.53ID:8benOtEXa えっ
メインだけならいらんけど
そうじゃないならオブジェクト指向したほうがいい
メインだけならいらんけど
そうじゃないならオブジェクト指向したほうがいい
944デフォルトの名無しさん (ワッチョイ ed42-IMun)
2021/03/18(木) 16:44:12.97ID:U1xZnkhE0 オブジェクト指向もカプセル化の恩恵は結構簡単に実感できるが
多態性のほうは有効な場面が可也少ない
多態性のほうは有効な場面が可也少ない
945デフォルトの名無しさん (ワッチョイ a973-mhyL)
2021/03/18(木) 21:08:28.76ID:e7yzUD160 オブジェクト指向の恩恵のほとんどはinterfaceだからなぁ。
自分で作ったのを他の人が使うようになって始めて、迂闊にクラスを参照させてはならない、
カプセル化していたとしても実装変えにくくなって詰みやすいと気づくわけで。
自分で作って自分だけで使ってる分には気づきにくい。
自分で作ったのを他の人が使うようになって始めて、迂闊にクラスを参照させてはならない、
カプセル化していたとしても実装変えにくくなって詰みやすいと気づくわけで。
自分で作って自分だけで使ってる分には気づきにくい。
946デフォルトの名無しさん (アウアウウー Sac5-YyH6)
2021/03/18(木) 22:34:39.09ID:6dHUIFjDa 何がオブジェクト指向の本質かについてはいろんな人がいろんなこと言ってる
(要するに定説がない)けど、個人的には多態はあくまで付随的な物であって本質じゃないと思う。
オブジェクト指向というかOOPの本質は文字通りオブジェクトという仮想機械をクラスという形で
ストレートにコードに表現できることだと思う。
それが正しいかどうかはともかく、初心者が最初に理解すべき考え方はこれ、
つまりクラスとは仮想機械を記述するものだということだと思う。
(要するに定説がない)けど、個人的には多態はあくまで付随的な物であって本質じゃないと思う。
オブジェクト指向というかOOPの本質は文字通りオブジェクトという仮想機械をクラスという形で
ストレートにコードに表現できることだと思う。
それが正しいかどうかはともかく、初心者が最初に理解すべき考え方はこれ、
つまりクラスとは仮想機械を記述するものだということだと思う。
947デフォルトの名無しさん (ワントンキン MMd3-EoOz)
2021/03/19(金) 00:55:17.23ID:ZleoXut0M 本来そんな小難しい話じゃなくて、プログラムを人間のメンタルモデルに合わせようというのがオブジェクト指向だよ
人間の感覚に合った設計は破綻しにくいという経験則というか仮説に基づいている
人間の感覚に合った設計は破綻しにくいという経験則というか仮説に基づいている
948デフォルトの名無しさん (ワッチョイ 5924-FrbH)
2021/03/19(金) 09:24:53.90ID:VtGgyeTV0 人間のメンタルモデルってか進化論モデルだよ
経験則どころか30億年以上の運用実績があるから信頼性が高い
経験則どころか30億年以上の運用実績があるから信頼性が高い
949デフォルトの名無しさん (ワッチョイ fbda-1L9j)
2021/03/19(金) 10:10:47.26ID:kWUqr5xc0 進化の過程においてミッシングリンクというものが存在しててな。
30億年かどうかは怪しい
30億年かどうかは怪しい
950デフォルトの名無しさん (ラクッペペ MMeb-UnMa)
2021/03/19(金) 10:20:02.87ID:fdf62zP+M 進化の法則が乱れる!
951デフォルトの名無しさん (ブーイモ MMcb-92UB)
2021/03/19(金) 10:30:15.00ID:B4QNkIexM オブジェクト指向とか正直よくわからんが
クラスは、ラムダの変数キャプチャを冗長化、明示化、理解容易化したもの、として考えるようになってから、すべてがうまく噛み合うようになった
クラスは、ラムダの変数キャプチャを冗長化、明示化、理解容易化したもの、として考えるようになってから、すべてがうまく噛み合うようになった
952デフォルトの名無しさん (アウアウウー Sa5d-Xoi0)
2021/03/19(金) 13:07:40.64ID:HbCpBKgza メンタルモデル(笑)とか進化論モデル(笑)とか言い出すと
昔のJava界隈みたいな胡散臭さが出てくるなw
昔のJava界隈みたいな胡散臭さが出てくるなw
953デフォルトの名無しさん (アウアウウー Sa5d-Xoi0)
2021/03/19(金) 13:18:48.59ID:HbCpBKgza まあ特定の機能を担う仮想的な装置(オブジェクト)に分割統治するのは
人間の脳というか認知能力の都合だというのはその通りだけどね。
繰り返しになるけど、重要なのはその「特定の機能を担う仮想的な装置」を
クラスで表現できることになったことなんだよね。
アルゴルズムの教科書に出てくるようなデータ構造はオブジェクト指向が提唱される前からあった。
画期的だったのは、それらをQueueとかDictionaryとか言ったまんまの名前を付けたクラスで書けるようになったこと。
人間の脳というか認知能力の都合だというのはその通りだけどね。
繰り返しになるけど、重要なのはその「特定の機能を担う仮想的な装置」を
クラスで表現できることになったことなんだよね。
アルゴルズムの教科書に出てくるようなデータ構造はオブジェクト指向が提唱される前からあった。
画期的だったのは、それらをQueueとかDictionaryとか言ったまんまの名前を付けたクラスで書けるようになったこと。
954デフォルトの名無しさん (ブーイモ MM4d-Rp6h)
2021/03/19(金) 13:31:05.56ID:Jtw21w2UM 昔あったJavaの月刊誌はやたら哲学用語を多用する記事とかあったな
955デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/19(金) 13:40:56.61ID:Oem/eeea0 ニューロマンサーっぽく解説して
956デフォルトの名無しさん (ワッチョイ 1142-4Ddi)
2021/03/19(金) 14:04:48.51ID:Qsi2J9ai0 世の中では「部品化」と言う、もう少し判りやすい言い方を使っているんじゃないかな
957デフォルトの名無しさん (テテンテンテン MMeb-V411)
2021/03/19(金) 14:05:45.45ID:pO9QgyHvM double[] real; double[] imag;でもってる値をComplex[] compへの変換を1行できれいに書けないでしょうか?
comp[0] = new Complex(real[0], imag[0])を配列に対して操作できればかけそうな気がするのですが、LINQとかで表現できますか?
comp[0] = new Complex(real[0], imag[0])を配列に対して操作できればかけそうな気がするのですが、LINQとかで表現できますか?
958デフォルトの名無しさん (ワッチョイ 992d-D9EE)
2021/03/19(金) 14:20:19.54ID:gG/OqDxy0 >>957
var comp = real.Zip( imag, ( r, i ) => new Complex( r, i ) ).ToArray();
var comp = real.Zip( imag, ( r, i ) => new Complex( r, i ) ).ToArray();
959デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2021/03/19(金) 14:25:33.56ID:ysVgQ22g0 >>956
部品が関数でもいいよね?
部品が関数でもいいよね?
960957 (テテンテンテン MMeb-V411)
2021/03/19(金) 14:28:10.86ID:pO9QgyHvM961デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/19(金) 21:21:23.14ID:vK2IShGtM ひょっとしなくても>>933のも
var hoge = array_A.Zip(array_B, (a, b) => new float[]{ a, b }).ToList()
でいけたのか
でもこれだったらちょっと冗長でも
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => new float[]{ a, b }).ToList()
って書きたいなあ
var hoge = array_A.Zip(array_B, (a, b) => new float[]{ a, b }).ToList()
でいけたのか
でもこれだったらちょっと冗長でも
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => new float[]{ a, b }).ToList()
って書きたいなあ
962デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/19(金) 21:30:14.38ID:vK2IShGtM あ間違えた
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => (a + b) / 2).ToList()
か
var hoge = Enumerable.Zip(array_A, array_B, (a, b) => (a + b) / 2).ToList()
か
963デフォルトの名無しさん (ワッチョイ d133-3UcT)
2021/03/19(金) 22:55:51.95ID:dz1o2wrK0 まだ間違ってる
964デフォルトの名無しさん (ワッチョイ 9389-jgaO)
2021/03/21(日) 08:33:37.34ID:O9O05/ov0 class OrderにはItemCodeとQuantityがあり、
List<Order> order1とorder2をまとめたいです
具体的にはItemCodeが同じならばQuantityを合計し、なければ新たに追加する、といった具合です
foreachを使えばできますが、Linqを使用して簡潔に書ける方法があれば教えてください
List<Order> order1とorder2をまとめたいです
具体的にはItemCodeが同じならばQuantityを合計し、なければ新たに追加する、といった具合です
foreachを使えばできますが、Linqを使用して簡潔に書ける方法があれば教えてください
965デフォルトの名無しさん (ブーイモ MMcb-vxZl)
2021/03/21(日) 09:25:40.37ID:ai+yXZclM ConcatしてitemCodeでGroupByしてSum
966デフォルトの名無しさん (アウアウクー MM05-jgaO)
2021/03/21(日) 12:14:40.89ID:hh+THzL2M967デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 18:29:47.64ID:O9O05/ov0 >>965
order1.Concat(order2).GroupBy(o => o.ItemCode).Select(x => new Order() {ItemCode = x.Key, Quantity = x.Sum(y => y.Quantity) });
こんな感じですか?
order1.Concat(order2).GroupBy(o => o.ItemCode).Select(x => new Order() {ItemCode = x.Key, Quantity = x.Sum(y => y.Quantity) });
こんな感じですか?
968デフォルトの名無しさん (ワッチョイ 4901-3UcT)
2021/03/21(日) 21:15:46.56ID:B8RMscJD0969デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/21(日) 21:28:25.98ID:rOmbGrT+0 え、簡潔と完結を書き間違えたんでしょ?
違うのかな…
違うのかな…
970デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 21:56:25.09ID:S+S4XTWp0 >>967
こんなの書いてはいけませんっていういい見本
こんなの書いてはいけませんっていういい見本
971デフォルトの名無しさん (ワッチョイ 4901-3UcT)
2021/03/21(日) 22:19:00.23ID:B8RMscJD0 >>969
誤字ですね。簡潔です。
誤字ですね。簡潔です。
972デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 22:31:46.08ID:S+S4XTWp0 >>967
こんなの現場で書くとどう扱われるか教えてやろうか?
○○さんの書くプログラムはわかりやすいけど
君のはわかりにくいね
読みにくいっていうか
これはどういう処理をしてるの?
仕様を書いてほしいんだけど
文章で書けなかったら
普通の.net2.0ぐらいの機能で書いてくれないかな?
それと○○さんと比べて進捗も遅いよね?
こんな書き方してるからじゃない?
あと処理経過がわかるログも出してほしいんだけど
この書き方のままじゃ出せないでしょ?
とかね
目立つことしないほうがいいよ
こんなの現場で書くとどう扱われるか教えてやろうか?
○○さんの書くプログラムはわかりやすいけど
君のはわかりにくいね
読みにくいっていうか
これはどういう処理をしてるの?
仕様を書いてほしいんだけど
文章で書けなかったら
普通の.net2.0ぐらいの機能で書いてくれないかな?
それと○○さんと比べて進捗も遅いよね?
こんな書き方してるからじゃない?
あと処理経過がわかるログも出してほしいんだけど
この書き方のままじゃ出せないでしょ?
とかね
目立つことしないほうがいいよ
973デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:43:13.77ID:ejnWrGNOa 長いメソッドの途中でいきなりこれが出てきたら気持ち悪いけど
OrganizeOrdersとか名前つけてメソッドに切り出すなら許せるかな
正しいメソッド名は英語ネイティブに聞いて
OrganizeOrdersとか名前つけてメソッドに切り出すなら許せるかな
正しいメソッド名は英語ネイティブに聞いて
974デフォルトの名無しさん (ワッチョイ 3178-4Ddi)
2021/03/21(日) 22:47:23.75ID:4uqTNWnz0 >あと処理経過がわかるログも出してほしいんだけど
これは流石に設計書いた奴が無能すぎるわ
これは流石に設計書いた奴が無能すぎるわ
975デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:48:14.21ID:ejnWrGNOa >>972
それほぼ全部カウンター食らうから気をつけたほうがいい
わかりにくい→感覚でしゃべるな、コードメトリクス測定したらLinqのほうが成績良い
どういう処理をしてるの→見たまんまorder1とorder2を繋いでItemCodeでグループ化してQuantityの合計を計算しtwる
使用を書いてほしい→↑が仕様
普通の.net2.0で書く→古い言語仕様に合わせる理由がない
進捗→状況次第
それほぼ全部カウンター食らうから気をつけたほうがいい
わかりにくい→感覚でしゃべるな、コードメトリクス測定したらLinqのほうが成績良い
どういう処理をしてるの→見たまんまorder1とorder2を繋いでItemCodeでグループ化してQuantityの合計を計算しtwる
使用を書いてほしい→↑が仕様
普通の.net2.0で書く→古い言語仕様に合わせる理由がない
進捗→状況次第
976デフォルトの名無しさん (アウアウエー Sae3-92UB)
2021/03/21(日) 22:49:08.96ID:ejnWrGNOa ログ出して→この程度の処理でいちいちログ出したらログが汚れるしパフォーマンスも悪化する
977デフォルトの名無しさん (ワッチョイ b102-+i0H)
2021/03/21(日) 22:54:55.17ID:gB+oqGaT0 >>967
これってそんなに読みにくい?
自分も他の人もこのくらいなら普通に書くけど。
どうしてもなら、各メソッドの間に改行入れて各行ごとに処理内容のコメントを書いてもいいし。
こう言うのでログを出して欲しいって要望を受けたことはないけど自分でそれ用の拡張メソッドを書けば出せないこともないし。とか言ってみる。
これってそんなに読みにくい?
自分も他の人もこのくらいなら普通に書くけど。
どうしてもなら、各メソッドの間に改行入れて各行ごとに処理内容のコメントを書いてもいいし。
こう言うのでログを出して欲しいって要望を受けたことはないけど自分でそれ用の拡張メソッドを書けば出せないこともないし。とか言ってみる。
978デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/21(日) 22:58:09.33ID:S+S4XTWp0979デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 23:16:39.83ID:O9O05/ov0 >>967です
たくさんのレスがついていてビックリしています
書いていて思ったのは>>977さんがいうように各メソッドの間に改行を入れればまだ読みやすいと思ったのと、
Orderのプロパティが多いようだとどんどん読みづらくなっていくな、と思いました
foreachで書いたのはこんな感じですが、よりいい方法があれば知りたいです
var allItem = new List<Order>(order1);
foreach (var o in order2)
{
var duplicate = allItem.FirstOrDefault(x => x.ItemCode == o.ItemCode);
if (duplicate is null)
allItem.Add(o);
else
duplicate.Quantity += o.Quantity;
}
たくさんのレスがついていてビックリしています
書いていて思ったのは>>977さんがいうように各メソッドの間に改行を入れればまだ読みやすいと思ったのと、
Orderのプロパティが多いようだとどんどん読みづらくなっていくな、と思いました
foreachで書いたのはこんな感じですが、よりいい方法があれば知りたいです
var allItem = new List<Order>(order1);
foreach (var o in order2)
{
var duplicate = allItem.FirstOrDefault(x => x.ItemCode == o.ItemCode);
if (duplicate is null)
allItem.Add(o);
else
duplicate.Quantity += o.Quantity;
}
980デフォルトの名無しさん (ワッチョイ 9389-4Ddi)
2021/03/21(日) 23:21:28.52ID:O9O05/ov0 >>979
最初にvar allItem = new List<Order>(order1);をしていますが、
duplicate.Quantity += o.Quantity;をするとorder1の内容も更新されてしまいますね
DeepCopyなどで複製するべきでした
最初にvar allItem = new List<Order>(order1);をしていますが、
duplicate.Quantity += o.Quantity;をするとorder1の内容も更新されてしまいますね
DeepCopyなどで複製するべきでした
981デフォルトの名無しさん (ワッチョイ 8b63-rG+B)
2021/03/22(月) 00:13:51.82ID:dAcW2Slk0 >>971
質問者も簡潔と完結を間違えてるんじゃね?ってダブルの冗談さ
質問者も簡潔と完結を間違えてるんじゃね?ってダブルの冗談さ
982デフォルトの名無しさん (ワッチョイ 538b-4Ddi)
2021/03/22(月) 00:23:14.95ID:0zPdt/v20 C# Seleniumでブラウザを閉じるときに
Quit();
Close();
の動作が最近のChromeのアップデートでかなり遅くなっています。
私だけでしょうか?
Quit();
Close();
の動作が最近のChromeのアップデートでかなり遅くなっています。
私だけでしょうか?
983デフォルトの名無しさん (ワッチョイ 8bbb-Q5Cn)
2021/03/22(月) 01:09:40.25ID:RQGm3cmd0 >>967のコードは、ドットで改行したらいいぐらいでなんも悪くないだろう
984デフォルトの名無しさん (ブーイモ MM4d-vxZl)
2021/03/22(月) 02:12:24.15ID:GLNo6tkcM ちゃんとしたテストコード書いてあるなら967のでかまわん
985デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 02:17:21.58ID:1s/2BcbO0 ログもちゃんと出力してね
指摘する人間に粒度が依存するけど
少なくとも俺はこんな一括でやられたらどこがバグってるのかわからない
指摘する人間に粒度が依存するけど
少なくとも俺はこんな一括でやられたらどこがバグってるのかわからない
986デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 02:21:02.72ID:1s/2BcbO0 まあ、もっとも指摘する人間の粒度に依存する部分に対応できない処理を書いちゃうあたり優秀とは程遠いというのが俺の感想だがね
987デフォルトの名無しさん (ワッチョイ 992d-D9EE)
2021/03/22(月) 03:06:05.30ID:ElndWJoU0 この程度のコードが理解出来ないで文句垂れてるとか恥ずかしくないのかな
足を引っ張りあって低い方に合わせて仲良くってのが日本のITで
生産性の低さに表れてるのだろうな
足を引っ張りあって低い方に合わせて仲良くってのが日本のITで
生産性の低さに表れてるのだろうな
988デフォルトの名無しさん (アウアウクー MM05-Q8H3)
2021/03/22(月) 07:03:59.88ID:IJYAylQJM これが読みにくかったら、簡単なSQL文すら書けない&読めない現場
20年前の現場ではSQLでとってきたレコードをループしながら集計しているコードがゴロゴロあった
20年前の現場ではSQLでとってきたレコードをループしながら集計しているコードがゴロゴロあった
989デフォルトの名無しさん (テテンテンテン MMeb-NT4g)
2021/03/22(月) 07:27:03.21ID:68S3N7MUM990デフォルトの名無しさん (アウアウクー MM05-Q8H3)
2021/03/22(月) 08:20:54.66ID:IJYAylQJM うちにもLINQ読めないからやめろ!って言うおっさんがいたな
最初年長者の言うことだからと素直に聞いていたけど
だんだん腹立ってきてボロカスに言ったら何も言わなくなった
最初年長者の言うことだからと素直に聞いていたけど
だんだん腹立ってきてボロカスに言ったら何も言わなくなった
991デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 09:33:10.92ID:1s/2BcbO0992デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 09:36:15.54ID:1s/2BcbO0 君のプログラムは
たったこれだけ、
ホントこれっぽちの、
普通のプログラマなら本当に誰でも可能な、
ことすらできないゴミカスなので
対応できませーん!(笑)(´∀`*)ウフフ
たったこれだけ、
ホントこれっぽちの、
普通のプログラマなら本当に誰でも可能な、
ことすらできないゴミカスなので
対応できませーん!(笑)(´∀`*)ウフフ
993デフォルトの名無しさん (ワッチョイ 59ad-XoZt)
2021/03/22(月) 09:44:59.10ID:1pgrqUSA0 >>989
>>972の指摘は技術的な無知から真顔でやってるんじゃないよ。
和を乱すなら撤退しろ、ってメッセージなんだから、技術論で正しいって言っても無駄なんよ。
これが正しいってコンセンサスを先に取れば誰も何も言わない。
実際に工数が下がることを証明して、パフォーマンスが落ちていないことを証明して、コーディングルールにLinqの使い方を明示して、やってはいけない使い方なんかも書いて、それで通すもの。
俺は使いたかったからそうして通したから間違いない。
引っ張り合いではなくて、皆のレベルを上げる必要があるの。
一人が踊り狂っても、そいつが辞めたときに誰も面倒が見れない物が残るだけ。
おっさんになってからつくづく思うけど、お前らほんと自己中だな。
>>972の指摘は技術的な無知から真顔でやってるんじゃないよ。
和を乱すなら撤退しろ、ってメッセージなんだから、技術論で正しいって言っても無駄なんよ。
これが正しいってコンセンサスを先に取れば誰も何も言わない。
実際に工数が下がることを証明して、パフォーマンスが落ちていないことを証明して、コーディングルールにLinqの使い方を明示して、やってはいけない使い方なんかも書いて、それで通すもの。
俺は使いたかったからそうして通したから間違いない。
引っ張り合いではなくて、皆のレベルを上げる必要があるの。
一人が踊り狂っても、そいつが辞めたときに誰も面倒が見れない物が残るだけ。
おっさんになってからつくづく思うけど、お前らほんと自己中だな。
994デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:00:26.34ID:1s/2BcbO0995デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:02:49.77ID:1s/2BcbO0 と思ったら内容違うじゃん
はじめの一文で立場を明確にしろよ
はじめの一文で立場を明確にしろよ
996デフォルトの名無しさん (ワッチョイ 9301-lXNI)
2021/03/22(月) 10:18:56.38ID:e3BAbY2z0 >>991
途中経過をログ出力したければ普通にできるけど・・・
途中経過をログ出力したければ普通にできるけど・・・
997デフォルトの名無しさん (ワッチョイ 4901-R0OD)
2021/03/22(月) 10:37:03.10ID:qAoMyjOy0 >>995
クソダッセw
クソダッセw
998デフォルトの名無しさん (ワッチョイ 51a7-FMtt)
2021/03/22(月) 10:39:26.64ID:1s/2BcbO0 >>996
ほう、やってみろ
ほう、やってみろ
999デフォルトの名無しさん (ワッチョイ 59ad-XoZt)
2021/03/22(月) 10:41:32.69ID:1pgrqUSA0 >>994
ちゃんと読まないとかそういうところもだぞ。
ちゃんと読まないとかそういうところもだぞ。
1000デフォルトの名無しさん (ワッチョイ 29b5-7GuP)
2021/03/22(月) 10:54:40.38ID:NnPBdii70 >>1000なら俺は今年株で大儲けする
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 23時間 25分 5秒
新しいスレッドを立ててください。
life time: 95日 23時間 25分 5秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 ★2 [Hitzeschleier★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 現役JKのお茶会スレ( ¨̮ )︎︎𖠚ᐝ182
- 高市早苗さんとデートで行きたいスポット [377482965]
- お前らダウナー系だよな
- 報ステさん、今日のトップニュースが美川憲一の会見www 高市&進次郎vs中国の話は?? [597533159]
- 精液がゼリー状で黄ばんでるせいで女と付き合う勇気ない
