ふらっと C#,C♯,C#(初心者用) Part156 at TECH
[2ch|▼Menu]
[前50を表示]
100:デフォルトの名無しさん
22/10/01 10:52:54.13 EDStmk6M0.net
誤爆w
webvew2コントロール上で右クリックすると「名前を付けて保存」が出るようなので
そこを自動でやるだけなですがいい方法ないですかね?

101:デフォルトの名無しさん
22/10/01 11:36:18.78 CdyuxRrm0.net
そのページのHTMLをHTML方式で保存すればいいだけなのでは?

102:デフォルトの名無しさん
22/10/01 11:41:05.38 CdyuxRrm0.net
WebView2ならJavaScriptを呼び出せるメソッドがあるからhtmlタグの中身をゲットしてそれを保存すればいいだけのような気がするがどうなんだろ?

103:デフォルトの名無しさん
22/10/01 11:47:25.93 EDStmk6M0.net
HTMLだけだとcssやjsが含まれていないので
落としたHTMLを表示するとまともに表示されない問題が発生してしまいます
ブラウザの「名前を付けて保存」は完璧に保存されますのでそちらが使いたいです

104:デフォルトの名無しさん
22/10/01 23:19:37.45 4ls5cXfL0.net
以下WebView2のエキスパートでもなんでもないから見当違いかもしれないので話半分で
ちょっとぐぐってみたけどWebView2で「名前を付けて保存」相当をやってる情報は出てこないね
Webブラウザでもページの保存は割と面倒な処理に該当するはずだからseleniumとかでWebブラウザに丸投げする方法を考えた方がいいと思うよ

105:デフォルトの名無しさん
22/10/02 01:20:34.77 jE287c4+0.net
ソリューションエクスプローラーに配置したJsonファイルをデシリアライズしてObservableCollectionに入れたいのですがどうすれば良いでしょうか?
using var stream = await FileSystem.OpenAppPackageFileAsync("monkeydata.json");
using var reader = new StreamReader(stream);
var contents = await reader.ReadToEndAsync();
monkeyList = JsonSerializer.Deserialize<List<Monkey>>(contents);
↑これを参考にやってみたのですがファイルが見つからないとか言われてしまいます

106:デフォルトの名無しさん
22/10/02 01:21:00.49 jE287c4+0.net
参考にしてるサイトはこれです…
URLリンク(github.com)

107:デフォルトの名無しさん
22/10/02 01:46:38.36 w76y/xOG0.net
一行目でエラーなら単純にファイルが無いのでは?
VSでデバッグの時のカレントがどこなのかそういう知識が無くパス指定も無く開けなかったら
カレントに無いぐらいは分かりそうなものなのに・・・

108:デフォルトの名無しさん
22/10/02 02:00:42.79 jE287c4+0.net
VSに入れたファイルのパスの指定方法ってどうすればいいんですかね?
ファイル名だけで勝手にソリューション内のファイル検索して取り込めるのか相対パスなのか完全パスなのか…
相対パスならどこからの相対パスを書けばいいのか…

109:デフォルトの名無しさん
22/10/02 02:02:35.93 kEuGN+uq0.net
ビルドアクション設定してないだけだろ

110:デフォルトの名無しさん
22/10/02 02:31:53.74 jE287c4+0.net
ビルドアクションは埋め込みリソースに設定すればいいんですか?
何に設定すればいいんですか?

111:デフォルトの名無しさん (スップ Sd1f-XcTz)
[ここ壊れてます] .net
何やらせても出来なさそう

112:デフォルトの名無しさん
22/10/02 08:28:15.79 oLIGWTx6a.net
参考という名のコピペ
考える材料を参考というのであって脳死で真似るのは参考にしたとは言わん
なぜOpenAppPackageFileAsyncを調べないのか
URLリンク(learn.microsoft.com)
こんなややこしいものより普通に埋め込みリソースにして次のメソッド使った方がいい
URLリンク(learn.microsoft.com)

113:デフォルトの名無しさん
22/10/02 08:47:31.34 jcW3SqyJ0.net
>>112
ありがとうございます!
MauiAssetにしてResourcesからの相対パスにしたらいけました!

114:デフォルトの名無しさん
22/10/03 21:31:13.59 7M+SSEiP0.net
ListやObservableCollectionとか作るときに別classでget,setでプロパティ作るけどこれってなんて言うものなの?
他の言語とかも一緒?

115:デフォルトの名無しさん
22/10/03 21:32:38.29 tDVewfT+0.net
よくわからんがViewModelの話をしてるのか?

116:デフォルトの名無しさん
22/10/03 21:35:24.31 7M+SSEiP0.net
>>115
どっちかというとModelの話かな
ほとんどの人がModelフォルダにpublic〇〇get,setしてる

117:デフォルトの名無しさん
22/10/03 21:38:09.72 7M+SSEiP0.net
List‹〇〇›とかObservableCollection‹〇〇›とかの〇〇部分
xamlだと{Binding 〇〇}で〇〇の中に定義したプロパティを読み込めるやつ

118:デフォルトの名無しさん
22/10/03 22:52:42.56 5XdXjLTq0.net
doubleにTryParseした値を別な変数に入れたいけど、もっと素直な書き方ないかな?
var value = double.TryParse(str, out dbl) ? dbl : dbl;

119:デフォルトの名無しさん
22/10/03 22:56:32.76 tDVewfT+0.net
>>118
なんだその無意味な三項演算子

