暇つぶし2chat TECH
- 暇つぶし2ch92:デフォルトの名無しさん
22/06/23 20:56:11.83 pqpGOzkV0.net
>>51
皆が指摘してるように余計な処理を省いたら、たぶん、結果が逆転すると思う
(自分の所では逆転してMethodAの方が60倍位速かった)
private void Test2( Func<int> func )
{
var sw = Stopwatch.StartNew();
var count = 10000; // ※速すぎて結果が0msecになると思うから1桁増やした方が良い
for ( var i = 0; i < count; i++ )
{
func();
}
sw.Stop();
Console.WriteLine( $"{sw.ElapsedMilliseconds} msec" );
}
private async void button2_Click( object sender, EventArgs e )
{
await Task.Run( () => Test2( MethodA ) );
await Task.Run( () => Test2( MethodB ) );
}

93:デフォルトの名無しさん
22/06/23 20:58:51.74 ey2ezatM0.net
少なくとも >>51 のコードでは、Label.Text の更新とApplication.DoEventの時間測ってるのと変わらん

94:デフォルトの名無しさん
22/06/23 20:59:14.76 pqpGOzkV0.net
>>91ほど変えなくても
>>51
label1.Text = func().ToString();

func();
に置き換えるだけで結果が逆転するな

95:64
22/06/23 21:03:40.24 4fvcgSgI0.net
>>90
やっぱ差異あってもその程度だよなあ
これだけで 2000ms とか差が出るのは考えにくいよなあ

96:デフォルトの名無しさん
22/06/23 21:07:01.92 pqpGOzkV0.net
ついでにfunc().ToString(); でも逆転するな

97:デフォルトの名無しさん
22/06/23 21:21:12.73 pqpGOzkV0.net
.NetFramework4.8 Debugビルドにて
■label1.Text = func().ToString();
MethodA: 5480[msec]
MethodB: 48[msec]
■func().ToString()
MethodA: 8[msec]
MethodB: 20[msec]
■func():
MethodA: 7[msec]
MethodB: 18[msec]
>>91
MethodA: 0[msec]
MethodB: 12[msec]

98:デフォルトの名無しさん (ワッチョイ ca2d-MKW/)
22/06/23 22:05:36 pqpGOzkV0.net
.NET Core 6.0 Debugビルドにすると
A,Bどちらも4500~4600msec位で若干ばらつくがほぼ同じ

結局のところ、>>58が正解で、.NET Framework4.8のRandomの挙動の違いで
Textプロパティの内部で処理がスキップされるか否かってことだろうね
Randomの値の検証はもう面倒臭いからやらないけど

99:デフォルトの名無しさん
22/06/23 22:19:46.46 ey2ezatM0.net
まとめるとこうだな
・Label.Textの更新速度がクソ遅いのでRandomの処理時間は誤差
・new


100:Randomで同じ値が返ってきた場合、Label.Textが更新されないから速くなってるだけ https://referencesource.microsoft.com/#system.windows.forms/winforms/managed/system/winforms/control.cs,4048



101:デフォルトの名無しさん
22/06/24 02:50:44.64 gZdHgxGE0.net
>>98
ギャハハハw
難しいなw

102:デフォルトの名無しさん
22/06/24 07:20:28.71 fuiDR9PnM.net
仕様から推測した原因で間違いないか最終的に動作でも確認しといたほうがいいのでは?
パラメータ有りのnew Random(i)したり>>84みたいにカウンタもLabel.Textに反映して
MethodBがMethodAと同様に遅くなれば一件落着

103:デフォルトの名無しさん
22/06/24 09:06:25.48 nZzm6L7c0.net
>>89
結果的に俺が一番最初に指摘した一般論の通りだったな

104:64
22/06/24 09:10:29.92 ec4i6GcX0.net
>>101
お前何もしてないじゃん

105:デフォルトの名無しさん
22/06/24 09:14:09.95 nZzm6L7c0.net
>>102
>>98が言ってる上記の結論をこのスレで一番最初に指摘したけど

106:64
22/06/24 09:17:32.89 ec4i6GcX0.net
検証してくれたのは違う人じゃん
なに自分の手柄にしてんの

107:デフォルトの名無しさん
22/06/24 09:27:01.49 nZzm6L7c0.net
>>104
単なる数値計算と比べて出力が激重なんてことは検証しなくても分かる程度に明らかな事だからな
実際俺以外にもちらほら指摘しとる奴おるし
せっかくただのint結果に小分けされてるものを毎回出力に紐づけるとか発想がスタティックおっさんと同レベルだからオブジェクト指向プログラミング向いてないで

108:64
22/06/24 09:46:49.82 ec4i6GcX0.net
>>105
しょうもな、後からならなんとでも言えるから

109:デフォルトの名無しさん
22/06/24 09:58:54.60 VlIywyIA0.net
> ちなControl.Textがうんたらの人たちは、ただの改善おじさんやな
> 比較の話で共通部分のコード直せって意味わからんわな

110:64
22/06/24 10:03:47.04 ec4i6GcX0.net
>>107
それは誤りやったな、51には悪いことしたわ
そんときはTextの仕様知らんかったでな
他のやつは98の提示があって始めて証明できてたな

111:デフォルトの名無しさん
22/06/24 12:18:00.54 p+qJoCDWM.net
普段から速度意識してプログラミングしてない奴は、出力が遅いという当たり前の事を知らない事は良くある
そう言う奴には口で言っても感覚的に理解出来んから数字を見せるのが一番早い

112:デフォルトの名無しさん
22/06/24 12:58:40.19 kHrWfcT90.net
>>103
お前が言ったのは一般論の可能性だ
結果的にそれが正しかったとしても
それを個別事例に当てはめて検証したのは別の人だろ
ちなみに今回の原因は、コントロールのアクセスや出力が遅いことじゃないんだぜ
それならAもBも同じだけ遅くて差が出る原因にならんからな

113:デフォルトの名無しさん
22/06/24 13:05:30.94 VlIywyIA0.net
誰が原因を解明したかなんて質問者からすればどうでもいい話である
醜い

114:デフォルトの名無しさん
22/06/24 13:19:04.19 tHNubtgb0.net
出力が遅いとか条件次第でスキップする仕様等を知らなくても、
計測を目的としたループの中には対象(今回はRandom)以外の処理はなるべく入れない
と言う原則を守っていれば避けられた話だな。

115:デフォルトの名無しさん
22/06/24 13:26:09.89 kHrWfcT90.net
いや、そもそもRandomの速度を測定したいって話じゃないだろ、これ

116:デフォルトの名無しさん
22/06/24 14:24:15.51 nZzm6L7c0.net
>>110
実際に検証した人がGJであることは別に否定してないが?
大本の原因は同一インスタンスでは1ms以内だとシードが変わらない&同一文字列だと出力更新が成されないって事だったようだが、
「毎回newする vs インスタンス使いまわし」という本来質問者が意図してたであろうこの差を調べたいってことであればControl.Textへの代入を挟むと、本来調べたいヵ所が誤差に収斂してしまって調査不可能になるって結論だろ
そしてStopwatchクラスで順次調査すると順番によって速度が変わるなんてことは往々にしてあるから必ずしも「AもBも同じだけ遅くなる」とは限らないってこともちゃんと指摘してる

117:デフォルトの名無しさん
22/06/24 14:27:59.50 tEJIL7500.net
最初に指摘出来てぼくちゃんえらいでちゅねぇ

118:デフォルトの名無しさん
22/06/24 15:42:06.42 kHrWfcT90.net
>>114
>本来質問者が意図してたであろうこの差を調べたい
ああ、そもそもの食い違いはそこか
別にお前の指摘内容を個別にみれば間違ってるとは言わんが
インスタンス生成の速度みたいとか勝手な想像でしかないな
本来の質問者のベンチの意図は不明なんだがな
インスタンスの生成の差を見たかったのか、ローカル変数とクラス変数の速度差をみたかったのか
違う要因で速度計測してて最終的にあのコードまで落ちたのか
結果として予想と違うけど原因は何かって質問だぜ
質問した意図はボトルネックなコードは避けたいって話だったし

119:デフォルトの名無しさん
22/06/24 15:56:21.70 0JrGBM9l0.net
雑ッッッッッ魚

120:デフォルトの名無しさん
22/06/24 17:24:37.81 VlIywyIA0.net
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください

121:デフォルトの名無しさん
22/06/24 17:51:39.39 MtTs9G+lM.net
解決したんだからしょーもない事で喧嘩するなよw

122:デフォルトの名無しさん
22/06/24 18:14:27.28 N


123:AI/rIyW0.net



124:デフォルトの名無しさん
22/06/24 19:22:50.70 nn4VojDf0.net
論点がズレて喧嘩始まるのはこの板の名物だな

125:デフォルトの名無しさん
22/06/24 22:04:14.69 3GxA+CY50.net
ワイだの草だの言ってんのみると、まとめキッズが大量に流入してきてるしな

126:デフォルトの名無しさん
22/06/25 12:00:40.04 Fily2x+h0.net
顧客の意図を汲んで問題を分析して解を出す速度もこの業界では重要スキルだからこれからも精進したまえ

127:デフォルトの名無しさん
22/06/25 12:03:57.86 1xFYE0ZgM.net
昔わざと炎上させて残業代を狙うやつがいて非常に厄介だった

128:デフォルトの名無しさん (ワッチョイ 0f6e-H0HQ)
22/06/25 21:08:15 YzwccikL0.net
非同期処理について質問なんですけど、taskを受け取ってその状態を見て処理が終わってるかどうかチェックして…みたいな感じじゃないですか
例えば通常の関数だったら、戻り値を受け取るのは呼び出した関数の処理が終わって、そこで初めてですよね
でも非同期だと処理終わってないのに戻り値が渡されちゃうって認識でいいですか?そして渡されたあとも進行状況に応じて変化し続けると

129:デフォルトの名無しさん
22/06/25 21:36:39.54 MoozsICfd.net
>>125
処理が終わっているかどうかのチェックなんかしない
Taskを受け取ったら、Taskに対して「完了後に次に実行したい処理」を登録する
そして完了後に次の処理を呼び出すのはTaskを返す側の責任であり、受け取った側は気にしない
次の処理が登録された時点で既にTaskが完了していれば次の処理がすぐ呼ばれるかもしれないし、数秒後かもしれない
非同期処理とはそういうもの

130:デフォルトの名無しさん
22/06/25 21:42:23.39 zqnvknwe0.net
>>125
> 非同期だと処理終わってないのに戻り値が渡されちゃうって認識でいいですか?
非同期メソッドを呼んで戻ってきてるのは戻り値を戻す処理を実行してるTask<TResult>であって、
その時点で戻り値が渡されている訳ではないよ。
Taskが終了した時点でResultに結果が格納されるが、
普通はTaskを直接弄ったりせず、awaitで待って結果を受け取る。

131:デフォルトの名無しさん (ワッチョイ 0f6e-H0HQ)
22/06/25 22:53:30 YzwccikL0.net
>>非同期メソッドを呼んで戻ってきてるのは戻り値を戻す処理を実行してるTask<TResult>であって、
ここと
>>その時点で戻り値が渡されている訳ではないよ。
ここのつながりがよくわからないのです
1行目でTask<TResult>型の戻り値が戻ってますよね
それなのに戻り値が渡されていないというのはどういうことでしょうか

あとiscompletedプロパティで終了しているかを判断するのは一般的ではないのですか?

132:デフォルトの名無しさん (ワッチョイ 0f24-5+LN)
22/06/25 23:06:32 dWIrjb1E0.net
>>128
Taskは作業管理機であって結果ではない
task.Resultをして初めて結果を取り出せる
task.Resultを呼び出す前に作業が完了していれば即戻り値を得られるし、そうじゃないなら内部でwhile (!isComplited) Sleep(1);みたいな事をして作業が終わるまで待機した後に得られる
「作業が終わっていたら結果を貰う、そうじゃなければ別の事をする」っていうシーンに限りIsComplitedで確認する(Resultを使うと終わるまで強制的に待機させられるため)
大抵の場合は「Task投げる→他の事する→Task結果を受け取る」って言う一本道なのでIsComplitedをせずにResultでそのまま貰うことが多い

