- 1 名前:デフォルトの名無しさん [2022/09/18(日) 14:39:29.51 ID:VjUDO6tf0.net]
- 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください >>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part155 https://mevius.5ch.net/test/read.cgi/tech/1655422932/ ■関連スレ C#, C♯, C#相談室 Part96 https://mevius.5ch.net/test/read.cgi/tech/1639965805/ ■コードを貼る場合は↓を使いましょう。 https://ideone.com/ https://dotnetfiddle.net/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/ https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/ https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/ https://referencesource.microsoft.com/ https://source.dot.net/ ・Insider.NET > .NET TIPS - @IT https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html ・DOBON.NET .NET Tips https://dobon.net/vb/dotnet/index.html - VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 126 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:46:54.63 ID:Ls9e4TwG0.net]
- >>121
別画面
- 127 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:56:27.63 ID:XU+NToANM.net]
- double.TryParse(str, out var value)
- 128 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 07:10:40.44 ID:qbIePR+RM.net]
- >>124
メソッドにしろよなんでもできるぞ
- 129 名前:デフォルトの名無しさん (ワッチョイ 0307-CLHJ) mailto:sage [[ここ壊れてます] .net]
- >>126
ついでだが選択肢が80もあるなら検索ボックスも欲しいな 欲しいというか必須 別画面にせずともコンボボックスで検索するという手もある
- 130 名前:デフォルトの名無しさん (ワッチョイ ff01-d1zO) mailto:sage [[ここ壊れてます] .net]
- >>124
絶対に失敗しないなら単に double.Parse(str) でいいし、失敗する可能性あるなら失敗した時にどうしたいのかによるわな
- 131 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 08:37:00.95 ID:83NgMl870.net]
- >>121
高さある程度とったリストボックスでいいんじゃない フォントダイアログのフォントみたいな 頭に数字付けるのはインクリメンタルサーチとの兼ね合いがあるが項目が日本語なら関係ないか
- 132 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 11:59:18.04 ID:36QRloIgM.net]
- >>121
Google翻訳の言語選択画面とか StackOverflowやEvernoteのタグ選択画面とか 有名どころで類似画面を見つけてそれを参考にするといい 選択肢の数だけじゃなく選択させたいデータの特徴とユースケースによって適切なUIは変わってくる
- 133 名前:デフォルトの名無しさん [2022/10/04(火) 12:28:46.35 ID:Pbtsxb5E0.net]
- IsVisibleプロパティでリストビューを最初に消しててボタン押すとリストビューのIsVisibleがtrueになる
そのリストビューを選択させてSlectedイベントハンドラーでボタンのテキストを選択したものにするみたいな
- 134 名前:デフォルトの名無しさん [2022/10/04(火) 12:34:13.22 ID:Pbtsxb5E0.net]
- Slectedイベントでもう一度ListViewのIsVisibleをfalseにするとスムーズかも
WPFの場合はVisibility=collapsedにすれば画面専有しなくなる このプロパティめっちゃ便利だからみんなも使って
- 135 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 12:34:32.55 ID:Ls9e4TwG0.net]
- >>133
それコンボボックスと何が違うんだ
- 136 名前:デフォルトの名無しさん [2022/10/04(火) 12:37:11.62 ID:Pbtsxb5E0.net]
- >>135
リストビューだからイメージとかも表示できる datatemplate設定する必要あるけどね リストビューだけじゃなくてcollectionViewとか使ったら横2行でスクロールできるようになるし
- 137 名前:デフォルトの名無しさん [2022/10/04(火) 12:38:40.11 ID:Pbtsxb5E0.net]
- 検索バーもリストに紐付けられてたような気がするから更に便利かも
検索バーもリストビューとかと同様にIsVisibleが連動するようにしておく
- 138 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 12:39:40.83 ID:Ls9e4TwG0.net]
- >>136
選択するのは数値と文字列って書いてるが
- 139 名前:デフォルトの名無しさん [2022/10/04(火) 12:39:58.19 ID:Pbtsxb5E0.net]
- まぁめんどくさかったらコンボボックスでもいいけどね
1つしか項目ないならこっちのほうが楽だと思う
- 140 名前:デフォルトの名無しさん [2022/10/04(火) 12:41:35.19 ID:Pbtsxb5E0.net]
- >>138
UIとかこだわるならListViewかなぁ
- 141 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 23:58:06.92 ID:b8uw2VbJ0.net]
- >>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね TryPaerse失敗でoutの方は0.0になるので、単純にoutの値が欲しいだけなんです ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね
- 142 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 00:01:10.13 ID:KHa19VaR0.net]
- >>141
double.TryParse(str,out double value) ? value : 0
- 143 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 03:41:09.33 ID:ILrwmDD80.net]
- 値が本当に0.0だったときに腹を切る用意はできてんだろうな?
- 144 名前:デフォルトの名無しさん [2022/10/05(水) 07:40:46.91 ID:2+KVHgSc0.net]
- 失敗したときは初期値を代入する、って意図なら default にした方が分かりやすいぞ
- 145 名前:デフォルトの名無しさん (ワッチョイ cf2c-kE2G) mailto:sage [[ここ壊れてます] .net]
- どうしても代入式じゃなきゃヤダってんじゃない限り>>127で十分なんだけど
- 146 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 22:42:08.40 ID:UUeH3vvk0.net]
- Convert.ToDouble...ボソッ
- 147 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 22:43:51.91 ID:UUeH3vvk0.net]
- あ、失敗したとき考えたら同じだった…
- 148 名前:デフォルトの名無しさん [2022/10/06(木) 18:05:18.67 ID:l5eCu49d0.net]
- c#でコードをすっきり書く方法について
unityです 以下のようなメインルーチンと自作関数がありますが、自作関数が多くなると間延びして見づらくなります こうズラズラと書いていっていいものでしょうか? void update() { //この中に記載したものが1フレームごとに実行される } void zisaku_kansu1() {} void zisaku_kansu2() {} void zisaku_kansu3() {}
- 149 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 18:19:06.66 ID:okBm6j3n0.net]
- 知らんけどどのオブジェクトにメソッドを生やすかは見やすさ関係なしに選んだ方がいい
メソッドが増えすぎる場合クラスが肥大化しすぎて単一責任原則に反している可能性があるから他のクラスに分割できないかどうかを検討してみろ
- 150 名前:デフォルトの名無しさん [2022/10/06(木) 18:29:05.50 ID:l5eCu49d0.net]
- スクリプト1つにここまで、みたいな目安はあるんでしょうか?
- 151 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 18:39:38.40 ID:okBm6j3n0.net]
- 無いよ
数じゃない せっかく単一責任原則ってキーワード出てるんだから調べてみたら?
- 152 名前:デフォルトの名無しさん (ワッチョイ a359-eWb8) [[ここ壊れてます] .net]
- 了解です
問題が出たらそのときに対処します
- 153 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 21:08:47.37 ID:g4tnGNpoM.net]
- もう問題でてるやん
- 154 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:21:54.37 ID:/3bhbDDg0.net]
- bool? x; をint の 0,1,2 にしたいのですが
return (x is null) ? 0 : x ?? false ? 2 : 1; もっとかっこよく出来ませんか?
- 155 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 22:44:56.92 ID:eGnFz/dY0.net]
- ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;
- 156 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:20:02.95 ID:KOHZa6QXM.net]
- 見やすさを優先したいなら複数行で
return x swicth { true => 2, false => 1, _ => 0, }; と書きたいなあ 1行で return x swicth { true => 2, false => 1, _ => 0 }; と書いてもたぶん大丈夫だとは思うけど
- 157 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:28:30.50 ID:okBm6j3n0.net]
- ネタコードだけど
new bool?[]{null,false,true}.IndexOf(x)
- 158 名前:デフォルトの名無しさん mailto:sage [2022/10/06(木) 23:51:14.28 ID:E7iO37Ge0.net]
- >>155
かっこつけてないじゃん x.HasValue ? (x.Value ? 2 : 1) : 0;
- 159 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 00:30:44.40 ID:5dN4BPEk0.net]
- >>158
かっこが無くてもちゃんと動くよ あった方が分かりやすくて良いけど
- 160 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 02:06:25.47 ID:ICIDzMHN0.net]
- その変態コードやるならメソッドにして手厚くコメント入れて欲しい
明示的にif文でデカデカと対応がわかるように並べて欲しい 一石二鳥なんか狙う場面じゃない
- 161 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 02:08:27.00 ID:ICIDzMHN0.net]
- そのイカれたクソ設計考えたやつの名前と設計書の項目番号も添えて
わかるように並べるべき
- 162 名前:デフォルトの名無しさん [2022/10/07(金) 03:43:01.87 ID:Y3Bhrpk2d.net]
- 馬鹿は何でもかんでも短くすれば良いと思ってる
- 163 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 07:30:32.84 ID:DG0Qp9kf0.net]
- switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね
.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった
- 164 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 09:36:20.95 ID:Kp+8ZYZad.net]
- 推奨されないというか、C#8.0以上では.NET Frameworkは公式にサポート外となった
仮にたまたま今動いてても明日.NET Frameworkのセキュリティパッチで突然動かなくなるかもしれないし、もちろんMSは修正しないよ
- 165 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 11:14:52.33 ID:vnTjz+tv0.net]
- まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから
- 166 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 11:22:49.33 ID:HMB85mTQ0.net]
- 忍者コードへの道
- 167 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 12:22:10.54 ID:dcU7dbGf0.net]
- >>159
ギャグなんだけど…(´・ω・`)
- 168 名前:デフォルトの名無しさん [2022/10/07(金) 12:47:07.95 ID:d4ub3t4La.net]
- >>162
ほんそれ
- 169 名前:デフォルトの名無しさん [2022/10/07(金) 20:16:53.71 ID:+9HYrIkm0.net]
- Nullable有効にできないバージョンは古いC#って感じでもう使いたくないな
- 170 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:37:29.02 ID:UqkGeV530.net]
- >>167
笑いどころがわからんわ
- 171 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:50:21.74 ID:WZglSwpR0.net]
- >>170
よし。俺が解説してやろう かっこいいコードがほしい かっこがない→かっこつけた→格好つけた→格好いい >>167 可哀想w
- 172 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 20:56:43.70 ID:5dN4BPEk0.net]
- >>167
なんかゴメン
- 173 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 21:09:28.95 ID:UqkGeV530.net]
- >>171
せめてカッコつけてないじゃん って書いてほしいわ...
- 174 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 22:02:05.67 ID:/3WJyx6k0.net]
- どんまい、来世はいいことあるさ
- 175 名前:デフォルトの名無しさん mailto:sage [2022/10/07(金) 23:17:09.48 ID:US/4zJfp0.net]
- >>167
強く生きて
- 176 名前:デフォルトの名無しさん [2022/10/08(土) 08:16:32.93 ID:jIH0D5Hw0.net]
- オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。
テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。
- 177 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 08:22:48.18 ID:dLvXgc/K0.net]
- データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る
- 178 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:01:05.54 ID:VFNuoQ0s0.net]
- C#の正規表現が難しい・・・
文字列が特定パターンに一致したら、その一部をキャプチャして後方参照したいんだけど、やり方がわからん 具体的には下の感じで最初の数値群と2番目の数値群を取り出したい Perlだとこのパターンマッチング後に$1と$2で取り出せるけど if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))
- 179 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:34:32.95 ID:pVnemZy6a.net]
- IsMatchは結果を捨ててるぞ
Matchを使え
- 180 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:53:56.88 ID:r7jgJ5YeM.net]
- >>177
ストリング型に一気に吸い出すのが処理しやすいんだったらそうしたらいい ストリームは全部一気に読むときの遅延が無視できなかったりメモリに全部乗らないような巨大なファイルを扱うようなときに使うもので、 全部一気読みで問題なく動くのならその方がシンプルで好ましい バイト配列か文字列かは扱い対象のファイルがバイナリなのかテキストなのかに合わせればよいだけ
- 181 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 11:54:28.61 ID:gSJNfJVIM.net]
- 自分でも複雑なことをやるってわかってるのに一気に処理して
ログも出さない 途中の計算課程もみずにできると思い込む やり方がわからない以前に一度でも実行したのか?
- 182 名前:デフォルトの名無しさん [2022/10/08(土) 14:35:23.82 ID:P5VjfrSW0.net]
- c#でthisはつけたほうがいいのですか?
現在のインスタンスを参照していることが、そのほうがわかりやすいかなという認識ですが、機能上、すごく重要なものだったりすりんでしょうか
- 183 名前:デフォルトの名無しさん (アウアウウー Sa2f-tmeX) mailto:sage [[ここ壊れてます] .net]
- visual studio使ってるなら色を見たらいい
色が薄いのは削除推奨 右クリックしたらリファクタリングメニューが出る 濃い色ならそのまま書いとけ
- 184 名前:.NET M HighSchool [2022/10/08(土) 15:43:59.89 ID:7fZ89p9v0.net]
- thisは高確率で色薄くなるな
- 185 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 15:49:28.50 ID:DAxJe8BN0.net]
- this 必須のケースって引数と名前被ってる場合以外にあるっけ?
- 186 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 15:53:41.70 ID:znbc6QnV0.net]
- this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな
- 187 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:04:49.31 ID:m4cZArl90.net]
- this使ってないと素人臭がするんだよなぁ
「こいつほんとに分かってんの?」って感じ。 thisは常につけろ、何があろうと。
- 188 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:14:22.95 ID:dLvXgc/K0.net]
- 逆に全部this書いてるのを見ると素人だからわからないんだなと感じる
- 189 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:15:59.85 ID:8jUGKNkJ0.net]
- それどういう理屈だw
- 190 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 16:23:46.29 ID:dLvXgc/K0.net]
- コードの記述量が減るように様々な工夫が凝らされているので、それを使わないやつは知らないように見えるというそれだけのことだが?
- 191 名前:デフォルトの名無しさん [2022/10/08(土) 17:07:26.31 ID:P5VjfrSW0.net]
- >>183
色濃いっす 書いときます
- 192 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 17:22:37.77 ID:XyWhvWPC0.net]
- 可読性を考えるとthisを付けたほうがいい
- 193 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 17:30:09.59 ID:f2a8Snt90.net]
- 原則省略していいよ
基本的には人間の記述した字句解析の手間が少なくなる程コンピューターは速く処理できるべきであり 人間の意図や文脈を解釈できないインテリセンスがまだまだ糞ってことだ
- 194 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:23:01.64 ID:5cV3My9p0.net]
- >>192
this.で汚染されて逆に見辛くなるんだけど
- 195 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 19:52:21.24 ID:gycPEQHX0.net]
- なんかマトリョーシカみたいなクラスの記述を強制するライブラリ使ってると
this付けないと飛び越えて呼んでるときあって気が付かない不具合がかなり凶悪だった覚えがある 多分この取り決めはそーゆークソライブラリ使ったとき用だと思う 通常では絶対イランと思う
- 196 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:18:49.64 ID:/uBMkTfW0.net]
- >>194
そう? 俺は見にくいとは感じないし、わかりやすいからつける派だけど 慣れ親しんだ環境じゃない?
- 197 名前:デフォルトの名無しさん [2022/10/08(土) 23:19:17.46 ID:jIH0D5Hw0.net]
- >>177
>>180 ありがとうございました。 ファイルストリームと、バイト配列の使い分けを、 教えてもらったことで意識したいと思います。
- 198 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:20:51.72 ID:/uBMkTfW0.net]
- まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど
- 199 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:43:45.49 ID:hmHZpMGaa.net]
- 色々なコード読むとthisなんてわざわざ書いてないよね
- 200 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 04:45:35.54 ID:qX71Swpm0.net]
- 世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな
- 201 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:11:00.57 ID:eOE0tewq0.net]
- USBデバイスを仮想COM接続し、SerialPortクラスで受信しています。バルク転送で約2Mbpsとなります。
デバイスからは60byteフレームが連続で送られてきます。DataReceivedでSerialReadして即抜けています。DataReceivedイベント発生時にバッファを確認すると、 60byte→120byte→…→60byte→(イベント発生まで時間が空いて)数kBとなります。 場合によっては内部バッファが溢れているようなのですが、イベントが待たされる条件が解らず困っています。助言いただけないでしょうか。
- 202 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:41:58.46 ID:TjSk03hV0.net]
- DataReceivedイベントを使わなければ良いんじゃね?
- 203 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 22:46:51.58 ID:P58+Ol8v0.net]
- C#でも書けるとは思うけど数MbpsのCOMポートの送受信はC/C++で専用スレッド用意して
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); した上で非同期でやり取りしないと取りこぼすだろうね
- 204 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 23:06:15.87 ID:sJsMwDUU0.net]
- >>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?
- 205 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 05:26:30.82 ID:0V0rCIqgM.net]
- >>202
タイマー使ってポーリングですかね >>203 kernel32.dllインポートでやってみます >>204 試してみたんですけど、16384から上は実動作に反映されないみたいです
- 206 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 07:20:01.01 ID:D4ywmAPt0.net]
- どうせDataReceivedの中で重い処理をして取りこぼしてるんだろ
受け取ったデータは非同期でキューに入れて別スレッドで処理したらいい
- 207 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 07:21:12.28 ID:VUbUiOFF0.net]
- その前にSerialのフロー制御はどういう仕様なの?
こっちはPCだからよくても、相手があるんだから
- 208 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 10:20:29.33 ID:w5Aa3OJKM.net]
- USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど C#向きではないかなと
- 209 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 10:41:42.41 ID:w5Aa3OJKM.net]
- USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして 1,0,1,0,1,0 みたいにデバイスのユーザープログラム層が送っても プロトコル層では間の,で いまデータ受信中かな、送信回線空いてるかなとかデータを送りますよと言う確認など常に処理がある タイミング次第では 10101,とまとめて送ったほうがいいなと判断されたり送信待ちしてたら平気でまとめて送ってくる (当然ながらパケットより短い間隔で次を送ろうとしても不可能だし) それで即応性が皆無になる それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど 他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)
- 210 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:19:27.85 ID:hb9m45MO0.net]
- >>208,209
つかそんなのCOMポートの層で吸収されてないのか? シリアル通信で取りこぼすって、まずフロー制御がちゃんとできてないだけだと思うけど
- 211 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 21:09:15.58 ID:qFJbGVDN0.net]
- >>210
USBシリアルは基本的に垂れ流しするしかないよ COM側は全二重に見えててもその下で動作してるUSBは半二重のホスト主導のパケット通信だからね フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから 目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし
- 212 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:58:59.26 ID:w5Aa3OJKM.net]
- >>210
されてないのかと言う質問にはされていないという答え 仮想comポートはあくまでも仮想なのでハードウェア的なcomポートを完全再現できはしない ハブなんか挟むと致命的 高速データ転送してる場合は何らかの手法でうまくやってる
- 213 名前:デフォルトの名無しさん [2022/10/12(水) 07:20:32.76 ID:O1VGwGyV0.net]
- プロパティの使い方でさ
View側から使う分には複雑な式とかメソッド呼とかは仕方ないけど、Model側からもそのまんまプロパティを呼ぶと処理が何重にも呼ばれたり副作用大杉だからなぁ メンバー変数代わりにプロパティ使うと死ぬる
- 214 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 07:23:04.46 ID:TyHUeGJp0.net]
- まずメンバー変数を多用すること自体が
- 215 名前:デフォルトの名無しさん [2022/10/12(水) 09:29:45.13 ID:wUZHBRzyp.net]
- 副作用のあるプロパティを作る方が悪い
- 216 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:51:43.31 ID:TyHUeGJp0.net]
- プログラミング用語で副作用というのはハードウェア出力や状態の再設定のことだからイミュータブルなプロパティは全部副作用があるんだぜ
- 217 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 09:52:53.77 ID:TyHUeGJp0.net]
- ✕イミュータブル
○ミュータブル
- 218 名前:デフォルトの名無しさん [2022/10/12(水) 09:58:11.07 ID:wUZHBRzyp.net]
- そんな言葉遊びして楽しいか?
- 219 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 10:03:53.44 ID:TyHUeGJp0.net]
- 副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ
- 220 名前:デフォルトの名無しさん [2022/10/12(水) 10:15:07.25 ID:wUZHBRzyp.net]
- 俺が意図してない挙動は全部副作用だぁっ
- 221 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 11:33:52.36 ID:PX0iq4dK0.net]
- 質問です
DataGridViewで指定行までのスクロールを行いたいのですが、詰まっています スクロール自体はFirstDisplayedScrollingRowIndexプロパティに値を代入して行えるのですが、スクロールバーのスライダー位置が最上位から変化しません 処理は、指定行を入力→DataSourceの更新→指定行へスクロールというように行っています
- 222 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 11:38:03.47 ID:WbjgIxC2a.net]
- スクロールバーを別のとこで作ってないか?
- 223 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 17:04:14.81 ID:/871xKINM.net]
- >>201
多重イベントでスレッドプール使い切りとかない?
- 224 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 18:34:22.16 ID:PX0iq4dK0.net]
- >>222
そのようでした 直接弄れそうにもないので、別アプローチでの画面更新を考えてみます ありがとうございました
- 225 名前:デフォルトの名無しさん [2022/10/14(金) 19:57:10.42 ID:29TAKwyj0.net]
- 初めてこの板で書きます。
プログラミングで対角化をしたいのですがよく分かりません。色々調べても自分がしたいことができないです。 やりたいことは、 任意の大きさの正方行列で固有値を求めたい オイラー方程式を含む行列要素を計算したい です。 どうしたらいいでしょう、、、
- 226 名前:デフォルトの名無しさん mailto:sage [2022/10/14(金) 20:00:26.98 ID:t5o5qpLS0.net]
- まず言葉の意味を調べたらいんじゃね
|
![](http://yomi.mobi/qr.gif)
|