120:デフォルトの名無しさん
22/10/03 22:57:43.85 tDVewfT+0.net
>>117
型引数なのか要素なのかモデルなのか何のことを言ってるのかわからん

121:デフォルトの名無しさん
22/10/03 23:18:54.43 rGUf1MZJ0.net
選択肢がめっちゃ多い中で1つ選ばせるコントロールって何が良いですかね?
80項目くらいあるのでコンボボックスはNGになりまして。
選択内容は 数値:文字列 で表示したいです。

122:デフォルトの名無しさん
22/10/03 23:31:02.94 SA/xrkif0.net
>>121
何で決定するの?それ
何か見て決めるんでしょ?
それを画面に出せよ

123:デフォルトの名無しさん
22/10/04 00:32:43.24 7S0AjRuD0.net
立ち食いそば屋の券売機みたいにボタン並べればいいじゃん

124:デフォルトの名無しさん
22/10/04 06:40:39.38 b8uw2VbJ0.net
>>119
我ながら意味不明だけど、TryParseした"dbl"を"value"に1行で代入する方法をこれしか思いつかなかった
どうやればTryParseの結果を式として返せるの?

125:デフォルトの名無しさん
22/10/04 06:46:15.22 Ls9e4TwG0.net
>>124
失敗したときの戻り値どうすんの?

126:デフォルトの名無しさん
22/10/04 06:46:54.63 Ls9e4TwG0.net
>>121
別画面

127:デフォルトの名無しさん
22/10/04 06:56:27.63 XU+NToANM.net
double.TryParse(str, out var value)

128:デフォルトの名無しさん
22/10/04 07:10:40.44 qbIePR+RM.net
>>124
メソッドにしろよなんでもできるぞ

129:デフォルトの名無しさん (ワッチョイ 0307-CLHJ)
[ここ壊れてます] .net
>>126
ついでだが選択肢が80もあるなら検索ボックスも欲しいな
欲しいというか必須
別画面にせずともコンボボックスで検索するという手もある

130:デフォルトの名無しさん (ワッチョイ ff01-d1zO)
[ここ壊れてます] .net
>>124
絶対に失敗しないなら単に double.Parse(str) でいいし、失敗する可能性あるなら失敗した時にどうしたいのかによるわな

131:デフォルトの名無しさん
22/10/04 08:37:00.95 83NgMl870.net
>>121
高さある程度とったリストボックスでいいんじゃない
フォントダイアログのフォントみたいな
頭に数字付けるのはインクリメンタルサーチとの兼ね合いがあるが項目が日本語なら関係ないか

132:デフォルトの名無しさん
22/10/04 11:59:18.04 36QRloIgM.net
>>121
Google翻訳の言語選択画面とか
StackOverflowやEvernoteのタグ選択画面とか
有名どころで類似画面を見つけてそれを参考にするといい
選択肢の数だけじゃなく選択させたいデータの特徴とユースケースによって適切なUIは変わってくる

133:デフォルトの名無しさん
22/10/04 12:28:46.35 Pbtsxb5E0.net
IsVisibleプロパティでリストビューを最初に消しててボタン押すとリストビューのIsVisibleがtrueになる
そのリストビューを選択させてSlectedイベントハンドラーでボタンのテキストを選択したものにするみたいな

134:デフォルトの名無しさん
22/10/04 12:34:13.22 Pbtsxb5E0.net
Slectedイベントでもう一度ListViewのIsVisibleをfalseにするとスムーズかも
WPFの場合はVisibility=collapsedにすれば画面専有しなくなる
このプロパティめっちゃ便利だからみんなも使って

135:デフォルトの名無しさん
22/10/04 12:34:32.55 Ls9e4TwG0.net
>>133
それコンボボックスと何が違うんだ

136:デフォルトの名無しさん
22/10/04 12:37:11.62 Pbtsxb5E0.net
>>135
リストビューだからイメージとかも表示できる
datatemplate設定する必要あるけどね
リストビューだけじゃなくてcollectionViewとか使ったら横2行でスクロールできるようになるし

137:デフォルトの名無しさん
22/10/04 12:38:40.11 Pbtsxb5E0.net
検索バーもリストに紐付けられてたような気がするから更に便利かも
検索バーもリストビューとかと同様にIsVisibleが連動するようにしておく

138:デフォルトの名無しさん
22/10/04 12:39:40.83 Ls9e4TwG0.net
>>136
選択するのは数値と文字列って書いてるが

139:デフォルトの名無しさん
22/10/04 12:39:58.19 Pbtsxb5E0.net
まぁめんどくさかったらコンボボックスでもいいけどね
1つしか項目ないならこっちのほうが楽だと思う

140:デフォルトの名無しさん
22/10/04 12:41:35.19 Pbtsxb5E0.net
>>138
UIとかこだわるならListViewかなぁ

141:デフォルトの名無しさん
22/10/04 23:58:06.92 b8uw2VbJ0.net
>>125 >>130
iniファイルからの読み込みなので失敗もありえて、その場合は0.0が期待値ですね
TryPaerse失敗でoutの方は0.0になるので、単純にoutの値が欲しいだけなんです
ラムダでもうまく書けないので、>>128の言うようにメソッドにするしかないですかね

142:デフォルトの名無しさん
22/10/05 00:01:10.13 KHa19VaR0.net
>>141
double.TryParse(str,out double value) ? value : 0

143:デフォルトの名無しさん
22/10/05 03:41:09.33 ILrwmDD80.net
値が本当に0.0だったときに腹を切る用意はできてんだろうな?