133:デフォルトの名無しさん (ワッチョイ 3f2d-yeJY)
22/06/25 23:09:24 DJEgoMeR0.net
>>128
今はtask.IsCompltedやtask.Resultを直接参照することはあまりないな
var result = await Task;
みたいにawaitで待ちと返り値の取り出しを行う

134:デフォルトの名無しさん (ワッチョイ 3f32-iCO3)
22/06/25 23:14:34 gQjoPRQF0.net
>>128
値は確かに返っている、がタスクであってズバリ結果じゃないよね
ハンドルとかのイメージが湧かないなら…注文番号だけ返すみたいな
>iscompleted
使う機会がない訳ではないが、自前でノンブロッキングを書くと面倒くさいし
大抵は完了したら何をするって感じで、awaitやContinueWithを使うと思うよ

135:デフォルトの名無しさん (ササクッテロラ Spa3-u0tS)
22/06/26 01:35:05 qaLvjcDBp.net
待つなら同期でいいと思うんですが、awaitするメリットってなんですか?
他のことが出来るって言われても、他のことが非同期にやらせてる処理に
影響が出るような事象や処理だったらどうするんですか?

136:デフォルトの名無しさん (ワッチョイ 4f5f-85MC)
22/06/26 01:42:42 J3iRsr8e0.net
同期で待つとスレッドプールが占有されるからやめろ
複数のタスクから同時に読み書きアクセスされるリソースがあるならロックをかけて排他制御しろ

137:デフォルトの名無しさん (ワッチョイ 4f5f-85MC)
22/06/26 01:45:50 J3iRsr8e0.net
あとネイティブアプリでUIスレッド上で同期で待つと全てが固まるからやめろ

138:デフォルトの名無しさん (ワッチョイ 3f2d-yeJY)
22/06/26 01:49:34 naJNIbNQ0.net
>>132
良くあるのはGUIのボタンを押したら時間がかかる処理をやらせる場合
同期処理だとその間GUIが固まって、ウィンドウを移動したり出来なくなる
非同期処理なら処置中もGUIが動ける
排他制御等で影響が出ないようにするのはプログラマーの仕事

139:デフォルトの名無しさん (オッペケ Sra3-r+Rc)
22/06/26 02:07:33 DrXudPeHr.net
C10K 問題は20世紀に提起された話題で、現代も問題になるかわかたない。
実際、開発者であるあなたのパソコンでは数千のスレッドが在り、ハンドルに至っては数十万あると思う。
それで問題なく動いている。
非同期は広告の宣伝文句かもしれない。

140:デフォルトの名無しさん
22/06/26 02:31:28.25 thJDnK3H0.net
>>132
ついでに言うと、UIコンポーネントはUIスレッドしか触るなという制約がある
awaitは非同期待機だけでなく既定なら元コンテキストへ戻るという意味も含む
同タスク内でやるとアクセス違反、経過もIProgressなど同期コンテキストが必要
ContinueWithの後続処理としてもタスクスケジューラを渡してやらなければならない
>>136
GUIはイベント駆動だし、Taskの乱発はC10Kのスレッド作りすぎに近づいていくが…?問題ねぇよってプロパガンダ?

141:デフォルトの名無しさん
22/06/26 08:44:12.84 yfX3wl/l0.net
>>132
> 他のことが出来るって言われても、他のことが非同期にやらせてる処理に
> 影響が出るような事象や処理だったらどうするんですか?
魔法じゃないんだからそんなのは何を使ってもどうしようもないだろ
影響出ないケースなんていくらでもあって例えばネットワークとディスク(最近はSSDだからストレージか)の各々からデータを読んでからそれらのデータを処理して表示するなんて時にシリアルにやるより
1. ネットワークから読み出し開始
2. ストレージから読み出し開始
3. 1. と 2. の終了を待つ
4. 読み出したデータを処理して表示
ってやった方が早い可能性があるってこと

142:デフォルトの名無しさん
22/06/26 08:51:05.64 60uDe2Q5d.net
横からの質問ですが、デスクトップアプリならなんとなく理解はできてるつもりですが、ウェブアプリだと、複数のユーザからの処理をサーバ上のアプリが処理していく際に、同期処理で重たいのが動いている場合にほかのユーザまでまたされるということがありま


143:すか? アクセス単位で別々にスレッド処理されてるから、メソッドを同期非同期するのはあくまでもその単一ユーザの処理の中で考えれば良いですかね? それとも、他のユーザも待たされるから基本的には非同期で作っていくものですか? ちなみに、winformからblazor移行の勉強中です



144:デフォルトの名無しさん (ワッチョイ 8fad-d/rJ)
22/06/26 09:48:29 vVyuk1M20.net
Blazorって流行る気配があるの?

145:デフォルトの名無しさん (テテンテンテン MM4f-hYij)
22/06/26 09:58:33 MUUA0Nh2M.net
>>139
同時アクセスしてるユーザー数>Webサーバが用意してるスレッド数の上限 だと待たされることがある
これがC10K(クライアント10000台)問題

なので対策としてDBアクセスみたいなI/O待ちみたいなときにスレッドを占有せずいったんリリースさせようと考えて
async/awaitの仕組みが生まれた

146:デフォルトの名無しさん (スッププ Sd5f-2lfq)
22/06/26 10:02:10 PhXCrOZEd.net
Blazorはアーリーアダプタが一瞬遊んだくらいで消えた
もう誰も使ってないよ

147:デフォルトの名無しさん (ワッチョイ 0f24-5+LN)
22/06/26 10:04:32 FNTvXztu0.net
スレッド型非同期は時代遅れ
シングルスレッド非同期こそナウ

148:デフォルトの名無しさん
22/06/26 10:07:12.47 60uDe2Q5d.net
>>141
ありがとうございます
ということは、スレッドが枯渇しない限りは同期処理でほかのユーザは待たされることはないと。
プログラム上で主に考えるのは、ユーザ単位で同期で良いのか非同期にするべきか考えれば良く、ただ、規模やサーバの負担を考えるときには、非同期によりスレッドの占有は抑えられて効率よくスレッドが使われていくから、非同期処理を実装するメリットまたは必要があるという理解で合ってますか?

149:デフォルトの名無しさん
22/06/26 10:25:36.55 bTdujDmeM.net
>>144
それで合ってる
ぶっちゃけBlazorなんてお遊びの許されるちょっとした社内システムくらいでしか使わないんだからスレッドの消費なんて全く気にしなくてOK
Blazor Serverなら尚更

150:デフォルトの名無しさん
22/06/26 10:47:01.78 MUUA0Nh2M.net
極論すると、絶対にWebサーバでスレッド枯渇することがないって分かってるなら
async/awaitなんか使わないほうがパフォーマンスが良い
なので、万一本当にスレッドが枯渇したときに
サーバに処理余力があるにもかかわらずリクエストが処理できなくてレスポンスが致命的に悪化してもよければ
非同期の仕組みなんかまったく使わなくてよいし
現にVS2010以前はその前提のWebアプリしか構築できなかった

151:デフォルトの名無しさん
22/06/26 10:47:39.05 60uDe2Q5d.net
>>145
ありがとうございます
なかなかピンとくる記事に当たらなかったのですっきり疑問がとけました
国内のサードパーティー製のモジュールとか対応しだしてたりYouTubeなんかだと結構英語の解説とか多いので向こうでは多少使われてるのかなと思ったんですが、先は厳しそうですね、、、
本業でなくC#好きで触ってる自分にとっては一番作りやすいのではありますが

152:デフォルトの名無しさん
22/06/26 11:46:46.35 ITekl9D3r.net
データベースのこと考慮しなくていいんか?
重い処理は非同期で別スレッドに投げなくていいんか?

153:デフォルトの名無しさん
22/06/26 11:55:34.78 fnukxN9QM.net
CPUバウンドな処理だとスレッド枯渇しなくても他のユーザーが待たされる
I/Oバウンドな処理でもDB側で何らかの競合が発生すれば待たされる
スレッドが枯渇しなくても数が増えると該当スレッドにCPUリソースが割り当てられるまでの時間が当然増えるから処理完了までの時間は長くなる
短い時間で終わる単純なI/Oバウンドな処理のみでピーク時/オフピーク時のリクエスト数が十分に少なくて省リソースよりもプログラムの簡潔さを優先するような場合なら同期処理を選ぶ

154:デフォルトの名無しさん
22/06/26 12:26:18.51 +3C8D9l5M.net
サーバーアプリでCPUバウンドな処理なら非同期より同期で実装
フロントのサーバーを呼び出す箇所で非同期にする

155:デフォルトの名無しさん
22/06/26 12:32:44.97 35knD1Em0.net
BlazorならPolySnakeを再現してるサンプルを見て、すごい時代になったなと思ったよ
見ただけなのでどういう仕組みかは知らない
URLリンク(github.com)

156:デフォルトの名無しさん
22/06/26 12:39:31.07 6NjMnJeGM.net
>>148
Winアプリと違って、Webサーバーというのは基本的にレスポンスを返すまでスレッドをブロックしていいアーキテクチャなんだよ
例外としてNode.jsのようなシングルスレッドなサーバーもあるが、少なくともASP.NET(無印もCoreも)はそうではない
ローディングアニメーションを出すような場合は、処理を開始するAPIと進捗をチェックするAPIを分けてAjaxでポーリングするように作ったりすることもあるが、
その場合でもリクエスト単位では同期でいい

157:デフォルトの名無しさん
22/06/26 13:51:48.19 tmrZCe0Z0.net
>>144
は?単位時間あたり、仮に3分として
CPUリソースをトータルで食い尽くしたら足りない分と次の3分はどうなると考えてるの?

158:デフォルトの名無しさん
22/06/26 14:25:11.51 PhXCrOZEd.net
>>153
そうならないようにインスタンスの台数を増やすだけだね
同期だろうが非同期だろうが変わらん

159:デフォルトの名無しさん
22/06/26 14:30:57.64 tmrZCe0Z0.net
ええー
リソースある前提で作っちゃうのー?

160:デフォルトの名無しさん
22/06/26 14:57:18.69 PhXCrOZEd.net
>>155
何が言いたいのか知らんが、同期だろうが非同期だろうがCPUを100%使っている状況なら普通はWebならまずは水平分散する
Webでは一般にインスタンスの数を増やすだけでスケールするような作りになっていることが大前提として最重要であり、個別の最適化はその次だ

161:デフォルトの名無しさん
22/06/26 17:01:46.40 tmrZCe0Z0.net
webは知らんけど
最近ようわからんのにスレッド立てまくる奴が作ったプログラムがこんな動作だね
正直まずいレベルで下手っぴだと思う
c#の言語仕様のせいで

162:デフォルトの名無しさん
22/06/26 20:52:25.72 yfX3wl/l0.net
「こんな動作」とかフワフワした用語でマウント取りに来るなら自分のブログとかでやってくれ
ここは「初心者」スレ

163:デフォルトの名無しさん
22/06/26 20:59:48.87 NLYG3vIc0.net
>>157
正直まずいレベルで下手っぴな文章だな

164:デフォルトの名無しさん
22/06/27 01:26:20.48 wEAeif5H0.net
何言ってるかわからんと思ってたら他の人もそうだったので安心した

165:デフォルトの名無しさん
22/06/27 02:35:01.48 sfuoftVd0.net
ASDっぽい会話のコンテキストのおかしさ

166:デフォルトの名無しさん
22/06/27 02:35:22.77 l2B1RzVL0.net
>>160
言いたいことは>>153なんだけど
わからないほど悲しい脳みそしてるんだ?

167:デフォルトの名無しさん
22/06/27 03:01:17.94 lmKSzJyY0.net
ヌルヌル話法の特徴と根本原理|mentane|note
URLリンク(note.com)

168:デフォルトの名無しさん
22/06/27 15:08:18.79 Kbl5ft5+0.net
インターフェースのメンバーを呼び出す時には実装を確認すべきなのでしょうか
それとも 定義元のインターフェースへのキャスト必須ですか
(例)
class MyList : IList<int>
{
int IContainer<int> Count { get; }
...
...
}

169:164
22/06/27 15:22:13.53 Kbl5ft5+0.net
ドットが抜けてました
int IContainer<int>.Count { get; }