144:デフォルトの名無しさん
22/10/05 07:40:46.91 2+KVHgSc0.net
失敗したときは初期値を代入する、って意図なら default にした方が分かりやすいぞ

145:デフォルトの名無しさん (ワッチョイ cf2c-kE2G)
[ここ壊れてます] .net
どうしても代入式じゃなきゃヤダってんじゃない限り>>127で十分なんだけど

146:デフォルトの名無しさん
22/10/05 22:42:08.40 UUeH3vvk0.net
Convert.ToDouble...ボソッ

147:デフォルトの名無しさん
22/10/05 22:43:51.91 UUeH3vvk0.net
あ、失敗したとき考えたら同じだった…

148:デフォルトの名無しさん
22/10/06 18:05:18.67 l5eCu49d0.net
c#でコードをすっきり書く方法について
unityです
以下のようなメインルーチンと自作関数がありますが、自作関数が多くなると間延びして見づらくなります
こうズラズラと書いていっていいものでしょうか?
void update()
{
//この中に記載したものが1フレームごとに実行される
}
void zisaku_kansu1()
{}
void zisaku_kansu2()
{}
void zisaku_kansu3()
{}

149:デフォルトの名無しさん
22/10/06 18:19:06.66 okBm6j3n0.net
知らんけどどのオブジェクトにメソッドを生やすかは見やすさ関係なしに選んだ方がいい
メソッドが増えすぎる場合クラスが肥大化しすぎて単一責任原則に反している可能性があるから他のクラスに分割できないかどうかを検討してみろ

150:デフォルトの名無しさん
22/10/06 18:29:05.50 l5eCu49d0.net
スクリプト1つにここまで、みたいな目安はあるんでしょうか?

151:デフォルトの名無しさん
22/10/06 18:39:38.40 okBm6j3n0.net
無いよ
数じゃない
せっかく単一責任原則ってキーワード出てるんだから調べてみたら?

152:デフォルトの名無しさん (ワッチョイ a359-eWb8)
[ここ壊れてます] .net
了解です
問題が出たらそのときに対処します

153:デフォルトの名無しさん
22/10/06 21:08:47.37 g4tnGNpoM.net
もう問題でてるやん

154:デフォルトの名無しさん
22/10/06 22:21:54.37 /3bhbDDg0.net
bool? x; をint の 0,1,2 にしたいのですが
return (x is null) ? 0 : x ?? false ? 2 : 1;
もっとかっこよく出来ませんか?

155:デフォルトの名無しさん
22/10/06 22:44:56.92 eGnFz/dY0.net
ほとんど変わらんけど
x.HasValue ? x.Value ? 2 : 1 : 0;

156:デフォルトの名無しさん
22/10/06 23:20:02.95 KOHZa6QXM.net
見やすさを優先したいなら複数行で
return x swicth
{
 true => 2,
 false => 1,
_ => 0,
};
と書きたいなあ
1行で
return x swicth { true => 2, false => 1, _ => 0 };
と書いてもたぶん大丈夫だとは思うけど

157:デフォルトの名無しさん
22/10/06 23:28:30.50 okBm6j3n0.net
ネタコードだけど
new bool?[]{null,false,true}.IndexOf(x)

158:デフォルトの名無しさん
22/10/06 23:51:14.28 E7iO37Ge0.net
>>155
かっこつけてないじゃん
x.HasValue ? (x.Value ? 2 : 1) : 0;

159:デフォルトの名無しさん
22/10/07 00:30:44.40 5dN4BPEk0.net
>>158
かっこが無くてもちゃんと動くよ
あった方が分かりやすくて良いけど

160:デフォルトの名無しさん
22/10/07 02:06:25.47 ICIDzMHN0.net
その変態コードやるならメソッドにして手厚くコメント入れて欲しい
明示的にif文でデカデカと対応がわかるように並べて欲しい
一石二鳥なんか狙う場面じゃない

161:デフォルトの名無しさん
22/10/07 02:08:27.00 ICIDzMHN0.net
そのイカれたクソ設計考えたやつの名前と設計書の項目番号も添えて
わかるように並べるべき

162:デフォルトの名無しさん
22/10/07 03:43:01.87 Y3Bhrpk2d.net
馬鹿は何でもかんでも短くすれば良いと思ってる