170:164
22/06/27 15:33:45.50 Kbl5ft5+0.net
ぐちゃぐちゃですみません
int ICollection<int>.Count { get; }

171:デフォルトの名無しさん
22/06/27 19:24:48.05 c9y9U1Yc0.net
聞きたいことがよく分からない
「実装を確認する」というのがどういう行為なのか
そのMyListを実装する側の話


172:なのか使用する側の話なのか 例が単にインターフェイスの明示的実装を書いてるだけでどこが疑問点か読み取れない



173:164
22/06/27 20:38:42.94 Kbl5ft5+0.net
>>167
var mylist = new MyList();
var c0 = mylist.Count; // build error
// MyList は IList<int> : ICollection<int> をもつので
var c1 = ((ICollection<int>)mylist).Count;
// MListでint ICollection<int>.Count { get; } という memberをもつので
var c2 = ((ICollection<int>)mylist).Count;
c1は 万能

174:デフォルトの名無しさん
22/06/27 21:10:43.08 lmKSzJyY0.net
プロパティにpublicつけ忘れてるだけじゃね?

175:デフォルトの名無しさん
22/06/27 21:49:28.21 oKLZ5l1i0.net
IList.Count って public int Count { get } じゃなかったっけ。
((ICollection<int>)mylist).Count; が出来るのは、別途 ICollection.Count が実装されているからじゃないの。

176:164
22/06/27 22:21:47.30 Kbl5ft5+0.net
>>169, >>170
var array = new int[]{1,2,3};
var c0 = array.Count; // build error
var collection = (ICollection<int>)array;
var c1 = collection.Count; // ok

177:デフォルトの名無しさん
22/06/27 23:11:12.57 oKLZ5l1i0.net
オマエ、きちんと日本語で他人に伝わるように説明する気ないの?
,前に書いたのに誤りがあるように見えないんだけど。

178:デフォルトの名無しさん
22/06/28 01:12:23.85 vCyl6X270.net
いきなりオマエ呼ばわりかよ、何様?

179:デフォルトの名無しさん
22/06/28 03:39:43.25 k21C1TP+0.net
攻撃的なレスは誰も得しない
>>172
前に書いたのってのは170のことで合ってる?
Countプロパティを定義してるのはICollection<T>
IList<T>はそれを継承してるだけ
だから
((ICollection<T>)array).Count
で正しく取れるし
((IList<T>)array).Count
と全く同じ意味になる

180:デフォルトの名無しさん (スップ Sd5f-3THJ)
22/06/28 08:26:27 UdVkVSJZd.net
URLリンク(ufcpp.net)

インターフェースの実装は
public int Count{get{...}}
のようにpublicで公開するのが普通。

MyList mylist; mylist.Count; のようにアクセスするのがまずいなら
int IContainer<int>.Count {get{...}}
のように隠すこともできる。

インターフェイスとしてしか使わないなら
MyList mylist;
IContainer<int> c1=mylist;
c1.Count;
のようにアクセスする方法もある

181:164 (ワッチョイ 4f02-lwqN)
22/06/28 14:11:24 gtViLG4V0.net
>>175
MyListでのインターフェイスの明示的実装の結果, 隠蔽されてしまうということですか
了解しました

182:デフォルトの名無しさん
22/07/05 02:51:20.89 pywdYBm60.net
SOLID原則のDの依存性逆転の原則がイマイチ分かりにくいんですが
上位は下位に依存してはならないって説明は何をもって上位と下位になるんですか?
依存の意味はインスタンス化したらもう依存したことになるって事でいいんですよね?
では上位と下位の意味は具体的にどういう基準で区分されるのですか?

183:デフォルトの名無しさん
22/07/05 08:09:11.15 ZZ3vHKnwd.net
>>177
処理の呼び出し階層
決済モジュールが中で銀行引落モジュールとカード決済モジュールを呼んでいるなら、決済モジュールが上位で他は相対的に下位

184:デフォルトの名無しさん
22/07/05 11:14:44.01 Iq0vQpEV0.net
>>177
いい質問
抽象度の高いものが上位、抽象度の低いものが下位
別の言い方をすればアプリケーションのコアに近いものが上位、コアから遠いものが下位
↓この図にある円の中心に近い方が上位、周辺に近いほうが下位
URLリンク(blog.cleancoder.com)
依存は適切なソース分割が行われてる前提で言えば
usingディレクティブでインポートしてれば依存してることになる

185:デフォルトの名無しさん
22/07/05 13:13:39.89 uajPnlyf0.net
フォームアプリのListV


186:iewで水平スクロールをボタンに連携して動かすことって 出来るでしょうか? HScrollVarの値を設定できれば実現できるのでしょうが、そういう情報が見つからず。 よろしくお願いします。



187:デフォルトの名無しさん
22/07/05 13:22:03.56 JMpS1h6ad.net
できらぁ!

188:デフォルトの名無しさん
22/07/05 18:34:58.72 ZFaGw7VU0.net
どのようにやれば出来るのか、取っ掛かりを頂きたいです!

189:デフォルトの名無しさん
22/07/05 18:39:12.96 Ar7iVMhG0.net
DataGridView.HorizontalScrollingOffset はreadonly

190:デフォルトの名無しさん (ブーイモ MMc6-ukjm)
22/07/05 20:00:12 37QL7ImaM.net
Listviewだからアライメントをleftかな

191:デフォルトの名無しさん
22/07/05 22:06:19.52 QtzVIzSeM.net
忘れたけどListviewはスクロールいじれないからスクロールオフにして
ドックして自動でスクロールバーが出る状態にしてそれを操作したような気がする

192:デフォルトの名無しさん
22/07/05 22:14:55.12 QtzVIzSeM.net
それともドックさせないんだったかな
思い出せない

193:デフォルトの名無しさん
22/07/05 22:36:02.80 ZxZIsqP00.net
よくわからんものはスクロールバー付きのパネルの子として移動させる方が簡単だな

194:デフォルトの名無しさん
22/07/05 23:12:26.77 WZVvg+4D0.net
ListView、水平スクロール、ボタンに連携
俺頭悪いから何させたいのかわからない

195:デフォルトの名無しさん
22/07/06 06:01:09.15 VxYrHSBA0.net
"xxx.zip .exe" みたいなファイルみたいに
水平スクロールを大量に行うと右端のあたりにボタンがあって
そこで本来あるべき機能が動き出すようなプログラムを作りたい

196:デフォルトの名無しさん
22/07/06 07:31:13.08 WpD2OlXKM.net
>>189
ダブルクリックでは本来あるべき機能は動かないんだ?

197:デフォルトの名無しさん
22/07/06 08:01:33.86 uv1GiNSha.net
LVM_SCROLLをSendMessageすればいいみたいな事が書いてある

198:デフォルトの名無しさん
22/07/06 08:45:43.56 y1Ju9pb60.net
凝ったことやりたかったらFormsを捨てることから検討したほうが良いのでは?
アレは単純なUIを手早く作る用途に適しているけど、複雑なものを始めるとどうにもならなくなる

199:デフォルトの名無しさん
22/07/06 09:06:38.00 3wWvjztO0.net
>ListView、水平スクロール、ボタンに連携
>俺頭悪いから何させたいのかわからない
高解像度のPCだとListViewのスクロールバーが小さいので、スクロールバーは捨てて
ボタンを1回押すとちょうちょいスクロールするものを作りたかったです。
プロパティでスクロールを動かす量を設定出来たら実現できるかなと思い。
ListViewのスクロールを捨てて、デカくしたスクロールバーコントローラで
パネル内のListViewのスクロールも試してみたいと思います。

200:デフォルトの名無しさん (ラクッペペ MMc6-kTQg)
22/07/06 09:38:47 0uANHcdZM.net
横スクロールできるマウス買うのをオススメ

201:デフォルトの名無しさん
22/07/06 11:04:46.38 CbuaQ7gOa.net
>>193
ListViewの部分だけWPF使ったら?

202:デフォルトの名無しさん
22/07/06 13:03:45.15 4CR35PoR0.net
WinFormsでカスタムコントロールって手間かかりすぎて敬遠されるんよ
高解像度用にフォント大きくしたり、ボタンにアイコン画像つけたり、とかも
出来なくはないけどさ、そんなくだらない苦労背負うよりWPFで解決した方が早いっていう

203:デフォルトの名無しさん
22/07/06 15:11:19.50 mycuJuFy0.net
高解像度のPCがどうたらって
WinFormsのDPIスケーリング対応機能を有効にするんじゃ駄目なのかな

204:デフォルトの名無しさん
22/07/07 01:17:45.97 dLA6OOclM.net
タブレットだと高DPIだとWPFだろうがwinformだろうが表示される要素がそこそこ大きくなって
操作しにくい
ボタンなどが縦に10個並べてあったとしてタブレットで表示すると下のほうが押せない

205:デフォルトの名無しさん
22/07/07 01:19:41.15


206:dLA6OOclM.net



207:デフォルトの名無しさん
22/07/07 01:46:44.86 5sXFliwx0.net
コンパイル時に文字列変数へアプリのバージョンを埋め込む方法を教えてください
FileVersionInfo ver = FileVersionInfo.GetVersionInfo( System.Reflection.Assembly.GetExecutingAssembly().Location );
だとWindows上で動かすと取得できますが、Linux上だと例外になります。
代替案として、コンパイル時に外部ファイルから読み込んでしまおうと考えたのですが方法が分かりません
asp.net core6のWebアプリなので、プロジェクトファイル(.csproj)のPropertyGroupのFileVersionから取得したいです

208:デフォルトの名無しさん
22/07/07 07:09:20.40 7GcCJzBFM.net
コンパイル時?にできんだっけ?

209:デフォルトの名無しさん (ワッチョイ 1e2c-Pt+j)
22/07/07 08:45:46 gjoYu6DS0.net
Linuxってファイルにバージョンみたいなメタデータ持たせてんだっけ
AssemblyオブジェクトからGetCustomAttribute<AssemblyFileVersionAttribute>()すればいいんじゃない
GetExecutingAssembly()が失敗するならtypeof(適当なクラス).Assemblyで

210:デフォルトの名無しさん
22/07/07 10:43:10.21 HZWhR94l0.net
>>199
コンテンツが表示し切れなかったらスクロールするようにしとけば

211:デフォルトの名無しさん
22/07/08 01:18:26.52 2uhV5uBf0.net
grepとかした時に、static変数と、staticメソッドの見分けが簡単につかないのは言語的に欠陥だと思ってるんだけど、皆さんどう思います?

212:デフォルトの名無しさん
22/07/08 08:34:52.99 skMpW7pT0.net
Visual Studio内で完結するからgrep要らないだろ
Visual Studioなきゃ何もできない言語って意味では欠陥だらけだが

213:デフォルトの名無しさん
22/07/08 10:06:43.45 0Bd0SGWId.net
grep -E 'static[^=]+\('

214:デフォルトの名無しさん (オイコラミネオ MM0b-auNL)
22/07/08 11:15:41 N2+ntTX1M.net
static 変数

private static int _count = 0;

static メソッド

internal static void Call()

215:デフォルトの名無しさん (オイコラミネオ MM0b-auNL)
22/07/08 11:16:19 N2+ntTX1M.net
C#だとこのように簡単に見分けがつくけど一体どの言語の話をしてるんだろうか?

216:デフォルトの名無しさん (ワッチョイ a363-Cam1)
22/07/08 12:37:30 hiK9rTst0.net
世界線が違うのかねえ

217:デフォルトの名無しさん (ワッチョイ a363-Cam1)
22/07/08 12:42:53 hiK9rTst0.net
変数は名詞でメソッドは動詞にするのが一般的なのでreadみたいな一部の単語を除けば言語によらず問題にならんだろう
リーダブルコードとか読んできてよ
初心者なら

218:デフォルトの名無しさん (ブーイモ MMb6-1w7x)
22/07/08 12:48:48 OZjMTx6FM.net
煽って教えて欲しかったパターンやろ

219:デフォルトの名無しさん
22/07/08 14:31:59.45 2uhV5uBf0.net
internal とか void とか判別しやすい例出して、判別できるじゃんと言われてもなぁ

220:デフォルトの名無しさん
22/07/08 14:34:05.05 G/CdBPp1M.net
>>212
ガチ馬鹿なのかな?これでも見分けつかんか?
static 変数
static int _count = 0;
static メソッド
static void Call()

221:デフォルトの名無しさん
22/07/08 14:34:31.26 G/CdBPp1M.net
間違えた
static 変数
static int _count = 0;
static メソッド
static int Call()

222:デフォルトの名無しさん
22/07/08 14:35:03.78 3SGLIVmR0.net
>>212
どこ見てるんだよw
()の有無だろ

223:デフォルトの名無しさん
22/07/08 14:43:00.23 G/CdBPp1M.net
rustを使うと馬鹿になるんだよな

224:デフォルトの名無しさん
22/07/08 15:11:15.93 ejQ2E0qh0.net
頭の欠陥の方だったか

225:デフォルトの名無しさん (ワッチョイ 9ebb-rOZM)
22/07/08 16:42:05 AegC83dn0.net
新興言語では、急激にOOPとの結びつきが弱まっていて、代わりに特別な指向を持っていてさ
そっちを学習した後にOOPベースの言語に


226:戻ってくると、ほんと感覚が狂う



227:デフォルトの名無しさん (ワッチョイ 5301-bw8e)
22/07/08 16:43:39 PiqGkGWC0.net
OOPS

228:デフォルトの名無しさん (オイコラミネオ MM0b-auNL)
22/07/08 17:45:25 G/CdBPp1M.net
>>218
static変数か関数か区別できないって相当おかしいけど

229:デフォルトの名無しさん
22/07/08 19:59:03.56 lD1r+WGYM.net
>>212
話を続けたいなら、逆にどの言語のgrep-abilityが理想的だと感じるか教えてくれんか
何を求めてるかはっきりしないから、括弧の有無で分かるだろタワケ以上の回答は得られないように思う

230:デフォルトの名無しさん
22/07/08 22:39:50.35 AegC83dn0.net
>>220
そういや、大文字か小文字かってのもちょっと狂うね
まあそんな表面的な違いは大したことはないんだけど

231:デフォルトの名無しさん
22/07/10 08:41:58.66 Ofnz2Mf40.net
vb.netとc#はセットでコードを載せてるwebサイト多いから同じ言語だな

232:デフォルトの名無しさん
22/07/10 09:17:42.49 2lWNRyj/0.net
>>223
まだ言うか

233:デフォルトの名無しさん
22/07/10 09:41:35.46 dRGk1maa0.net
文の書き方に違いがあるだけで、使ってる語句は同じだ。

234:デフォルトの名無しさん (ワッチョイ 4d78-TkQT)
22/07/10 10:04:57 X/cjUhFp0.net
同じに見えるのは病気ですよ

235:デフォルトの名無しさん
22/07/10 18:53:49.82 K6zNp1si0.net
まーたこいつか
SNSにでも垂れ流してろ

236:デフォルトの名無しさん
22/07/10 22:22:55.10 wMqDENwq0.net
c#はc++を発展させた言語であるかのように欺いたvbである。

237:デフォルトの名無しさん
22/07/10 22:27:43.20 XBuHMFXV0.net
C# も VB.NET も .NET を人向けにプログラム言語にしたもの

238:デフォルトの名無しさん
22/07/10 23:21:25.85 za66V9r/0.net
同じマンまだおったんか

239:デフォルトの名無しさん
22/07/11 00:28:27.54 CCGmUSBS0.net
いずれC#も廃れるだろうが、みんなVBおじさんみたいにはならんようにしような

240:デフォルトの名無しさん
22/07/11 01:27:39.35 HIY5g3Yw0.net
ここは人格攻撃をする場と思ってんのか

241:デフォルトの名無しさん
22/07/11 05:54:55.27 L4tB3bvp0.net
VBの事を騙るスレでは無いな

242:デフォルトの名無しさん
22/07/11 06:46:54.81 GGvKul+ur.net
実際、c#って人気ないからな
人気はあるのかもしれないが使われていない
大規模システムはほぼJavaだし
簡単なWinFormくらいだろう
有名なシステムでこれといってc#が使われているということを聞いたことがない

243:デフォルトの名無しさん
22/07/11 07:48:56.03 iksZ9aQE0.net
いきなり2行で矛盾やめろw

244:デフォルトの名無しさん (ワッチョイ a37c-TkQT)
22/07/11 10:01:05 lOE9m3Ds0.net
wwww
まぁ、Unityが無ければそこまで覚えたいと思えるものではないかもな
今だとWindowsアプリ作ったりする人も減ってるだろうし
サーバーサイドでの採用率も低そうだし

245:デフォルトの名無しさん
22/07/11 10:35:46.98 1W23UOpta.net
それなりに使われてるが
どうせ下請け孫請けなので
守秘義務で外に出て来ないだけ

246:デフォルトの名無しさん (ワッチョイ d501-wywk)
22/07/11 11:55:44 5PTk/FF60.net
C#で作成したライブラリを他者に使われないようにする方法はありますか?
難読化しても呼び出すクラスやメソッドが分かれば、利用する事ができてしまうものでしょうか?

247:デフォルトの名無しさん (テテンテンテン MMcb-KNsQ)
22/07/11 12:12:35 Mu0Fq/b9M.net
難読化ってどこまでやってくれんだろうね
引数の数もメソッド名もぐちゃぐちゃにするなら、不可能では無いにせよ現実的に難しいと思うけど

248:デフォルトの名無しさん
22/07/11 12:28:05.13 Mu0Fq/b9M.net
クラス名や引数そのままなら、普通に推測は出来てしまうと思う
どうしてもってなら、アクティベーションみたいなネットワーク認証しないと使えない仕組み入れるしかない

249:デフォルトの名無しさん
22/07/11 12:30:30.12 +1/8CWP60.net
>>238
難読化でライブラリの中のコードが見れないように出来ても、公開しているものを隠すのは無理じゃないか
仮に隠せたら、自分でも利用できないってことに

250:デフォルトの名無しさん
22/07/11 12:57:01.67 dmn56bqZ0.net
>>239
自分のソフトを自分で逆コンパイルしてみればわかるよ

251:デフォルトの名無しさん
22/07/11 15:59:29.22 o+Vp/fL50.net
>>238
具体的に環境(.NET Core、.NET Framework、Unity…)や制限したい部分にも依るかねぇ?
外部からの参照方法によってはクラスやメソッド名まで変えられはしないだろうし
単にクラスライブラリとして露出させたくなければ共有プロジェクトにする方法も有るけど
Frameworkの単体EXEへ出来ればMatcode comPRESSerでも簡易的にデコンパイル阻止とか
netshrinkとかはDLLもバインドできて…難読化だけよりこういった包括的パッカー向き?
いずれにしても解析を完全阻止するのは不可能であるから、どこら辺を及第点とするか

252:デフォルトの名無しさん
22/07/11 17:53:50.74 d1RSnGBRM.net
もう見られたくない処理だけc++で書いてモジュールキックとかでいいんじゃないかな?

253:デフォルトの名無しさん
22/07/11 18:08:22.09 Gc8t7u3Xr.net
JavaオワコンでC#がそろそろ来る

254:デフォルトの名無しさん
22/07/11 19:02:02.38 5PTk/FF60.net
>>241
そですよね
>>243のような方法か.NET7のネイティブコンパイラに期待するか、
>>240, 244のように.NET以外で何らかの認証をするくらいしかないようですね

255:デフォルトの名無しさん
22/07/12 07:42:04.63 d+D22Oihr.net
>>245
もう10年以上そう言われてるが一向にJavaがオワコンにならずc#がオワコンしてる

256:デフォルトの名無しさん
22/07/12 08:10:19.93 cwVe/GJo0.net
URLリンク(redmonk.com)
未だにJava3位なんだな
今どこで使われてんの

257:デフォルトの名無しさん
22/07/12 08:12:48.62 xes6G2QHp.net
JavaパイセンはもうCOBOLの域に入ってるやろ

258:デフォルトの名無しさん
22/07/12 08:13:01.75 I1ttMvVed.net
サーバーサイド
C#も今ではほとんどがサーバーサイド

259:デフォルトの名無しさん
22/07/12 08:22:48.21 O8wzjFzNa.net
>>250
サーバーサイドで使われているか?

260:デフォルトの名無しさん
22/07/12 08:28:10.27 KuQV4+SIa.net
10年前はともかくOracleの有料化のインパクトはでかかったからな
新規案件は壊滅したわ

261:デフォルトの名無しさん
22/07/12 09:46:46.14 w0UtJt4u0.net
Javaは単価安いし

262:デフォルトの名無しさん
22/07/12 10:26:31.62 Sm3tO535a.net
トラブル繰り返してる某みずほ金融なんかは Java ? COBOL ?

263:デフォルトの名無しさん (ワッチョイ bd49-ezAM)
22/07/12 10:52:02 bC3C9A550.net
金融とかの規模で言語統一なんて無理やろ
メインフレームは減ったらしいけど、サーバーなんかは数百以上の規模であるんやないか?

264:デフォルトの名無しさん (ワッチョイ d501-TkQT)
22/07/12 11:05:26 7D6kUfzj0.net
同一規格のサーバーで数千台展開したあとに不具合見つかってどうしようもなくなった某国営企業とかあったから
あまり統一しまくってもいいことないよ

265:デフォルトの名無しさん
22/07/12 11:58:30.45 O8wzjFzNa.net
JavaはCOBOLの置き換え案件で多いな

266:デフォルトの名無しさん
22/07/12 13:29:14.03 UDBx8Sz50.net
YouTube で有名な雑食系エンジニア・KENTA の、
月千円の初心者向けRuby on Rails サロンには、日本6位の3千人が入っている。
(1位は、キングコング西野の数万人)
そのKENTAの天敵が、SES のモロー
2年前のモローの主張は、KENTAがRailsを勧める理由は、
ポートフォリオ制作を長引かせて、サロンで儲けるためであり、
Railsはオワコンで、転職には、PHP, Java を推奨していた
【2022年版】Ruby on Railsの将来性
ところが、モローのYouTube のこの動画では、
日本ではRailsが主流なので、Railsのキャリア相談などをやっているw
PHP, JavaのSES案件は、どうなったの?w

267:デフォルトの名無しさん (ワッチョイ 856e-lTRq)
22/07/12 19:27:59 OqOLXv5J0.net
winformsってまだまだ現役なの?いろんな現場行くとあれもこれもwinformsでせめてwpf使おうぜ……って思うんですが
そもそもデスクトップアプリってもう死に体じゃないんですかね。そんな仕事まだいっぱいある気がする

268:デフォルトの名無しさん
22/07/12 20:10:31.06 cwVe/GJo0.net
君がWPFの開発手法を広めればいいんじゃないかな
業務用アプリだと見た目大してこだわらないとこ多いし
慣れてる人多いWinFormでってなりがち

269:デフォルトの名無しさん (アウグロ MMa9-qjp3)
22/07/12 21:05:38 INSzBWFiM.net
なんかWPFは普通に組むのもままならない感じ

270:デフォルトの名無しさん
22/07/12 21:27:40.52 cwVe/GJo0.net
個人開発で自分一人で作るなら何使っても構わんけど
会社だと引継ぎも考えないといけないから中々そうもいかん
新しい技術導入しようとするなら、現状よりメリットあるのを上に説明して
軌道乗るまで全部自分が面倒見るくらいの気概がないとやれない

271:デフォルトの名無しさん
22/07/12 22:06:12.97 xb5/kh2z0.net
新しく入ってきたメンバーがFormsしか使ったことがないとかそもそもC#知らないとか
そういうのがないわけではないし、そういう場合は教育するわな。

272:デフォルトの名無しさん
22/07/12 22:37:57.38 7D6kUfzj0.net
>>259
wpfのメリットって何かあるの?

273:デフォルトの名無しさん
22/07/12 23:00:05.49 c+hHR+kn0.net
かっちょええ画面が作れる

274:デフォルトの名無しさん
22/07/12 23:04:53.21 w0UtJt4u0.net
pant.net はform で作られている。後は判るな?