163:デフォルトの名無しさん
22/10/07 07:30:32.84 DG0Qp9kf0.net
switch式って.NET Frameworkだと(というかC# 7.3までだと)使えないんだね
.NET FrameworkでC# 8.0以上に上げるのは推奨されないって見てビビった

164:デフォルトの名無しさん
22/10/07 09:36:20.95 Kp+8ZYZad.net
推奨されないというか、C#8.0以上では.NET Frameworkは公式にサポート外となった
仮にたまたま今動いてても明日.NET Frameworkのセキュリティパッチで突然動かなくなるかもしれないし、もちろんMSは修正しないよ

165:デフォルトの名無しさん
22/10/07 11:14:52.33 vnTjz+tv0.net
まあ今出てる中ならどれでもいいわ
少し見にくいとしても読めないレベルじゃないから

166:デフォルトの名無しさん
22/10/07 11:22:49.33 HMB85mTQ0.net
忍者コードへの道

167:デフォルトの名無しさん
22/10/07 12:22:10.54 dcU7dbGf0.net
>>159
ギャグなんだけど…(´・ω・`)

168:デフォルトの名無しさん
22/10/07 12:47:07.95 d4ub3t4La.net
>>162
ほんそれ

169:デフォルトの名無しさん
22/10/07 20:16:53.71 +9HYrIkm0.net
Nullable有効にできないバージョンは古いC#って感じでもう使いたくないな

170:デフォルトの名無しさん
22/10/07 20:37:29.02 UqkGeV530.net
>>167
笑いどころがわからんわ

171:デフォルトの名無しさん
22/10/07 20:50:21.74 WZglSwpR0.net
>>170
よし。俺が解説してやろう
かっこいいコードがほしい
かっこがない→かっこつけた→格好つけた→格好いい
>>167 可哀想w

172:デフォルトの名無しさん
22/10/07 20:56:43.70 5dN4BPEk0.net
>>167
なんかゴメン

173:デフォルトの名無しさん
22/10/07 21:09:28.95 UqkGeV530.net
>>171
せめてカッコつけてないじゃん
って書いてほしいわ...

174:デフォルトの名無しさん
22/10/07 22:02:05.67 /3WJyx6k0.net
どんまい、来世はいいことあるさ

175:デフォルトの名無しさん
22/10/07 23:17:09.48 US/4zJfp0.net
>>167
強く生きて

176:デフォルトの名無しさん
22/10/08 08:16:32.93 jIH0D5Hw0.net
オブジェクト内でバイナリファイルの内容を扱うとしたら、バイト型配列がよいでしょうか。ファイルストリームで吸い出してオブジェクト内で扱うつもりです。
テキストファイルでは、ストリング型か、ストリング型配列か、それともバイト型配列がよいでしょうか。処理のしやすさを考えるとストリング型に一気に吸い出すのが良いかなと思います。

177:デフォルトの名無しさん
22/10/08 08:22:48.18 dLvXgc/K0.net
データをバイト配列で扱うのが都合が良ければバイト配列にするしそうでなければ型を作る

178:デフォルトの名無しさん
22/10/08 11:01:05.54 VFNuoQ0s0.net
C#の正規表現が難しい・・・
文字列が特定パターンに一致したら、その一部をキャプチャして後方参照したいんだけど、やり方がわからん
具体的には下の感じで最初の数値群と2番目の数値群を取り出したい
Perlだとこのパターンマッチング後に$1と$2で取り出せるけど
if (Regex.IsMatch(str, @"^FIRST(\d+)_SECOND(\d+)$"))

179:デフォルトの名無しさん
22/10/08 11:34:32.95 pVnemZy6a.net
IsMatchは結果を捨ててるぞ
Matchを使え

180:デフォルトの名無しさん
22/10/08 11:53:56.88 r7jgJ5YeM.net
>>177
ストリング型に一気に吸い出すのが処理しやすいんだったらそうしたらいい
ストリームは全部一気に読むときの遅延が無視できなかったりメモリに全部乗らないような巨大なファイルを扱うようなときに使うもので、
全部一気読みで問題なく動くのならその方がシンプルで好ましい
バイト配列か文字列かは扱い対象のファイルがバイナリなのかテキストなのかに合わせればよいだけ

181:デフォルトの名無しさん
22/10/08 11:54:28.61 gSJNfJVIM.net
自分でも複雑なことをやるってわかってるのに一気に処理して
ログも出さない
途中の計算課程もみずにできると思い込む
やり方がわからない以前に一度でも実行したのか?

182:デフォルトの名無しさん
22/10/08 14:35:23.82 P5VjfrSW0.net
c#でthisはつけたほうがいいのですか?
現在のインスタンスを参照していることが、そのほうがわかりやすいかなという認識ですが、機能上、すごく重要なものだったりすりんでしょうか

183:デフォルトの名無しさん (アウアウウー Sa2f-tmeX)
[ここ壊れてます] .net
visual studio使ってるなら色を見たらいい
色が薄いのは削除推奨
右クリックしたらリファクタリングメニューが出る
濃い色ならそのまま書いとけ

184:.NET M HighSchool
22/10/08 15:43:59.89 7fZ89p9v0.net
thisは高確率で色薄くなるな

185:デフォルトの名無しさん
22/10/08 15:49:28.50 DAxJe8BN0.net
this 必須のケースって引数と名前被ってる場合以外にあるっけ?

186:デフォルトの名無しさん
22/10/08 15:53:41.70 znbc6QnV0.net
this.でわずかに候補が絞れるというメリットはあるがそのためにソース汚すのもな

187:デフォルトの名無しさん
22/10/08 16:04:49.31 m4cZArl90.net
this使ってないと素人臭がするんだよなぁ
「こいつほんとに分かってんの?」って感じ。
thisは常につけろ、何があろうと。

188:デフォルトの名無しさん
22/10/08 16:14:22.95 dLvXgc/K0.net
逆に全部this書いてるのを見ると素人だからわからないんだなと感じる

189:デフォルトの名無しさん
22/10/08 16:15:59.85 8jUGKNkJ0.net
それどういう理屈だw

190:デフォルトの名無しさん
22/10/08 16:23:46.29 dLvXgc/K0.net
コードの記述量が減るように様々な工夫が凝らされているので、それを使わないやつは知らないように見えるというそれだけのことだが?

191:デフォルトの名無しさん
22/10/08 17:07:26.31 P5VjfrSW0.net
>>183
色濃いっす
書いときます

192:デフォルトの名無しさん
22/10/08 17:22:37.77 XyWhvWPC0.net
可読性を考えるとthisを付けたほうがいい

193:デフォルトの名無しさん
22/10/08 17:30:09.59 f2a8Snt90.net
原則省略していいよ
基本的には人間の記述した字句解析の手間が少なくなる程コンピューターは速く処理できるべきであり
人間の意図や文脈を解釈できないインテリセンスがまだまだ糞ってことだ

194:デフォルトの名無しさん
22/10/08 19:23:01.64 5cV3My9p0.net
>>192
this.で汚染されて逆に見辛くなるんだけど

195:デフォルトの名無しさん
22/10/08 19:52:21.24 gycPEQHX0.net
なんかマトリョーシカみたいなクラスの記述を強制するライブラリ使ってると
this付けないと飛び越えて呼んでるときあって気が付かない不具合がかなり凶悪だった覚えがある
多分この取り決めはそーゆークソライブラリ使ったとき用だと思う
通常では絶対イランと思う

196:デフォルトの名無しさん
22/10/08 23:18:49.64 /uBMkTfW0.net
>>194
そう?
俺は見にくいとは感じないし、わかりやすいからつける派だけど
慣れ親しんだ環境じゃない?

197:デフォルトの名無しさん
22/10/08 23:19:17.46 jIH0D5Hw0.net
>>177
>>180
ありがとうございました。
ファイルストリームと、バイト配列の使い分けを、
教えてもらったことで意識したいと思います。

198:デフォルトの名無しさん
22/10/08 23:20:51.72 /uBMkTfW0.net
まぁ、俺にとって見やすい·わかりやすいってのはvsの色分けの効果が大きいとは思うけど

199:デフォルトの名無しさん
22/10/09 04:43:45.49 hmHZpMGaa.net
色々なコード読むとthisなんてわざわざ書いてないよね

200:デフォルトの名無しさん
22/10/09 04:45:35.54 qX71Swpm0.net
世の中にはthisを書かないと読みきれないクソソースを書くやつがいるってことだな

201:デフォルトの名無しさん
22/10/10 22:11:00.57 eOE0tewq0.net
USBデバイスを仮想COM接続し、SerialPortクラスで受信しています。バルク転送で約2Mbpsとなります。
デバイスからは60byteフレームが連続で送られてきます。DataReceivedでSerialReadして即抜けています。DataReceivedイベント発生時にバッファを確認すると、
60byte→120byte→…→60byte→(イベント発生まで時間が空いて)数kBとなります。
場合によっては内部バッファが溢れているようなのですが、イベントが待たされる条件が解らず困っています。助言いただけないでしょうか。

202:デフォルトの名無しさん
22/10/10 22:41:58.46 TjSk03hV0.net
DataReceivedイベントを使わなければ良いんじゃね?

203:デフォルトの名無しさん
22/10/10 22:46:51.58 P58+Ol8v0.net
C#でも書けるとは思うけど数MbpsのCOMポートの送受信はC/C++で専用スレッド用意して
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
した上で非同期でやり取りしないと取りこぼすだろうね

204:デフォルトの名無しさん
22/10/10 23:06:15.87 sJsMwDUU0.net
>>201
とりあえずReadBufferSizeをでかくしとけばいいんじゃね?

205:デフォルトの名無しさん
22/10/11 05:26:30.82 0V0rCIqgM.net
>>202
タイマー使ってポーリングですかね
>>203
kernel32.dllインポートでやってみます
>>204
試してみたんですけど、16384から上は実動作に反映されないみたいです

206:デフォルトの名無しさん
22/10/11 07:20:01.01 D4ywmAPt0.net
どうせDataReceivedの中で重い処理をして取りこぼしてるんだろ
受け取ったデータは非同期でキューに入れて別スレッドで処理したらいい

207:デフォルトの名無しさん
22/10/11 07:21:12.28 VUbUiOFF0.net
その前にSerialのフロー制御はどういう仕様なの?
こっちはPCだからよくても、相手があるんだから

208:デフォルトの名無しさん
22/10/11 10:20:29.33 w5Aa3OJKM.net
USBはシリアルと言いながら実際パケットを送ってるからタイミングが微妙なんだよな
その都度無駄なやり取りが発生して即応性もなくなるし複数の送受信がまとめられてたり
デバイスずっと常にデータを送り続けてる状況を作るとか言う手法があるけど
C#向きではないかなと

209:デフォルトの名無しさん
22/10/11 10:41:42.41 w5Aa3OJKM.net
USBデバイスにボタンみたいのがあって
押すと1離すと0送るとして
1,0,1,0,1,0
みたいにデバイスのユーザープログラム層が送っても
プロトコル層では間の,で
いまデータ受信中かな、送信回線空いてるかなとかデータを送りますよと言う確認など常に処理がある

タイミング次第では 10101,とまとめて送ったほうがいいなと判断されたり送信待ちしてたら平気でまとめて送ってくる
(当然ながらパケットより短い間隔で次を送ろうとしても不可能だし)
それで即応性が皆無になる
それを回避するにはストリーミングで常に状況を送り続けるかポーリングなどが有効だけど
他のUSBの帯域を圧迫してマウスの感度が悪くなったりキーボードの取りこぼしなどが起こる(IO処理なのでCPUを早くしても無駄)

210:デフォルトの名無しさん
22/10/11 20:19:27.85 hb9m45MO0.net
>>208,209
つかそんなのCOMポートの層で吸収されてないのか?
シリアル通信で取りこぼすって、まずフロー制御がちゃんとできてないだけだと思うけど

211:デフォルトの名無しさん
22/10/11 21:09:15.58 qFJbGVDN0.net
>>210
USBシリアルは基本的に垂れ流しするしかないよ
COM側は全二重に見えててもその下で動作してるUSBは半二重のホスト主導のパケット通信だからね
フロー制御用として用意されてるXon/Xoffも停止までに送信タイムラグが発生するから
目視できるような低速通信ぐらいしか役に立たないし、停止を許容できるデータなのかも不明だし

212:デフォルトの名無しさん
22/10/11 22:58:59.26 w5Aa3OJKM.net
>>210
されてないのかと言う質問にはされていないという答え
仮想comポートはあくまでも仮想なのでハードウェア的なcomポートを完全再現できはしない
ハブなんか挟むと致命的
高速データ転送してる場合は何らかの手法でうまくやってる

213:デフォルトの名無しさん
22/10/12 07:20:32.76 O1VGwGyV0.net
プロパティの使い方でさ
View側から使う分には複雑な式とかメソッド呼とかは仕方ないけど、Model側からもそのまんまプロパティを呼ぶと処理が何重にも呼ばれたり副作用大杉だからなぁ
メンバー変数代わりにプロパティ使うと死ぬる

214:デフォルトの名無しさん
22/10/12 07:23:04.46 TyHUeGJp0.net
まずメンバー変数を多用すること自体が

215:デフォルトの名無しさん
22/10/12 09:29:45.13 wUZHBRzyp.net
副作用のあるプロパティを作る方が悪い

216:デフォルトの名無しさん
22/10/12 09:51:43.31 TyHUeGJp0.net
プログラミング用語で副作用というのはハードウェア出力や状態の再設定のことだからイミュータブルなプロパティは全部副作用があるんだぜ

217:デフォルトの名無しさん
22/10/12 09:52:53.77 TyHUeGJp0.net
✕イミュータブル
○ミュータブル

218:デフォルトの名無しさん
22/10/12 09:58:11.07 wUZHBRzyp.net
そんな言葉遊びして楽しいか?

219:デフォルトの名無しさん
22/10/12 10:03:53.44 TyHUeGJp0.net
副作用がわからんと資料に書いてあることがわからなくてかなり困るぞ

220:デフォルトの名無しさん
22/10/12 10:15:07.25 wUZHBRzyp.net
俺が意図してない挙動は全部副作用だぁっ

221:デフォルトの名無しさん
22/10/12 11:33:52.36 PX0iq4dK0.net
質問です
DataGridViewで指定行までのスクロールを行いたいのですが、詰まっています
スクロール自体はFirstDisplayedScrollingRowIndexプロパティに値を代入して行えるのですが、スクロールバーのスライダー位置が最上位から変化しません
処理は、指定行を入力→DataSourceの更新→指定行へスクロールというように行っています

222:デフォルトの名無しさん
22/10/12 11:38:03.47 WbjgIxC2a.net
スクロールバーを別のとこで作ってないか?

223:デフォルトの名無しさん
22/10/12 17:04:14.81 /871xKINM.net
>>201
多重イベントでスレッドプール使い切りとかない?

224:デフォルトの名無しさん
22/10/12 18:34:22.16 PX0iq4dK0.net
>>222
そのようでした
直接弄れそうにもないので、別アプローチでの画面更新を考えてみます
ありがとうございました

225:デフォルトの名無しさん
22/10/14 19:57:10.42 29TAKwyj0.net
初めてこの板で書きます。
プログラミングで対角化をしたいのですがよく分かりません。色々調べても自分がしたいことができないです。
やりたいことは、
任意の大きさの正方行列で固有値を求めたい
オイラー方程式を含む行列要素を計算したい
です。
どうしたらいいでしょう、、、

226:デフォルトの名無しさん
22/10/14 20:00:26.98 t5o5qpLS0.net
まず言葉の意味を調べたらいんじゃね

227:デフォルトの名無しさん
22/10/14 20:01:15.78 Qq0Btn0+0.net
>>225
お前には向いていない
数学ライブラリを買え

228:デフォルトの名無しさん
22/10/14 20:11:06.46 29TAKwyj0.net
>>227
まあ、向いてないのはわかってるよ
でも数値計算で必要なんですもん

229:デフォルトの名無しさん
22/10/14 20:19:28.83 cI3rl/qY0.net
実際作ってみて何で困っているかとかそういう質問しなきゃ答えて貰えない

230:デフォルトの名無しさん
22/10/14 20:22:33.79 29TAKwyj0.net
>>229
ごめんなさい。
問題点は
方程式をとくやり方が分からない。数値計算みたいなことはやったことはあるが、実数解を求めるようなことはしたことない。しかも恐らく4次、五次方程式以上になると思うので、参考となるサイトとかを教えて欲しい。
オイラー方程式などの虚数iを含む式を入れることが出来ない。いい感じの関数とか逃げ方が知りたい。
こんな感じで参考となるサイトとかを教えて頂きたいです。

231:デフォルトの名無しさん
22/10/14 20:24:23.30 /2EVPBobp.net
x=f(x)の形にするだけの簡単なお仕事ですやん

232:デフォルトの名無しさん
22/10/14 20:30:54.89 Qq0Btn0+0.net
>>230
だからライブラリ買うとかMathematicaを買うとかしろよ
馬鹿は金を出せ

233:デフォルトの名無しさん
22/10/14 20:39:27.04 t5o5qpLS0.net
だから言葉の意味を調べろよ
何をするのか自分で全くわかってないだろ?
「いい感じの」で調べられるわけないだろ

234:デフォルトの名無しさん
22/10/14 21:01:32.89 AnbCvpeg0.net
>>225
言葉悪い人も多いが、ここは「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」だ。
Mathematica使えというのもその通り。もう少し知識つけて出直したほうが良い。

235:デフォルトの名無しさん
22/10/14 23:18:39.42 1T5O+VqE0.net
他は LAPACKかのう

236:デフォルトの名無しさん
22/10/15 00:40:45.53 mRrGj9Y+0.net
数学板行けば?

237:デフォルトの名無しさん
22/10/15 12:59:39.43 jiCek6V8M.net
>>225
pythonやR使ったほうがいいよ
そのレベルで留まらずその先の用途を考えてもpython
どうしても連携したいならコマンドラインでpython実行して結果だけC#で貰うことも出来る
自分は画像認識をその手法を使ってやってる

238:デフォルトの名無しさん
22/10/15 13:10:51.97 jiCek6V8M.net
よく読んだら実数解じゃないのか
高校生のころ多変量解析用に固有値が求めたくてBASICで計算してた
書籍にデータと結果が乗ってて同じグラフを表示したかった
残念ながらその時は実現できなかった
大学生になってCで組んだらあっさり行けたけどもう何も覚えてはいない

239:デフォルトの名無しさん
22/10/15 13:42:59.01 mRrGj9Y+0.net
最近はML.NETってのが出てきたけどね

240:デフォルトの名無しさん
22/10/15 14:19:06.79 FcVUHJvZ0.net
if(count ==1){
Debug.Log("output");
}
{}←C#ではこれの省略というのはできないのでしょうか?
pythonのように出来ると楽なのですが。

241:デフォルトの名無しさん
22/10/15 14:21:59.16 TYEHa44m0.net
Pythonと違って複文はインデントじゃなくブレースでまとめるから省略できるのは単文の時だけ

242:デフォルトの名無しさん
22/10/15 15:23:51.31 3+kTGvln0.net
むしろPythonに{}つけたい

243:デフォルトの名無しさん
22/10/15 15:32:50.72 cQjeQTYh0.net
IDEやエディタの機能を活用すればC#のほうが楽
Pythonはアンインデントを手動でやらざるを得ない分めんどくさい

244:デフォルトの名無しさん
22/10/15 15:36:13.03 FcVUHJvZ0.net
>>241
ありがとうございます
了解します(´・ω・`)

245:デフォルトの名無しさん
22/10/15 15:45:52.74 2u2iBEwS0.net
>>242
Python のパーサー書き換えて新言語作ればいいじゃん

246:デフォルトの名無しさん
22/10/15 17:26:06.25 mRrGj9Y+0.net
どう考えても{}あったほうがいいだろ…
メソッドとかやりたいことがひとまとまりになるから管理しやすい

247:デフォルトの名無しさん
22/10/15 17:28:20.76 oepRuRjKM.net
F#使えばいい

248:デフォルトの名無しさん
22/10/15 17:29:58.76 TYEHa44m0.net
インデントでもひとまとまりになるぞ
むしろインデントむちゃくちゃなやつを排除できるから見易いまである

249:デフォルトの名無しさん
22/10/15 17:47:40.19 Ggc2td0l0.net
>>248
そんな事はIDEにやらせりゃいいんだよ

250:デフォルトの名無しさん
22/10/15 18:11:24.33 2u2iBEwS0.net
>>246
だからそう思うなら自分で作れよ
本体改造するのが大変ならトランスレーターでもいいし

251:デフォルトの名無しさん
22/10/15 20:29:18.32 mRrGj9Y+0.net
>>250
いやPythonなんて使わんし…

252:デフォルトの名無しさん
22/10/15 20:39:17.55 2u2iBEwS0.net
>>251
使いもしないのに文句だけ言うとかクレーマーかよw

253:デフォルトの名無しさん
22/10/15 20:43:34.95 71BCtDZc0.net
>>252
Pythonに{}があったほうがいいとは誰も言っていないからもちつけ

254:デフォルトの名無しさん
22/10/15 20:48:05.82 71BCtDZc0.net
あっ>>242がいた
忘れてくれ

255:デフォルトの名無しさん
22/10/15 20:48:33.45 onTnH2DB0.net
あっても使わないから落ち着け

256:デフォルトの名無しさん
22/10/15 21:34:19.40 2u2iBEwS0.net
>>253
Python使ってなくて困ってもないのに
> どう考えても{}あったほうがいいだろ…
って、一体なんの言語の話ししてるんだ?

257:デフォルトの名無しさん
22/10/15 22:12:17.55 mRrGj9Y+0.net
>>256
一般言語の話な
他の言語みんな{}ついてんだから必要なもんなんだよ
わかりやすいし

258:デフォルトの名無しさん
22/10/15 22:21:40.18 Ggc2td0l0.net
インデントの位置で動きが変わる欠損言語だよな

259:デフォルトの名無しさん
22/10/15 22:23:32.44 2u2iBEwS0.net
>>257
お前の使う言語はみんな { } 使うのに
> どう考えても{}あったほうがいいだろ…
って意味不明なんだがw

260:デフォルトの名無しさん
22/10/15 22:46:19.16 tSskybGM0.net
python には {} なくても通用してるんだから、あっちのユーザーさんには必要なものではないんだろう。
自分は {} あった方がいいからって理由もあって ruby とかもキライなんだが。
まあ好き嫌い言ってても仕方ない。我らは要望に応えるだけだ。

261:デフォルトの名無しさん
22/10/15 22:59:00.35 TYEHa44m0.net
vb「begin endですが何か?」

262:デフォルトの名無しさん
22/10/16 02:11:40.97 IoSf1xr/0.net
>vb
loopだったりnextだったりする箇所は別人が引き継いだのかな

263:デフォルトの名無しさん
22/10/16 08:54:37.59 9H+50nm50.net
>>262
basicが作られた時は今のようにブロックで構造化するんじゃなくgotoしてた
つまりifと対応するのはendではなくgoto
10 if a=1 then goto 40
20 rem aが1でないの時の処理
30 goto 50
40 rem aが1の時の処理
50 次の処理
ブロックという概念がそもそも無かったからブロックの形を統一しようという発想もなかった

264:デフォルトの名無しさん
22/10/16 09:45:07.64 zEVEZIxw0.net
loop 使えるような Basic で関数ブロックを持たない奴なんてなくね?
てか、end はともかく begin なんてキーワードを持つ Basic も見たことないんだが

265:デフォルトの名無しさん
22/10/16 09:52:41.83 3xSHFrvIa.net
>>264
見たことないのはお前が使ったことないからだな
URLリンク(stackoverflow.com)
あと関数なんて無かった
gosubでサブルーチンを実装してたがサブルーチンもメインルーチンの好きなところに好きにgotoできたしそこにブロックの概念はやはり無かった

266:デフォルトの名無しさん
22/10/16 10:21:36.83 zEVEZIxw0.net
>>265
.frm ファイルとかをあげるバカが出てくるかと思ってたらマジで出てきたw
今してるのは言語仕様の話な
あとVBに関数ブロックあるし老害はそろそろ黙っとけ

267:デフォルトの名無しさん
22/10/16 10:23:41.83 9H+50nm50.net
言語仕様だぞw
キーワードに見えんか?w

268:デフォルトの名無しさん
22/10/16 10:24:56.25 9H+50nm50.net
あと初期のBASICに関数が無いという話をしてるんだから文盲は口を挟まない方が恥をかいて発狂しなくて済むぞw

269:デフォルトの名無しさん
22/10/16 11:17:27.02 zEVEZIxw0.net
>>267
残念ながらキーワードに begin なんてないんだなw
URLリンク(learn.microsoft.com)
※ vb6 のドキュメントは見つけられなかったので vba のやつな、似たようなもんだし
>>268
>>262 に loop と書いてあるのにお前が勝手に初期の Basic の話にしてるだけだろ

270:デフォルトの名無しさん
22/10/16 11:24:23.67 1mPDcr2ta.net
なんでVB.NETの話をしてるのにVBAのドキュメント見てるんだ文盲w

271:デフォルトの名無しさん
22/10/16 11:25:30.01 1mPDcr2ta.net
あとなんで初期のキーワードの成り立ちの話をしてるのに一人loopの話をしてるんだ文盲w

272:デフォルトの名無しさん
22/10/16 11:34:12.88 7phLrZXmM.net
>>268
残念ながら文盲は文字自体が読めない人のことだよ
学がなく漢字が読めない
ひらがなが読めない
そういう人
君は文盲が何か理解できてない

273:デフォルトの名無しさん
22/10/16 11:35:46.69 1mPDcr2ta.net
アスペと言えば良かったということか

274:デフォルトの名無しさん
22/10/16 11:35:53.13 9tRg+VNh0.net
>>1 が読めないもん同士なんだからどっちも消えろw

275:デフォルトの名無しさん
22/10/16 11:51:09.98 zEVEZIxw0.net
>>270
バカなのか?
回答に That is VB6 code. って書かれてるだろ
どうせ>265は basic begin あたりで必死にググってきたんだろうけど恥の上塗りにしかなってなくて草
>>271
だから >>262に loop と書いてあるだろ
do loop も知らないのなら黙ってなよw

276:デフォルトの名無しさん
22/10/16 11:52:27.38 1mPDcr2ta.net
>>1が読めないアスペはいつまでもアホなこと言ってないで消えろよw

277:デフォルトの名無しさん
22/10/16 12:24:39.22 zEVEZIxw0.net
>>276
>>265に言ってやれよw

278:デフォルトの名無しさん
22/10/16 12:25:47.33 9H+50nm50.net
全く反省の色が見えないぞアスペ

279:デフォルトの名無しさん
22/10/16 12:47:17.79 zEVEZIxw0.net
キーワードで恥かいて悔しいねw

280:デフォルトの名無しさん
22/10/16 12:48:24.88 1mPDcr2ta.net
VB.NETの話にVBA持ってきて恥をかいたのがお前ということは言ったろw
いつまで寝言言ってんだスレ違い

281:デフォルトの名無しさん
22/10/16 13:27:00.75 zEVEZIxw0.net
まだ、VB.NETとか言ってて草
英語も読めないバカ乙

282:デフォルトの名無しさん
22/10/16 13:27:43.86 9H+50nm50.net
まだ恥をさらすんかいw

283:デフォルトの名無しさん
22/10/16 13:53:22.51 zEVEZIxw0.net
キーワードバカ颯爽と再登場!
恥の上塗りのよかーんw

284:デフォルトの名無しさん
22/10/16 13:54:32.92 9H+50nm50.net
悔しいのはわかったからそろそろスレ違いということを理解して出ていけよw

285:デフォルトの名無しさん
22/10/16 14:01:28.80 zEVEZIxw0.net
>>284
>>282 に言ってやれよw

286:デフォルトの名無しさん
22/10/16 14:03:19.31 9H+50nm50.net
お前に言ってるんだよアスペw
言葉遣い同じだからすぐわかるわアスペw


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

529日前に更新/249 KB
担当:undef