275:デフォルトの名無しさん
22/07/12 23:17:33.70 LCOK+7zxp.net
でもMS内製のPIXはWPFだし

276:デフォルトの名無しさん
22/07/12 23:19:17.64 OqOLXv5J0.net
画面レイアウトが崩れないのは本当に大きい
というかUIをXMLの形で読めるという最大のメリットがある

277:デフォルトの名無しさん
22/07/12 23:25:28.09 6tTlbHbB0.net
WPFはネイティブコンパイルできれば化けると思う
はよせい

278:デフォルトの名無しさん
22/07/12 23:33:27.23 w0UtJt4u0.net
PintaはGTK#で作られている。後は判るな?

279:デフォルトの名無しさん
22/07/12 23:42:10.05 GM5H0U27p.net
でもMS製のMSIX Packaging ToolはWPFだし

280:デフォルトの名無しさん
22/07/13 00:08:28.23 Pn4iWwXT0.net
たまに居ますね Winformsに親を殺された人

281:デフォルトの名無しさん
22/07/13 00:16:22.28 UzSTT+o30.net
Winformsに母屋を取られた人が最近も誰かに発泡酒してたからね

282:デフォルトの名無しさん
22/07/13 02:56:59.27 dyEYJovX0.net
>>264
Winformと比較しての話だけど、
コントロールを何でも入れ子にできる
リサイズに追従したUIが簡単
UIの見た目のカスタマイズが簡単
高dpiモニタ対応が簡単
gitで管理しやすい
あたりがメリットかと
逆にこれらがいらないならWinformでもいい

283:デフォルトの名無しさん
22/07/13 06:49:24.41 tapB8dwS0.net
WPFの欠点


284:は素だと面倒臭すぎるから 何らかのツールキットを使う事になる点 で、どれを使うのという争いが始まる



285:デフォルトの名無しさん
22/07/13 10:38:20.60 KXEqytHsr.net
WinUI 3のこともたまには思い出してあげてくださいね

286:デフォルトの名無しさん
22/07/13 11:09:56.32 PcPKVcW10.net
リリースされたんだっけ?

287:デフォルトの名無しさん
22/07/13 12:41:53.51 0lUZ9jOo0.net
ベータを脱却してから教えてくれ

288:デフォルトの名無しさん
22/07/13 12:44:29.98 xT0Do9A+0.net
MAUI…

289:デフォルトの名無しさん
22/07/13 13:54:06.66 9C8kcpqG0.net
UWP・・・

290:デフォルトの名無しさん
22/07/13 15:36:04.89 Vti+UkSh0.net
まうい!

291:デフォルトの名無しさん
22/07/13 18:27:42.42 n1OVHpGm0.net
うぃにゅい!

292:デフォルトの名無しさん
22/07/13 20:30:31.03 ng/P0rRL0.net
高dpi対応とかってフレームワーク変える程の事なの

293:デフォルトの名無しさん
22/07/13 20:53:16.22 dyEYJovX0.net
>>283
WinformからWPFのことなら、フレームワーク変えるまでもない
お互いに入れ子にできるしな

294:デフォルトの名無しさん
22/07/14 12:36:38.90 LJpGcg2yM.net
WEBアプリ作ってwebviewで表示。

295:デフォルトの名無しさん
22/07/14 16:21:18.28 byMNg0Sy0.net
せめてwebview2にして

296:デフォルトの名無しさん
22/07/15 00:51:54.21 lF4sBNwn0.net
webviewとかになると別にC#で作る必要無いんだよねぇ・・・

297:デフォルトの名無しさん
22/07/15 13:25:44.04 Wgy0KDmed.net
>>284
でもWPFて専用ツール要るんでしょ?
winformの一部だけWPFにしてる例って示せる?

298:デフォルトの名無しさん
22/07/15 13:40:19.64 laDvzGYl0.net
WPFってUI部分をxamlで書いて中身をC#って感じだからWinFormから簡単に以降できるでしょ…

299:デフォルトの名無しさん
22/07/15 13:43:28.52 w1A0sfi20.net
>>288
専用ツールは要らない
VSだけで良い

300:デフォルトの名無しさん
22/07/15 14:35:32.64 8JvUuYmY0.net
blender わい無能け?

301:デフォルトの名無しさん
22/07/15 15:11:28.33 oyGbt8u5a.net
>>288
専用ツールは必要ないよ
例はelementhostでググるといろいろ出てくるよ

302:デフォルトの名無しさん
22/07/15 15:40:36.99 l4dzAa6fa.net
>>289
WPFにはこの距離感で正解だろうね

303:デフォルトの名無しさん
22/07/15 20:59:06.88 xUkWxi720.net
winformならdatasetで決まりだけど
wpfなら何使えばいい?

304:デフォルトの名無しさん
22/07/15 21:02:37.56 NwjizpFI0.net
datasetが使いたいのならwpfででも使ったらいいんでないの?
なにをききたいんかよく分らん

305:デフォルトの名無しさん
22/07/15 22:17:23.22 tP5MISnn0.net
現場入ったらDAOなるSQL文字列や接続処理を大量にぶちこんだ数千行の巨大クラス経由でデータベースにアクセスするシステムだったんですがこれはC#でも普通のことなんでしょうか
検索したらjavaの例ばっかだったのであまり一般的ではないのかなと。もしそうならC#ではどういうふうにするのが一般的ですか?

306:デフォルトの名無しさん
22/07/15 22:51:43.52 8JvUuYmY0.net
LINQ to SQL

307:デフォルトの名無しさん (ワッチョイ a301-BBl9)
22/07/15 23:47:25 IXEhYVNJ0.net
>>296
RepositoryをEntity Framework使って実装するのが一般的だと思う
各リポジトリは数千行とかには普通ならない

308:デフォルトの名無しさん (ワッチョイ f6bb-qysg)
22/07/16 07:10:20 QBuuK8Ob0.net
>>296
現場の設計者がアホなだけ
自分で読んでみてそのクラスの機能が必要充分か一回確認してみれば

309:デフォルトの名無しさん
22/07/16 09:42:56.36 e0GJPcDwM.net
DataAdapter使ってORマッピングやバリデーションをベタ書きでやってれば1つの処理だけで数百行にはなるから
古いシステムならそこまで稀有な例ってわけでも無いと思う

310:デフォルトの名無しさん
22/07/16 12:13:59.25 v3eAMl7Q0.net
あーやっぱり今はentity framewokですか。そっちは使ったことあったんですが
例えば1処理でかくなったら関数を抽出するとか、各処理の共通部分をやっぱり関数にまとめるとか、そういうことはしないもんなんですかね

311:デフォルトの名無しさん
22/07/16 13:34:39.24 OINdK0ey0.net
SQL自分で書きたいマンならDapperがよさげ

312:デフォルトの名無しさん
22/07/16 14:51:32.70 QBuuK8Ob0.net
>>301
普通はすると思うけど仕事だと下手に既存コード弄ってリスク増やしたくないんだろ
テスト工数も増えるし

313:デフォルトの名無しさん
22/07/16 15:54:38.42 qXcuC04/M.net
SIの開発は一気に組み上げて一発動いたらあとは保守部隊に引き継いで終わりだから、継続的に手を入れていくようなことはそもそも想定されてないの
また、初期開発は請負契約で運用保守は準委任契約である場合が多いため、
初期開発はなるべく手を抜いておいて負債を運用保守に押し付けたほうが儲かるという構造的な欠陥がある

314:デフォルトの名無しさん
22/07/16 16:54:10.22 4LgQTAiH0.net
ゲーム作ってんだけどテキストファイルで間に合ってるんだがSQLなんて本当に必要なの?
なんかかっこいいから使ってるとしか思えん

315:デフォルトの名無しさん
22/07/16 17:50:03.59 J14KlJd8d.net
>>301
いや、entityはむしろ使わない

316:デフォルトの名無しさん
22/07/16 18:10:22.69 RR+kpv810.net
なんだかんだdapperばっかりやわ

317:デフォルトの名無しさん
22/07/16 20:52:07.85 Nb4vyBV3M.net
もう全然DB使わなくなった
使い道が自分にはない
jsonで大体事足りる

318:デフォルトの名無しさん
22/07/16 21:18:54.87 eZm0P5Ef0.net
業務システムをDB使わずに組んだら死ねる

319:デフォルトの名無しさん
22/07/16 22:56:48.44 OINdK0ey0.net
DB使わずに済むような規模のシステムだけ開発してりゃいいなら楽やろな

320:デフォルトの名無しさん (アウアウウー Sa39-flVQ)
22/07/16 23:13:14 5hVjLW07a.net
なんかDB使うのがすげーとか思ってる奴がいるなw

321:デフォルトの名無しさん (ワッチョイ 6102-Vb2/)
22/07/16 23:13:58 OINdK0ey0.net
DBの役割を知らない馬鹿は別に使わなくていいと思うよw

322:デフォルトの名無しさん (アウアウウー Sa39-flVQ)
22/07/16 23:16:27 PZXE3zO/a.net
DBの役割とか言い出したw

323:デフォルトの名無しさん (オイコラミネオ MMad-GsVe)
22/07/16 23:19:22 Nb4vyBV3M.net
割獄さん!

324:デフォルトの名無しさん (ワッチョイ 762c-lpz1)
22/07/16 23:19:56 2WLM14wy0.net
Ruby on Rails では、100% データベースとActive Record と言う、O/R マッパーを使う

325:デフォルトの名無しさん (オイコラミネオ MMad-GsVe)
22/07/16 23:21:25 Nb4vyBV3M.net
お前も管理職にならないか?

326:デフォルトの名無しさん
22/07/17 02:17:02.00 3rxTO6dh0.net
ふと思ったんですがC#なんかやっててもwindowsformとかの仕事が降ってくるばかりでいつまで経っても時代遅れな雰囲気から抜けられない感じですか?
なんとなーくC#の案件が続いてその流れになっちゃってるんですが、なんか方向性を間違ったような気がします
デスクトップアプリはもう斜陽なんて言われてるのにそんなことばかりやってる自分が嫌になっています

327:デフォルトの名無しさん
22/07/17 02:36:33.68 TvncEQ/d0.net
構造体は値型(スタック)なのでnewしてもGCは動かないので、
純粋にコンストラクタの初期化分のCPUコストがかかる認識でいいですよね?

328:デフォルトの名無しさん
22/07/17 03:03:37.04 9EQc+RYe0.net
>>317
ML.NET 使うような仕事にありつけないのは
本人の努力不足(`_´)
マ板に行って傷口舐め合って来たまえ

329:デフォルトの名無しさん
22/07/17 07:20:35.53 mehD60UK0.net
言語に関わらず、個人事業者やそれに毛が生えた会社に来る仕事なんて限られてるんじゃないのか?

330:デフォルトの名無しさん (ワッチョイ fa87-GsVe)
22/07/17 08:36:44 LHtPuDrX0.net
>>304
だよな


331:。 俺は途中からパッケージ開発に移ったんだが長い人はいいんだけど 最近入ってくる人はだいたい作り逃げ前提の糞バグだらけで保守性皆無の ゴミコード量産されて本当に困ってる でもSIの開発で作り逃げしかやってこなかった人たちってこうなるの自然なんだよな コピペだろうが自分が理解していなかろうが作って逃げればあとは知らんという



332:デフォルトの名無しさん
22/07/17 10:37:04.13 y0CsF7TYM.net
逆に考えたらオリンピックレベルの技能と努力を強いられず
生活ができるなんて幸せじゃん
30歳で引退みたいなアスリートレベルの世界に行きたいですか?

333:デフォルトの名無しさん
22/07/17 10:38:34.95 y0CsF7TYM.net
医者なんて凡ミス誤診しても患者が死んじゃったりするから
そんなに責任の重い仕事やりたいですか?
そんな強メンタルなんですか?あなたたちは?

334:デフォルトの名無しさん
22/07/17 11:40:04.58 3rxTO6dh0.net
>>320
C#の問題じゃなくてSESにいることが問題だったか……

335:デフォルトの名無しさん
22/07/17 14:02:58.20 885G8LEt0.net
Windows のシステム自体がない
今のシステムは、Docker が100% で、DockerはLinuxだけの技術。
大手は、Kubernetes でオーケストレーションする
一応、AWS Lambda のデフォルト言語に、C#, PowerShell は採用されているけど、
これで開発する人は少なそう。
たぶん、可読性の高い、Ruby で書く香具師が多そう
Java, Go,
Node.js, Python, Ruby,
C#, PowerShell
Goも採用されているけど、PHPは採用されていない。
たぶん、PHPはコーダー扱いで、プロとはみなされていない
Rust, Elixir も採用されていない

336:デフォルトの名無しさん
22/07/17 14:51:28.32 3yDcxDBnr.net
あわしろを召喚しちまうから、Linuxの話題はやめとけ。

337:デフォルトの名無しさん
22/07/17 15:17:19.36 QiBhjgara.net
>>323
SEなんて凡ミス埋バグしてもDATAが飛んじゃったりするから
そんなに責任の重い仕事やりたいですか?
そんな強メンタルなんですか?あなたたちは?

338:デフォルトの名無しさん
22/07/17 15:42:29.27 4FAeL+DS0.net
>>325
嘘ばっか

339:デフォルトの名無しさん
22/07/17 15:55:15.25 fvxh8ZLF0.net
仕事は仕事として粛々とやりゃええやん
やりたいことは趣味プログラミングで

340:デフォルトの名無しさん
22/07/17 16:08:59.03 eihDCF0Fa.net
>>328
相手すんなよ...

341:325
22/07/17 16:59:42.02 885G8LEt0.net
YouTube で有名な雑食系エンジニア・KENTA のRuby on Rails サロンは月千円で、
日本6位の3千人が入っている。1位はキングコング西野の数万人
KENTAの天敵がSES のモローで、
2年前は、Railsはオワコンで、KENTAがRailsを勧めるのは、
ポートフォリオ制作で、サロンの滞在を長引かせて儲けるためで、
Java, PHP の方が稼げると勧めていた
【2022年版】Ruby on Railsの将来性
ところが最近の、YouTube のこの動画では、
Rails一色で、キャリア相談まで始めたw
Java, PHPのSESは、どうなった?w
一方、KENTAはPHP, Scala をオワコン認定したから、
Laravel を使っているZOZO や、Scalaを使っているTwitter などは大変。
まともな開発者が集まらない

342:デフォルトの名無しさん
22/07/17 17:28:50.00 ByZDr6EM0.net
気持ち悪すぎワロタ

343:デフォルトの名無しさん
22/07/17 21:15:05.74 V9ww3jje0.net
こういう同じ内容を何度もコピペするのって、電車の中で車掌さんのモノマネしてる人と同じようなものらしい

344:デフォルトの名無しさん
22/07/17 21:47:03.84 ZrZAFIJX0.net
そんな表現せんでも知能ボーダーか発達だろうってことくらいわかるわ

345:デフォルトの名無しさん
22/07/17 23:20:39.17 3rxTO6dh0.net
仕事は仕事って割り切れる人強いなと思う。こんな長い時間かけるものがつまらないって辛いし、
やってることが有意義かどうか、将来性があるのかどうか、そういうこと全部考えちゃう。今どきC#でデスクトップアプリなんか作ってるともうね……いやC#という言語はバランス取れてて大好きなんだけど
ウェブの話なんか見ててもjavascript全盛って感じでASP.NETの話題なんてぜんぜん出て来ないし

346:デフォルトの名無しさん
22/07/17 23:25:54.07 ByZDr6EM0.net
ウェブなんか金になんねーからやめとけって言ってるだろ

347:デフォルトの名無しさん
22/07/17 23:35:41.92 ByZDr6EM0.net
足が早い業界ってのはいいことばかりじゃないぞ
ウェブ系ってのは1年後には使ってるライブラリがゴミになるから
設計やらドキュメントを書く能力ってのがつかない
その環境で育つと今度大手から比較的しっかりしたアプリの改修依頼なんて請けても全く何の役にも立たずに終わる
せっかく大きな仕事もらったのにね
クソみたいなアプリをベンチャーで組み続けるのはオススメできない
クソにいるとクソに染まる
なぜ外注に出すか?
そりゃ自社の社員にやらせたくねーゴミ仕事だからさおk?

348:デフォルトの名無しさん
22/07/17 23:49:55.40 ByZDr6EM0.net
お前のプログラムは
工場のロボットアームを動かすか?
病院の医療機器を動かすか?
空港の飛行機を飛ばすか?
ダムの水門を開くか?
防災装置を動かすか?
街に警報を鳴らすか?
電車の運行管理をするか?
精密部品のレーザー加工ができるか?
半導体を作れるか?
本やお札を印刷するか?
お前のプログラムは世界を動かしているか?
こういう仕事に関われないと
結局世の中に必要ないってことなんだぜ
それを忘れるなよ
その現場では最新技術なんて使われてはいないんだ

349:デフォルトの名無しさん
22/07/17 23:58:52.02 anUNIeB80.net
気持ち悪すぎワロタ

350:デフォルトの名無しさん
22/07/18 00:00:01.14 PCxCS/eQ0.net
言いたいことはわからんでもない
一時期は組み込みや制御系と比べて帳票出したり画面に明細表示するような仕事が同等とは思えなかった
最近は餅は餅屋だと割り切って目の前の仕事に集中するように切り替えたけど

351:デフォルトの名無しさん
22/07/18 00:12:21.41 /clcF0nA0.net
>>335について言えば
失礼だけど>>259以降のレス見る限りIT土方続けたほうがいい人材に見える
今時DAOベースのシステムが普通かどうかとか質問してる時点でロクに勉強してないのが分かるし
デスクトップアプリはどうたらぐちぐち言ってるが
その状態でWeb系行ったところで誰でもできる仕事しか任してもらえず同じことにしかならんよ
面白い仕事がしたいならまず技術を身につけろ

352:デフォルトの名無しさん
22/07/18 00:12:53.45 WqaevNOB0.net
>>こういう仕事に関われないと
>>結局世の中に必要ないってことなんだぜ
なんという選民思考だ
そもそも仕事として存在するなら誰かが必要としたってことだぞ

353:デフォルトの名無しさん (ワッチョイ f6bb-qysg)
22/07/18 00:48:13 J/WuRN6s0.net
>>335
黙々と目の前の仕事こなして生活の金貰えてりゃそれでいいんじゃねーの?
デスクトップアプリ作って金になるんならそれでいいだろ
現状に満足できないならここでうだうだ曖昧なこと言ってないでとっとと勉強して転職でもしろよ
つまらない仕事が辛いってのは同意だけど今のお前に何が出来るの?

354:デフォルトの名無しさん
22/07/18 01:07:40.05 NBG1oOLu0.net
>>308
DBにJSONを入れるんじゃないの?どゆこと?
保存先ってDBかファイルしかないと思うんだが

355:デフォルトの名無しさん
22/07/18 01:49:42.51 HfV+EUkpp.net
Windowsは64bit版だしメモリも16GB積んでるしで、
5GB超えるファイルをメモリに一気読みしようと
File.ReadAllBytesしたら2GB超えてるのでデカすぎると怒


356:られました じゃあってんで、FileStreamでReadしようとしたら 引数にはint32しか使えないので、長さ指定で一気読みも 読み込み位置指定で分割読みもできません どうするのが正しいのでしょうか



357:デフォルトの名無しさん
22/07/18 03:26:21.40 BheDIyMp0.net
2gb超えるファイル c#
でググったらありそうだったよ

358:デフォルトの名無しさん
22/07/18 03:38:22.73 Sge/OBzM0.net
>>345
Readだけでやろうとしてるってことかな?longオフセットでSeekしてから2GBのintの範囲でちまちま読むだけだよ
メモリマップを使う方法もあるがランタイムの実装の問題かWin32API程の速度は出ない

359:デフォルトの名無しさん
22/07/18 10:09:05.44 Fm3knAG80.net
大本のWin32APIのReadFileがuintで読み取りバイト数を受け取るから一度には4GBまでしか読めないしね

360:デフォルトの名無しさん
22/07/18 10:27:23.64 oHEOszJwM.net
>>345
バッファを1GB x 5とかにしてReadを繰り返せば?

361:デフォルトの名無しさん
22/07/18 11:22:20.32 9iZmYTdvM.net
1G以上を一気読みしてんの?
豪気だね
自分は小さなバッファでぐるぐるさせてるけどまあそれぞれやり方があるんだろうな

362:デフォルトの名無しさん
22/07/18 11:32:02.70 3U14fHdR0.net
確かに C# read huge file で検索すればいくらでも見つかるわな
ただし英語がわからない子にはつらいググるよね

363:デフォルトの名無しさん
22/07/18 11:33:15.60 1omE+gQaa.net
URLリンク(docs.microsoft.com)
URLリンク(docs.microsoft.com)

364:デフォルトの名無しさん
22/07/18 22:41:12.43 YPVdfKJLM.net
>>349のやり方サンプル
URLリンク(dotnetfiddle.net)

365:デフォルトの名無しさん
22/07/18 23:01:02.95 8lDJFmzD0.net
>>317
WPFやろう
winformとそんなに変わらん

366:デフォルトの名無しさん (ササクッテロラ Sp75-v9yF)
22/07/19 00:04:51 cnP8orP7p.net
345です
1GBずつ読み込むことにしました
まだこんな制約が残っているのが意外でした

367:デフォルトの名無しさん
22/07/19 07:19:11.53 prKmv0KHM.net
>>355
そうか、NTFSは4G越えると、undelete
するすべが無い事を知っておののけw

368:デフォルトの名無しさん
22/07/19 10:54:49.43 TuuoTUXUr.net
でかいデータは少しずつ

369:デフォルトの名無しさん
22/07/19 23:37:02.18 ItJIoKptM.net
1Gや5Gのファイルなんて直接丸々読んだことなんてないな
winで32ビットだとプロセス当たりでユーザーが使えるメモリは全て含めて2Gまでだったからな
DOSの頃だとは64KB壁があった
windows3.1からwin95なっても開発環境が対応してなくてまだ壁があった
それ以上のメモリを直接扱えなかったので64KBのブロックを配列でもってアクセスしてた
C#のご先祖様delphi(16bit)も同じ

370:デフォルトの名無しさん (ワッチョイ 6a2d-1xaO)
22/07/19 23:51:27 D+CimJEC0.net
3行目から後ろは要らんよ
今となっては何の参考にもならん

371:デフォルトの名無しさん (ラクッペペ MM0e-tsYU)
22/07/20 00:11:30 tWgqxNamM.net
自分が使う自分のプログラムなら自分のPCに合わせて大量メモリ好きなだけ使えばいい
自分の研究用とかならよくある話
ま、読み込み分割ぐらいバカでも書けるだろ
一般用として一般人に需要無いことを自覚してなおAPIの制限にけちをつけるのなら立派なマカーだ

372:デフォルトの名無しさん
22/07/20 03:27:01.46 kPGNXMXW0.net
そもそもC#って5ギガのbyte配列作れないよね
Macは5GBのファイルをメモリに一気読みできるの?

373:デフォルトの名無しさん
22/07/20 09:05:44.74 z1C6xKss0.net
記憶が正しければ「リード一回」は4GBが限界
確かNSInputStream.readがmaxLen引数をNSUIntegerで取ってたから
NSDataには仕様上エクサバイトまで初期化と同時に読み込めた筈だが
内部ではbyte配列を束ねて確保してるだろうから、File.readAllBytesと比較するのはちょっとズレてると思う

374:デフォルトの名無しさん (オッペケ Sr75-J8jO)
22/07/20 09:35:21 889JAPzur.net
ビッグデータとかに関わってるとそういうの頻出なのかしらん

375:デフォルトの名無しさん
22/07/20 09:48:12.67 pMjQmXrIM.net
ビッグデータはせいぜい数百MBくらいでファイルに分割して扱うから実はあまり関係なかったりする
分散処理を積極的に使う性質上、非常にインフラのトラブルを起こしやすいので、効率を犠牲にしても細かいノード依存の制約とか気にせずに大雑把に扱えるように設計する

376:デフォルトの名無しさん (ワッチョイ 8949-J8jO)
22/07/20 09:53:30 XONXHfOv0.net
はえー、そうなんだ

377:デフォルトの名無しさん (ワッチョイ 71da-5yMK)
22/07/20 09:56:23 L6JCmqAC0.net
google のアクセスデーターは塊で来るが、加工済みのを貰っているのかのぅ?

378:デフォルトの名無しさん
22/07/20 15:26:43.59 gyCFtoBM0.net
そんな面倒くさい事やるより
単純に手動でファイル分割すりゃ終わるんよ
俺はそうやって対応した

379:デフォルトの名無しさん
22/07/20 15:46:29.24 gv0+evicM.net
ギガ単位の一括読み込みが効率いいユースケースなんてある?

380:デフォルトの名無しさん
22/07/20 16:11:51.02 rtySiySx0.net
>>368
そもそも一括読み込みなんて無理な大きさの場合はデータごとにシーク位置のリストを作っておいて
その都度シークして読み込む
大抵はこれで行ける
例えリアルタイムのゲームでもね

381:デフォルトの名無しさん
22/07/20 16:14:00.13 kuLnetgIM.net
>>368
全域へのランダムアクセスが必要なケース
ソートなんかそうだな
事前に分割して各々ソートした上で最後にマージすることもできるけど、全部オンメモリに比べたら遅いよそりゃ

382:デフォルトの名無しさん
22/07/20 17:43:40.71 eiArQYUjM.net
読み込んだ後だけ考えたらそりゃメモリに乗ってる方がいいだろうけど
読み込むところも含めればソートだってストレージから読みながら分割して並列処理した方が効率いいでしょ

383:デフォルトの名無しさん
22/07/20 19:11:22.01 oyesoq1vM.net
手元にあるG単位のファイルって動画ぐらいだけど一気読みする利点はゼロ

384:デフォルトの名無しさん (オイコラミネオ MMad-GsVe)
22/07/20 19:18:07 oyesoq1vM.net
>>370
常識的に考えるとインデックスをソートするだろうな
それとも5Gのインデックスなんだろうか?

385:デフォルトの名無しさん (アウアウウー Sa39-flVQ)
22/07/20 19:52:04 Wcsdz2t6a.net
そもそも5Gを一気読みって指示してもOSは適当なサイズに分割して読み込むんだからあんまり意味ない

386:デフォルトの名無しさん (オイコラミネオ MMad-GsVe)
22/07/20 20:00:49 oyesoq1vM.net
泣きながら最後まで一気に読みましただっけ?

387:デフォルトの名無しさん (ワッチョイ f6bb-D50K)
22/07/20 20:05:56 NEo/Ls+t0.net
5Gなんて、ワクチン打てば瞬時に読み込めるだろ

388:デフォルトの名無しさん
22/07/20 22:12:36.45 HgV0a3Le0.net
入力バッファーのサイズはOSで変えられるんじゃなかったっけ?
でも5Gかあ
どっかのハードウエアが物理的に対応できない可能性はあるな

389:デフォルトの名無しさん
22/07/21 10:35:48.67 SIRf9/Re0.net
>>374
WindowsならOSレベルだと一気に読み込むことも可能
CreateFileでFILE_FLAG_NO_B


390:UFFERINGを指定して開くことでカーネルの一時バッファを介さずにストレージ→プロセスのメモリにダイレクトでIO出来る メモリアラインメントとバッファサイズをファイルシステムのセクタの倍数にしないといけないから面倒だが



391:デフォルトの名無しさん
22/07/21 10:51:29.63 i9T4zyPva.net
>>378
バッファリングの話じゃないよ
ディスクファイルってフラグメントもあるからドライバレベルでは分割されてるって話

392:デフォルトの名無しさん
22/07/21 11:56:22.98 SIRf9/Re0.net
>>379
うん、だから「OSレベルだと」と言った
フラグメントが一切なくシーケンシャルに読み込める場合でも基本は一度カーネルのバッファが通される
それを378で回避することも可能って話

393:デフォルトの名無しさん (アウアウウー Sa39-flVQ)
22/07/21 16:07:57 zJ650foVa.net
>>380
だからOSレベルでも5Gなんて一気に読めないって
Oracleみたいに専用のドライバ持ってるとかでないと無理

394:デフォルトの名無しさん
22/07/21 17:06:14.18 SIRf9/Re0.net
>>381
>>348で4GBまでしか読めないことは説明してるし5GBを一気に読めると言いたいつもりではなかった
カーネルのIOバッファ以上~4GB以下のサイズであれば>>374が言うようにWindows的には内部で分割して複数回に渡ってIOを行ってる
それをダイレクトに一気に行う方法もあるって話だけどまあ一般的には知る必要のない知識ではある

395:デフォルトの名無しさん
22/07/21 17:28:09.55 dDFi97kr0.net
>>382
結局分割してんじゃん
何がメリットだって言いたかったの?
マジでわからん

396:デフォルトの名無しさん
22/07/21 17:40:10.41 dTFhTK6qa.net
>>382
しつこいね、2GBとかでも専用ドライバでも作らないと一気に行くのは無理だって話だぞ
バッファリングしないことと一気に行けるかどうかは別の話

397:デフォルトの名無しさん
22/07/21 17:41:55.76 dTFhTK6qa.net
>>383
FILE_FLAG_NO_BUFFERING知ってる俺すげー君なんだろうと思う
そんな話は誰もしてないのにねw

398:デフォルトの名無しさん
22/07/21 19:03:57.53 e1iiLxv7a.net
そうやって誰も発言しなくなる

399:デフォルトの名無しさん
22/07/21 19:15:44.77 dDFi97kr0.net
こいつはいらねーだろ

400:デフォルトの名無しさん
22/07/21 20:43:01.59 SIRf9/Re0.net
>>383
メリット無いと思うならそんなフラグ用意してるMSがバカってことでいいんじゃね
俺はメリットありまくりだと思うからMSがバカだとは思わんけどな

401:デフォルトの名無しさん
22/07/21 21:30:51.00 v1bwr09cM.net
そんなに向きになる話なんだろうか
建設的じゃない

402:デフォルトの名無しさん (ワッチョイ 7579-D50K)
22/07/21 21:49:57 o92gVnUV0.net
64bitOSのくせにsigned intのせいで2GB制限て何なのって思うよな
64bitseekしてちょい読みは32bitの頃もやってたし

403:デフォルトの名無しさん (アウアウウー Sa39-flVQ)
22/07/21 22:11:36 h7wFy3dLa.net
>>389
引っ込みつかなくなってるだけでしょ
そもそもFILE_FLAG_NO_BUFFERINGはOSのバッファリングを回避してアプリケーションで制御するためのフラグででかいデータを一気に読むためのフラグじゃ無いし

>>390
だから5GBとか指定しても内部的には分割して読み書きしてるんだからあんま意味ない
ガチでやるなら専用ドライバからやらないとダメだし

404:デフォルトの名無しさん (ワッチョイ 71da-5yMK)
22/07/21 22:24:41 uwgzEVAr0.net
まっバースト転送は他デバイス使えば切れるし
C#スレで続ける内容としては終わりで良いんじゃね?

405:デフォルトの名無しさん
22/07/22 07:26:42.82 RqTlRDAlp.net
5ギガのbyte配列作れるようになってから再開しましょう

406:デフォルトの名無しさん
22/07/22 13:10:44.09 ZzUgbaoDd.net
WSLでも4GB制限あんの?

407:デフォルトの名無しさん
22/07/22 14:09:41.08 50nE7LhG0.net
まだやりたいなら自分で試すなり別スレ立てるなりしろよ

408:デフォルトの名無しさん
22/07/22 22:23:39.89 G0WVpIDv0.net
C#関連でレスバトルが発生するとき、
そこにはZuishinがいるのだ

409:デフォルトの名無しさん
22/07/26 22:53:34.71 AyLmuCWp0.net
今更だけどディープラー�


410:jング(AI)にも力入れてるんだなって記事 https://medium.com/@NegativeMind/c-%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E5%8F%AF%E8%AA%AD%E6%80%A7%E9%87%8D%E8%A6%96%E3%81%AE%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-kelpnet-e887c7f31115 日本人なのが良いね



411:デフォルトの名無しさん
22/07/26 23:11:10.55 IrL7txwd0.net
■Voicy、1,600を超えるチャンネルのうち、半数が収益化を実現。声の
スポンサーなどの収益化プログラムを通じて、音声発信を収益の選択肢に。
株式会社Voicyが運営する音声プラットフォームVoicyでは1,600を
超えるチャンネルのうち約半数が収益化を実現、1ヶ月の収益が
800万円を超えるパーソナリティも生まれました。
クリエイターエコノミーという経済圏が期待されていますが、Voicyは声が
収益を得るひとつの選択肢となる土壌を整え、可能性を広げていきます。

412:デフォルトの名無しさん
22/07/27 08:20:26.86 xNqFXDdc0.net
>>397
古いわ
2年も前に更新が放棄されたようなライブラリを
使う奴は多分居ないな

413:デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
22/07/27 10:06:00 elZrgoJKa.net
>>398
ちょまどが飽きたからオワコンだと思う

414:デフォルトの名無しさん (アウアウウー Sa5d-Ecv2)
22/07/27 12:05:32 ULjK+n4Sa.net
ちょまどどんだけ権力あるのよ

415:デフォルトの名無しさん
22/07/27 12:23:51.88 3GAh1Njq0.net
Xamarinが姫プで潰れたのにまだやってんのかすげーな

416:デフォルトの名無しさん
22/07/27 13:26:23.40 +1BW8lNBM.net
何年か前にMSのカンファレンスに行ったときはちょまどの祭り上げが酷くて、公式というのが信じられないレベルだったな
MS本社のお偉いさんも引いてた
さすがに昨今の時勢であれは問題になると思うが、まだやってんの?

417:デフォルトの名無しさん
22/07/27 17:40:52.28 qbX+34jla.net
もう旬を過ぎた歳だろw

418:デフォルトの名無しさん
22/07/27 19:01:23.92 H9RPm4O1M.net
旧統一教会の個人崇拝と変わらない気がするな
怖いな

419:デフォルトの名無しさん (ワッチョイ d901-FJRz)
22/07/28 00:38:46 gZpd6Q6N0.net
キショいから話題に出すなよ・・・

420:デフォルトの名無しさん
22/07/28 02:04:06.89 RLUbCsLl0.net
C#のちょまど、RubyのYugui

421:デフォルトの名無しさん
22/07/28 02:11:06.30 RLUbCsLl0.net
途中で書き込んじまった・・・・・
C#のちょまど、RubyのYuguiみたいに、各言語で有名人が出てきたら盛り上がりそう
一昔前だったら新しいOS等が出るたびに二次元キャラクターが作られていたりしたけど、やっぱ時代は3Dだ

422:デフォルトの名無しさん
22/07/28 02:12:56.52 fA0dLJTi0.net
wnnの

423:デフォルトの名無しさん
22/07/28 02:36:12.72 Pq2AIR8P0.net
藍澤光は一時期、話題になったな

424:デフォルトの名無しさん
22/07/28 09:57:27.77 TMsgccKL0.net
Perlのひろゆき

425:デフォルトの名無しさん
22/07/28 12:32:29.16 2Rw/B+fk0.net
Pythonのアフィカス

426:デフォルトの名無しさん
22/07/28 12:38:20.66 ZE8aUmrAM.net
rubyのちょMattz

427:デフォルトの名無しさん
22/07/29 07:28:23.86 mdlGGONh0.net
悍ましい

428:デフォルトの名無しさん
22/07/29 08:35:16.83 1GTLAz+N0.net
久しぶりにちょまど調べたら巨乳で美人になっててワロタ

429:デフォルトの名無しさん
22/07/29 09:22:18.76 svfZpDYP0.net
アベマでニュース番組のMCとかやってるしもはや芸能人

430:デフォルトの名無しさん
22/07/29 10:18:53.57 83FCGJIu0.net
昔はちょまどさんは貧乳だったのですか?

431:デフォルトの名無しさん
22/07/30 09:24:21.97 Gq7vfC3O0.net
>>377
その昔ReadFileで16 MiBytes読めなかった思い出

432:デフォルトの名無しさん
22/07/30 09:58:01.85 paa5jUiAa.net
64KBの壁な

433:デフォルトの名無しさん
22/07/30 11:23:09.45 YI8isAMRM.net
スレの上の方でその内容を書いたら辛辣な言葉を投げかけられた

434:デフォルトの名無しさん
22/07/30 11:25:51.44 WggjO0SM0.net
>>420
64KBの壁な w

435:デフォルトの名無しさん
22/07/30 11:44:12.32 paa5jUiAa.net
これのことかω
>>83

436:デフォルトの名無しさん (ラクッペペ MMee-RMTR)
22/07/30 15:42:48 cxvuT0ApM.net
この程度で辛辣とは

437:デフォルトの名無しさん
22/07/30 16:25:34.65 XjLs7eTw0.net
mac の A5の悲劇なんて32Kbなんだがのぅ

438:デフォルトの名無しさん
22/07/30 21:46:46.80 w6XZ/eyH0.net
質問が少なくなるとああ夏休みなんだなと感じる

439:デフォルトの名無しさん
22/07/31 02:09:12.35 usagdBtl0.net
Yuguiというのを初めて聞いたからググったけどうーんとなった
ちょまどは胸でけーと思ってたのに水着画像出したらそんなでもなくてあれ?って

440:デフォルトの名無しさん (ワッチョイ 0d05-Og+R)
22/08/01 09:14:25 8QYJLp9l0.net
IPC通信をしたくて他所様のサイトをコピペしてプログラムの動作を見てみようと思ったのですが
System.Runtime.Remoting.RemotingException: '型 'IPCクライアントコンソール.SampleRemoteObject,
IPCクライアントコンソール, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' を読み込めません。'
とエラーが出てしまいます。以下プログラムのどこが問題でしょうか?

441:427 (ワッチョイ 0d05-Og+R)
22/08/01 09:18:18 8QYJLp9l0.net
文字数制限にかかったのでプログラムを分けました。よろしくお願いします。
■サーバ
class Program{
static void Main(string[] args){
IpcServer server = new IpcServer();}
}
class IpcServer{
public SampleRemoteObject remoteObject;
public IpcServer(){
IpcServerChannel ipcChannel = new IpcServerChannel("ipcSample");// IPC Channel作成
ChannelServices.RegisterChannel(ipcChannel, true);// チャンネル登録
remoteObject = new SampleRemoteObject();// リモートオブジェクト生成
RemotingServices.Marshal(remoteObject, "test", typeof(SampleRemoteObject));
}
}
■クライアント
class Program{
static void Main(string[] args){
IpcClient client = new IpcClient();// クライアントオブジェクト生成
client.remoteObject.Command = Console.ReadLine();// 送信する文字列の入力
}
}
class IpcClient{
public SampleRemoteObject remoteObject;
public IpcClient(){
IpcClientChannel channel = new IpcClientChannel();// クライアントチャンネル生成
ChannelServices.RegisterChannel(channel, true);// チャンネル登録
remoteObject = Activator.GetObject(typeof(SampleRemoteObject),
"ipc://ipcSample/test") as SampleRemoteObject;// リモートオブジェクト取得
}}
■共通オブジェクト
public class SampleRemoteObject : MarshalByRefObject{public string Command { get; set; }}

442:デフォルトの名無しさん (オイコラミネオ MMbd-dSCr)
22/08/01 09:42:13 IeJPEKz9M.net
IPC通信はもう使わないほうがいい
多分誰も使ってない

jsonとか投げたほうがまし
もうサポート切られるだろう

443:デフォルトの名無しさん (ブーイモ MM9a-Ar6L)
22/08/01 10:12:56 qGmq8aN9M.net
.NET Remortingは.NET5以降で廃止されたから今更使っちゃダメ
なおWCFも廃止され、MSの今の推奨はgRPC

444:デフォルトの名無しさん
22/08/01 13:13:50.40 gUPs6Ohv0.net
でもプリインは.NET Framework4.8でしょ?

445:デフォルトの名無しさん
22/08/01 14:09:10.88 9ms8u+Pj0.net
いまどき2029年とかまでサポートしてくれるんだもんな、偉いよMS

446:デフォルトの名無しさん
22/08/01 14:12:12.27 ix57TGyWM.net
>>431
5以降は実行環境に.NETをインストールする必要がなくなったから関係ない
アプリに.NETを同梱して配布するのが今のスタンダードであり、今後.NETの新バージョンがWindowsにプリインされることは恐らく無い

447:デフォルトの名無しさん
22/08/01 14:51:18.83 YHYFdRah0.net
でも5以降はすぐサポート切れちゃうじゃん

448:デフォルトの名無しさん
22/08/01 15:07:06.39 09AtLgAc0.net
どうでもいいから質問に答えてやれよ
俺は知識ないから無理

449:デフォルトの名無しさん
22/08/01 15:43:14.07 kNeknzrgd.net
3.5のようには4系は切れないんじゃないかな
始めからcoreしかない環境ならともかく

450:デフォルトの名無しさん
22/08/01 15:44:46.74 GQMzgwKzd.net
サポートは切れないだろうけど、近いうちにオプション扱いになるだろうね

451:デフォルトの名無しさん
22/08/02 05:24:33.21 dOTebwan0.net
namespaceと名前空間の名前が似てて初心者分かりづらくなってると思うんだけどどう思う?
普通に名前空間はライブラリ名とかでよくね?と思ってるんだが

452:デフォルトの名無しさん (ワッチョイ 4541-+nKW)
22/08/02 07:21:26 k80TbHLa0.net
roadと道路は似てるね

453:デフォルトの名無しさん
22/08/02 08:18:52.40 sghojaj2r.net
そうどちらも~目的のた~めに~

454:デフォルトの名無しさん
22/08/02 09:13:26.29 dOTebwan0.net
今のVScってWinUI3で書かれてんのかな?

455:デフォルトの名無しさん
22/08/02 09:36:31.99 jfVGGafFM.net
VSCodeはElectron
VSCodeはMSスタック外のコミュニティから不信感を持たれないようにブランディングにかなり気を使ってるから、
一応クロスプラットフォーム対応だがWinファーストの印象を強く与えるWinUI採用はありえない
Flutterとかなら将来的にはあるかもね

456:デフォルトの名無しさん (ワッチョイ 7a01-7LJf)
22/08/02 10:33:29 dOTebwan0.net
>>442
へー道理でクソダサいと思った

457:デフォルトの名無しさん (ワッチョイ 9949-BIed)
22/08/02 11:02:31 Gd43XZqn0.net
VScodeいいよね、今はVSも良くなったけど
最近ではwinでは1番人気と言われても異論ないやろ
エンジニアの欲しい部分を攻めたいい製品だよ

458:デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
22/08/02 11:10:07 aTV235290.net
C#だとVS一択でcodeは使用しないと思ってたんだけど使うの?

459:デフォルトの名無しさん (ブーイモ MMee-Ar6L)
22/08/02 11:16:03 OztZOyOvM.net
C#でもWeb開発ならVSCodeで十分いける
最近はフロントエンドの比重が大きくなってるから、自分の場合はVSCodeに寄せたほうが開発効率が高い

460:デフォルトの名無しさん (ワッチョイ 56bb-qaF0)
22/08/02 11:20:10 aTV235290.net
フロントか!

なんか頭が硬かったかも
さんきゅ

461:デフォルトの名無しさん (ワッチョイ c587-OtAY)
22/08/02 11:23:59 rs6fnhcJ0.net
>>438
namespaceと名前空間って何か違うの?

462:デフォルトの名無しさん
22/08/02 11:32:28.03 dOTebwan0.net
>>448
そりゃ違うでしょ

463:デフォルトの名無しさん
22/08/02 11:40:30.28 C80vNjl9r.net
VSCodeはマルチスレッドではないから激重

464:デフォルトの名無しさん
22/08/02 12:31:34.28 7h3r7KZi0.net
>>432
3.5も切ってくれれば喜んで4.8に移行するのにと
未だに2.0がメインの俺社

465:デフォルトの名無しさん
22/08/02 12:47:10.72 5WShikIl0.net
今どき2.0はきつすぎるな・・・乙

466:デフォルトの名無しさん (ワッチョイ faad-//s3)
22/08/02 13:46:27 d+m2jlTe0.net
>>449
え?

467:デフォルトの名無しさん
22/08/02 14:49:22.13


468:f8W0+U3I0.net



469:デフォルトの名無しさん
22/08/02 15:06:09.69 Gd43XZqn0.net
どうでもいいけど無駄に煽るやつ増えたよな、夏休みか

470:デフォルトの名無しさん
22/08/02 16:19:25.27 rs6fnhcJ0.net
>>449
同じものだと思ってたんだけど、何が違うの?

471:デフォルトの名無しさん
22/08/02 17:11:29.89 clHk+QvDM.net
文字数が違うな

472:デフォルトの名無しさん
22/08/02 17:26:15.48 aTV235290.net
文脈で違いのあるケースはある
たとえば、namespace はキーワードだけど名前空間はキーワードじゃないとか
ただ今暴れてるやつはただのアホだろ

473:デフォルトの名無しさん
22/08/02 18:00:45.92 UKGz6HDN0.net
C#に限らず初心者板には必ず中身のない煽りカスが枠からシカトでok

474:デフォルトの名無しさん
22/08/02 22:55:25.35 fEaKkp4Yr.net
初心者だけどclassって1class1.csファイルで作ったほうがいいのかね?
今はmain.csに全部記入してるけど

475:デフォルトの名無しさん
22/08/02 23:09:08.14 UKGz6HDN0.net
その認識で問題ない
更にファイル名とクラス名を一致させとくとVSはファイル名変更したら自動でクラス名も変更してくれた気がする

476:427 (ワッチョイ 8ee9-Og+R)
22/08/02 23:37:30 HIxaLOVl0.net
もうIPC通信は使わないんですね。
教えて貰ったgRPCを調べてみます。ありがとうございます。

477:デフォルトの名無しさん
22/08/03 07:11:42.49 oaEyiw1/r.net
>>461
なるほどサンクス

478:デフォルトの名無しさん
22/08/03 10:00:34.32 aXt/7uHrd.net
>>461
フォルダ階層とnamespaceも一致してないとだめなんじゃなかったっけ?

479:デフォルトの名無しさん
22/08/03 10:28:26.50 H0TN7wdQ0.net
namespaceだけ変えて試したけど自動で変更されたよ
仕様は知らんからまあ参考程度に

480:デフォルトの名無しさん
22/08/03 10:54:17.16 o11ILsU3d.net
>>465
おぁ、ありがとう。勘違いだったかな。申し訳ない

481:デフォルトの名無しさん
22/08/05 08:16:03.80 PgkbhFj60.net
Classの変数をMainクラスに持ってきたいのですがどうすればよいでしょうか。
URLリンク(imgur.com)

482:デフォルトの名無しさん
22/08/05 08:19:51.47 PgkbhFj60.net
すみません。
上のplayListって変数を
URLリンク(imgur.com)
のコメントアウトしているplayListRight.ItemsSorceにぶち込みたいです。
あとplayListRight.ItemTempleteにも上のクラスのtempleteをブチコみたいです。

483:デフォルトの名無しさん
22/08/05 08:19:52.21 cUxq6qzs0.net
>>467
public

484:デフォルトの名無しさん
22/08/05 08:21:43.35 PgkbhFj60.net
すみません最初の画像jpegで貼れていなかったので貼りなおします。
URLリンク(imgur.com)
URLリンク(imgur.com)

485:デフォルトの名無しさん
22/08/05 08:23:52.62 PgkbhFj60.net
>>469
public string playList
ってやるとMainクラスでも使えるようになるのですか?

486:デフォルトの名無しさん
22/08/05 08:42:07.22 H/H3flpk0.net
とりあえず要望を満たすだけなら、PlayListViewCenterクラスにPlayListプロパティを作ればよさそうに見えるが
根本的にはPlayListView()でプレイリストの読み込みまでやってるのは詰め込み過ぎだろう

487:デフォルトの名無しさん
22/08/05 08:46:35.55 PgkbhFj60.net
>>472
最初Mainクラスのメソッドにしてたのですが長ったらしいなと感じてクラスにそのメソッド入れたのですがそのままMainクラスのメソッドとして入れておいたほうが無難でしょうか?


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