!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part150
https://mevius.5ch.net/test/read.cgi/tech/1616471904/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
https://referencesource.microsoft.com/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part151
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f2c-S5yT)
2021/05/16(日) 10:45:59.00ID:8qTwOc620390デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/23(水) 22:35:03.91ID:mfn5LAEG0391デフォルトの名無しさん (ワッチョイ 4ea7-Z1/y)
2021/06/23(水) 22:58:23.05ID:oXoNjVOZ0 >>390
うーむ、DBのcompleteと
一連の処理の成功が
完全にイコールの場合はいいけど
最後にファイル書き込み&メール送信
失敗したらRollback
みたいなときは注意が必要だな
大抵はうまくいくけども
だからこそ落とし穴になるというか
システムにガッツリ入れ込むんじゃなくて使わないときの選択肢はほしいな
うーむ、DBのcompleteと
一連の処理の成功が
完全にイコールの場合はいいけど
最後にファイル書き込み&メール送信
失敗したらRollback
みたいなときは注意が必要だな
大抵はうまくいくけども
だからこそ落とし穴になるというか
システムにガッツリ入れ込むんじゃなくて使わないときの選択肢はほしいな
392デフォルトの名無しさん (ワッチョイ 5a01-QZnr)
2021/06/24(木) 00:08:14.09ID:PG/lAwcj0 >>391
>最後にファイル書き込み&メール送信
>失敗したらRollback
それはファイル書き込みやメール送信が成功した後に
DBコミットが失敗するケースを考えないといけないから設計も運用も煩雑になるよ
DBコミット後にEventual Consistencyで対応したほうが楽
特にメール送信はキューへの書き込みくらいまでしかトランザクショナルに処理できないので
DBのトランザクションとは分けたほうがいいケースがほとんど
>最後にファイル書き込み&メール送信
>失敗したらRollback
それはファイル書き込みやメール送信が成功した後に
DBコミットが失敗するケースを考えないといけないから設計も運用も煩雑になるよ
DBコミット後にEventual Consistencyで対応したほうが楽
特にメール送信はキューへの書き込みくらいまでしかトランザクショナルに処理できないので
DBのトランザクションとは分けたほうがいいケースがほとんど
393デフォルトの名無しさん (ワッチョイ 9b89-3lwz)
2021/06/24(木) 00:42:39.29ID:lRMvkPF00 質問失礼します。
いろいろ調べてこちらのコードを書いてみたのですが、実行するとForm1_Loadの中身が反映されません。
まだHello World くらいしかやったことがないので本当に初歩的な質問かもしれませんが、どうぞよろしくお願いします。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TransparencyKey = this.BackColor;
}
いろいろ調べてこちらのコードを書いてみたのですが、実行するとForm1_Loadの中身が反映されません。
まだHello World くらいしかやったことがないので本当に初歩的な質問かもしれませんが、どうぞよろしくお願いします。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TransparencyKey = this.BackColor;
}
394デフォルトの名無しさん (アウアウウー Sa47-FswZ)
2021/06/24(木) 03:59:04.52ID:rpTvuBDma >>393
この記事を読んでもらった方が早いねたぶん
http://dobon.net/vb/dotnet/help/eventhandler.html
イベントの「正体」はデリゲートというものを理解するまで理解できないと思う。
デリゲートは初心者にはなかなか理解しづらいと思うので、今は理解できなくてもそのうちわかると
気楽に考えた方がいいと思う。気にするとたぶん挫折する。
この記事を読んでもらった方が早いねたぶん
http://dobon.net/vb/dotnet/help/eventhandler.html
イベントの「正体」はデリゲートというものを理解するまで理解できないと思う。
デリゲートは初心者にはなかなか理解しづらいと思うので、今は理解できなくてもそのうちわかると
気楽に考えた方がいいと思う。気にするとたぶん挫折する。
395デフォルトの名無しさん (ワッチョイ 8abd-OKjj)
2021/06/24(木) 22:27:46.69ID:i+Vi3+/e0 教えて下さい。
List<List<string>> lstA = new...(略
for( 0から複数回ループ ){
List<string> lstB = new ...(略
switch aa{
case 1
lstB = 代入 break
case 2
lstB=代入 break
case 3
lstB = 代入 break
}
lstA.AddRange(lstB)
}
コード売る覚えですけど、リストの中にリストをぶっこみたいんですけど、未割り当てでdefaultがないと怒られるんですけど、例外がない場合ってどうしたらいいんですか?
List<List<string>> lstA = new...(略
for( 0から複数回ループ ){
List<string> lstB = new ...(略
switch aa{
case 1
lstB = 代入 break
case 2
lstB=代入 break
case 3
lstB = 代入 break
}
lstA.AddRange(lstB)
}
コード売る覚えですけど、リストの中にリストをぶっこみたいんですけど、未割り当てでdefaultがないと怒られるんですけど、例外がない場合ってどうしたらいいんですか?
396デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 22:29:11.05ID:rge7FtvrM × うるおばえ
〇 うろ覚え
〇 うろ覚え
397デフォルトの名無しさん (ラクッペペ MMb6-r2cR)
2021/06/24(木) 22:37:46.49ID:aX40sl0UM 不本意かもしれないけどいずれかのcaseをdefaultにする
or
defaultブランチを書いてcontinue
or
defaultブランチを書いてcontinue
398デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 22:48:05.74ID:rge7FtvrM 適当な例外投げとけばバグも見つかって一石二鳥
default: throw new InvalidOperationException();
default: throw new InvalidOperationException();
399デフォルトの名無しさん (ワッチョイ f662-p8Qy)
2021/06/24(木) 22:56:46.52ID:b77M28pt0 最近はSwich文を全く使わなくなったな
List<string> lstB = aa swich{
1 => 代入,
2 => 代入,
3 => 代入,
_ => new ...(略,
}
List<string> lstB = aa swich{
1 => 代入,
2 => 代入,
3 => 代入,
_ => new ...(略,
}
400デフォルトの名無しさん (ワッチョイ f662-p8Qy)
2021/06/24(木) 22:58:50.51ID:b77M28pt0 t が抜けてるけど気にしないでくれ
401デフォルトの名無しさん (ブーイモ MM26-19dE)
2021/06/24(木) 23:02:06.74ID:rge7FtvrM その前にListの階層からして使い方が適正なのかが怪しい気がする
AddRangeするけど省略されている "代入" がちゃんとそういう内容なのか
AddRangeするけど省略されている "代入" がちゃんとそういう内容なのか
402デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/25(金) 00:41:42.94ID:wXZRavwVa 真面目に質問しているようには見えんねw
こんな過疎スレでつまんないネタ展開して何が楽しいのか俺には理解できない。
普通にスベってるし
こんな過疎スレでつまんないネタ展開して何が楽しいのか俺には理解できない。
普通にスベってるし
403デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/25(金) 13:25:51.80ID:5MBIcCm10 ファイルフォーマットや電文にenum入れたクソがいて
文字列で保存されてたり
数値で保存されてたりして
グチャグチャなんだけど
enumの値ってどうやって保存しておくといいの?
文字列で保存されてたり
数値で保存されてたりして
グチャグチャなんだけど
enumの値ってどうやって保存しておくといいの?
404デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/25(金) 14:07:21.71ID:GFvOt5Sm0 あたいの知ったこっちゃないね!
405デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/25(金) 14:14:28.34ID:5MBIcCm10 c#側はEnum.Parseとか言うのがあって
数値も文字列もいける?らしいけど
受け側からふざけんなクソがって言われてる
こんなの使ったばっかりに
数値も文字列もいける?らしいけど
受け側からふざけんなクソがって言われてる
こんなの使ったばっかりに
406デフォルトの名無しさん (ワッチョイ 3f4b-hpQZ)
2021/06/25(金) 14:28:37.77ID:uD9w9riW0 仕事の愚痴は上司に言ってください
407デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/25(金) 14:35:32.46ID:j/rxeqaFM408デフォルトの名無しさん (ワッチョイ 3f01-0Hhk)
2021/06/25(金) 14:46:03.09ID:eNSUt1x80 enumは何も悪くないような・・・
普通は数値じゃなく文字列でシリアライズする
普通は数値じゃなく文字列でシリアライズする
409デフォルトの名無しさん (ワッチョイ 3fad-D3r+)
2021/06/25(金) 16:13:46.18ID:i6/+pAU60 電文…
410デフォルトの名無しさん (ワッチョイ 8fe3-0Yon)
2021/06/25(金) 16:57:16.22ID:JjIudpyP0 C#側でenumをシリアライズしたなら皆数値になるんじゃないのか
ファイルや電文に文字列や数値が混在するのはそのフォーマットの問題やんけ
ファイルや電文に文字列や数値が混在するのはそのフォーマットの問題やんけ
411デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/25(金) 17:04:30.32ID:LgKicgUoa >>403
別に揚げ足取りとかじゃなく、何がベストな方法かは要件次第なので、
要件をオープンにしたままで何がベストって言われても誰も答えようがないと思うよ。
なんか半年ぐらい前にもenumなんかイラネーって持論を展開してた人が
おった気がしたけどひょっとして同じ人だったりするんだろうかw
別に揚げ足取りとかじゃなく、何がベストな方法かは要件次第なので、
要件をオープンにしたままで何がベストって言われても誰も答えようがないと思うよ。
なんか半年ぐらい前にもenumなんかイラネーって持論を展開してた人が
おった気がしたけどひょっとして同じ人だったりするんだろうかw
412デフォルトの名無しさん (ワッチョイ ff62-ajHE)
2021/06/25(金) 20:50:22.66ID:t4QgArn70 bool値が文字列か01かもバラバラになってそう
413デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/25(金) 21:02:25.32ID:GFvOt5Sm0 booleanはtrueかfalseであって、文字列でも0/1でもない。
414デフォルトの名無しさん (ワッチョイ 4f02-mRK3)
2021/06/25(金) 23:14:59.07ID:Gf4W5qTu0 true/false も文字列も 0/1 も真偽値の状態を表す状態や表現でしかないけどな。
415デフォルトの名無しさん (ワッチョイ 8fad-7IRr)
2021/06/26(土) 01:39:51.28ID:Gmvay1qu0 真偽値はbooleanだろ
416デフォルトの名無しさん (ワッチョイ 0f93-k2Yt)
2021/06/26(土) 01:47:12.49ID:TsbOcfQ80417デフォルトの名無しさん (ワッチョイ ff62-ajHE)
2021/06/26(土) 17:38:38.83ID:nbDJ23iI0 >>413
だからフォーマットを決めとかないとコンバート時にオレオレ変換されるってはなしだろ
だからフォーマットを決めとかないとコンバート時にオレオレ変換されるってはなしだろ
418デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/26(土) 18:00:46.03ID:Dfaqq5JIM419デフォルトの名無しさん (ブーイモ MM0f-GPmn)
2021/06/26(土) 19:57:39.60ID:6B9mEdr7M ValueObjectって構造体とクラスどっちがいい?
デフォルトコンストラクタを禁止できないからクラスにしてるけど
パフォーマンスを考えると構造体にしたい
デフォルトコンストラクタを禁止できないからクラスにしてるけど
パフォーマンスを考えると構造体にしたい
420デフォルトの名無しさん (ワッチョイ 8f2f-Sr02)
2021/06/26(土) 22:10:38.87ID:jLzVoQEP0 >>419
ValueObjectは一般的にはDBやバックエンドAPIが裏にあり、オブジェクトの生成や破棄のコストはDB操作やWebリクエストに比べれば完全に無視できる
そのため制約が多くORM等のツールとの相性も悪い構造体をあえて採用する理由はないから、議論の余地なくクラスを採用すべき
DBが裏にないんだったらそもそもレールを外れているのでもはや一般論で議論しても仕方なくて、ユースケース等を考慮して君の頭で判断したらいい
ValueObjectは一般的にはDBやバックエンドAPIが裏にあり、オブジェクトの生成や破棄のコストはDB操作やWebリクエストに比べれば完全に無視できる
そのため制約が多くORM等のツールとの相性も悪い構造体をあえて採用する理由はないから、議論の余地なくクラスを採用すべき
DBが裏にないんだったらそもそもレールを外れているのでもはや一般論で議論しても仕方なくて、ユースケース等を考慮して君の頭で判断したらいい
421デフォルトの名無しさん (ワッチョイ 4f5f-Kwl4)
2021/06/27(日) 00:14:41.41ID:WofWhilS0 visual studioでデザイナーからマウスポチポチして部品を設置するのと
コードを書いて部品を表示するのはどっちがいいのでしょうか?
コードを書いて部品を表示するのはどっちがいいのでしょうか?
422デフォルトの名無しさん (ラクッペペ MM4f-etsk)
2021/06/27(日) 00:33:47.16ID:O5EL/pxwM しらんがな
好きにしろよ
好きにしろよ
423デフォルトの名無しさん (スププ Sd5f-haIp)
2021/06/27(日) 05:47:23.56ID:fv02sAlld424デフォルトの名無しさん (ワッチョイ 7f2c-0Yon)
2021/06/27(日) 11:05:00.99ID:Vxb3PSG20425デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/27(日) 11:11:04.19ID:KmuHayn70 カーソルキー使わんのか
426デフォルトの名無しさん (ワッチョイ 4f78-jM1H)
2021/06/27(日) 14:45:41.50ID:nWiM91TM0 >>424
デザイナ使った方が圧倒的に楽なんですがそれは
デザイナ使った方が圧倒的に楽なんですがそれは
427デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 15:07:56.63ID:Zt61L+c30 質問させてください。
ある特定のライブラリを使わなくてはいけなくて、そのメソッドは引数にrefが付いているものになります。
このメソッドに渡したいのは不変の値(constの意味)となります。
不変の値自体は別クラスに用意してあって、各所で使いまわしたいので読み取り専用のプロパティかstatic read onlyで定義したのですがrefが付いた関数に渡そうとするとstaticなものは渡せない、型が適していないとエラーとなります。
public constのような記述はすべきでないと見たことがあるので避けたいと思うのですが、初期化以降で変更を受け付けず、かつ各所で使えるようにして、参照渡しのメソッドも使えるようにするにはどのような方法が考えられますでしょうか?
分かりにくい説明で申し訳ありません。
ある特定のライブラリを使わなくてはいけなくて、そのメソッドは引数にrefが付いているものになります。
このメソッドに渡したいのは不変の値(constの意味)となります。
不変の値自体は別クラスに用意してあって、各所で使いまわしたいので読み取り専用のプロパティかstatic read onlyで定義したのですがrefが付いた関数に渡そうとするとstaticなものは渡せない、型が適していないとエラーとなります。
public constのような記述はすべきでないと見たことがあるので避けたいと思うのですが、初期化以降で変更を受け付けず、かつ各所で使えるようにして、参照渡しのメソッドも使えるようにするにはどのような方法が考えられますでしょうか?
分かりにくい説明で申し訳ありません。
428デフォルトの名無しさん (ワッチョイ 3f2c-aO17)
2021/06/27(日) 15:16:39.25ID:WunkWTgP0 どうもこうもないのでそのメソッドを呼び出すときにいったんローカル変数に移す
429デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/27(日) 15:18:17.29ID:VoyuuGop0 そのメソッド、アホが作ったんでなければ何かの条件で値を書き換える可能性あるんじゃね?
ローカルに移す
ローカルに移す
430デフォルトの名無しさん (ブーイモ MM0f-GPmn)
2021/06/27(日) 15:23:05.27ID:7o91bmAZM refパラメータはこいつを書き換えるぞという合図なので読み取り専用の変数を渡したらだめ
バグの原因になる
バグの原因になる
431デフォルトの名無しさん (スププ Sd5f-haIp)
2021/06/27(日) 15:41:17.93ID:fv02sAlld なんでrefなのか確認しておいた方が良くない?
432デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 16:42:23.92ID:Zt61L+c30 >>427です
ありがとうございます。
そうか、1度ローカル変数に入れれば良いのですね…思いつかなかった。
具体的には制御装置と通信、データ操作する為のライブラリです。
自分は装置データの参照(○○という制御データの値を取得)しか利用するつもりは無かったのですが、よくよく考えれば、プログラム上で値を保持し続けて、そのデータを更新したりする場合には値を書き換えるのでrefでも良いのかもしれません。
もう一度マニュアルを読み直してみます。
ありがとうございます。
そうか、1度ローカル変数に入れれば良いのですね…思いつかなかった。
具体的には制御装置と通信、データ操作する為のライブラリです。
自分は装置データの参照(○○という制御データの値を取得)しか利用するつもりは無かったのですが、よくよく考えれば、プログラム上で値を保持し続けて、そのデータを更新したりする場合には値を書き換えるのでrefでも良いのかもしれません。
もう一度マニュアルを読み直してみます。
433デフォルトの名無しさん (アウアウウー Sad3-nYnz)
2021/06/27(日) 17:03:53.98ID:bJFlr767a なぜC#にはメソッドの const 修飾が無いのか
434デフォルトの名無しさん (ワッチョイ 3fe4-+WZO)
2021/06/27(日) 17:07:52.92ID:Zt61L+c30 >>432
自分で書きましたが違いますね…
○○ってデータを取ってこいという○○の部分は文字列としてメソッドに渡す仕様になっているのでデータそのものは変えていません。
やっぱり特別な意味があるのかもしれません(ないかもしれません)ので改めて確認してみます。
何度も書き込んですいませんでした。
自分で書きましたが違いますね…
○○ってデータを取ってこいという○○の部分は文字列としてメソッドに渡す仕様になっているのでデータそのものは変えていません。
やっぱり特別な意味があるのかもしれません(ないかもしれません)ので改めて確認してみます。
何度も書き込んですいませんでした。
435デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/27(日) 18:33:32.39ID:t/dm3/tna 普通は意図をもって引数にrefを付けてるはずでしょうw
もちろんメソッドを書いた人が何か勘違いしてる可能性もないことはないが、普通は考えにくいよね。
いずれにせよ、refの引数を取るメソッドに対して
(1) 定数やリテラルを渡したい
(2) refによる「戻り値」は必要ない
こういうケースは普通にありえる。
もちろんメソッドを書いた人が何か勘違いしてる可能性もないことはないが、普通は考えにくいよね。
いずれにせよ、refの引数を取るメソッドに対して
(1) 定数やリテラルを渡したい
(2) refによる「戻り値」は必要ない
こういうケースは普通にありえる。
436デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 18:51:22.05ID:POf4PuR+M >>435
どういうケース?
どういうケース?
437デフォルトの名無しさん (ラクッペペ MM4f-tCTE)
2021/06/27(日) 19:15:22.32ID:mGOIcE7NM TryParseで真偽値だけで要件満たす場合とか普通にあらあな
そもそもこの話は
* 無理なんでラッパメソッドでも噛ましてください
* そんなに気になるなら作者に質問してください。ここは作者の気持ちを予想するスレッドじゃないんでね(文系板に行くといいと思うよ)
で終わってる
そもそもこの話は
* 無理なんでラッパメソッドでも噛ましてください
* そんなに気になるなら作者に質問してください。ここは作者の気持ちを予想するスレッドじゃないんでね(文系板に行くといいと思うよ)
で終わってる
438デフォルトの名無しさん (アウアウウー Sad3-kMi9)
2021/06/27(日) 19:25:36.70ID:t/dm3/tna >>436
あんまり意味がある質問と思えんけど例えば
// EnqueueとDequeueを同時にやる
bool TryEnDeQueue<T>(ref T inOUt> {...}
こんなメソッドがあったとして、キューにリテラルを
突っ込みたいケースは普通にありえるし、
キューから取り出した値は必ずしも使わない(キューの要素数を変えたくないだけ)
というケースもありえるだろう。
あんまり意味がある質問と思えんけど例えば
// EnqueueとDequeueを同時にやる
bool TryEnDeQueue<T>(ref T inOUt> {...}
こんなメソッドがあったとして、キューにリテラルを
突っ込みたいケースは普通にありえるし、
キューから取り出した値は必ずしも使わない(キューの要素数を変えたくないだけ)
というケースもありえるだろう。
439デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 19:26:31.24ID:rwzQBskAM TryParseって基本TryParse(xxx, out yyy)だろ?
定数渡すのはxxxだし、そもそもrefなんて使ってなくね?
定数渡すのはxxxだし、そもそもrefなんて使ってなくね?
440デフォルトの名無しさん (テテンテンテン MM4f-JXV4)
2021/06/27(日) 19:30:25.90ID:rwzQBskAM441デフォルトの名無しさん (テテンテンテン MM4f-jzci)
2021/06/28(月) 07:27:53.64ID:3BMv071BM 値渡しではなく参照渡しであることを明記するキーワードのつもりで「ref」を書いてるとかじゃないかな
そういうクソみたいなコードのライブラリを平気で売ってる会社も世の中にはごまんとあるぞ
そういうクソみたいなコードのライブラリを平気で売ってる会社も世の中にはごまんとあるぞ
442デフォルトの名無しさん (ワッチョイ cfad-4Zym)
2021/06/28(月) 07:35:50.99ID:a1dCxCbm0 あたいは確かに値渡したよのさ
443デフォルトの名無しさん (アウアウウー Sad3-nYnz)
2021/06/28(月) 08:58:08.83ID:yki3tuNEa >>441
const修飾が無い以上、表現として分かりやすいと思う
const修飾が無い以上、表現として分かりやすいと思う
444デフォルトの名無しさん (ワッチョイ ff8b-Rf0K)
2021/06/29(火) 08:13:02.33ID:upDN03IZ0 VisualStudioで、C#を使ってプログラムを作成しています。webview2で待機する方法が見つからず困っています。
どう調べても出てこないので、ヤフー知恵袋で聞いてみましたが、回答をいただけず再投稿中です。質問の仕方がよくないのかもしれないですが…。
どうかよろしくお願いします。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14245327539
どう調べても出てこないので、ヤフー知恵袋で聞いてみましたが、回答をいただけず再投稿中です。質問の仕方がよくないのかもしれないですが…。
どうかよろしくお願いします。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14245327539
445デフォルトの名無しさん (ワッチョイ 3f01-EKdG)
2021/06/29(火) 08:42:27.78ID:WsUITHRN0 俺も初心者だけど、頑張って非同期処理学んだよ
非同期処理ってネット接続前提のプログラム書くなら避けて通れないんじゃね・・・(と思って俺は頑張った
非同期処理ってネット接続前提のプログラム書くなら避けて通れないんじゃね・・・(と思って俺は頑張った
446デフォルトの名無しさん (ササクッテロラ Spa3-Rf0K)
2021/06/29(火) 11:41:07.64ID:0Q09XEclp いろいろ勉強したら解決しました。すみません。ありがとうございました。
447デフォルトの名無しさん (アウアウクー MMa3-MDar)
2021/06/29(火) 13:32:10.90ID:+VG1N6hxM >>446
そういう時って解決した方法を書いて残した方が良い
そういう時って解決した方法を書いて残した方が良い
448デフォルトの名無しさん (エアペラ SD5f-k2Yt)
2021/06/29(火) 17:49:08.51ID:OsdWQKMbD なぜなら昨日の自分はもはや他人だから!
449デフォルトの名無しさん (ブーイモ MM0f-wfqF)
2021/06/29(火) 19:58:28.59ID:d9qF3Zj0M イミュータブルなんだな
450デフォルトの名無しさん (ワッチョイ 7fa7-KW7t)
2021/06/29(火) 21:31:53.28ID:8Hq2zh0T0 ブラウザを貼るって通信できないとき放送事故みたいな感じだな
webアプリでデータだけとって画面表示は自前にせんと商品に見えんな
webアプリでデータだけとって画面表示は自前にせんと商品に見えんな
451デフォルトの名無しさん (スプッッ Sd4a-M8Gi)
2021/07/03(土) 10:36:51.73ID:afnPLxcZd C#ってC++より速度遅いですか?
処理量多いともっさりするって聞いた気がするんです
処理量多いともっさりするって聞いた気がするんです
452デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/03(土) 11:39:31.05ID:tKf1c0EP0 >>451
遅い
だから速度に頼った実装はできない
画像処理なんかで速度が動作に関わってくるところは
思い切ってc++で組んでもいいかも?
データ移すのに時間かかってて意味なかったよってあるかもしれんが
遅い
だから速度に頼った実装はできない
画像処理なんかで速度が動作に関わってくるところは
思い切ってc++で組んでもいいかも?
データ移すのに時間かかってて意味なかったよってあるかもしれんが
453デフォルトの名無しさん (ワッチョイ cf78-gkPs)
2021/07/03(土) 11:58:17.56ID:0WAx0SVV0 動作速度と開発速度のどちらに振るか
まあ好きな方でやればいいんじゃね
まあ好きな方でやればいいんじゃね
454デフォルトの名無しさん (ワッチョイ 8f5f-Q9JX)
2021/07/03(土) 12:08:20.73ID:w8WWCmjZ0 UIをC#、
高速化の必要なロジックはC++とかでもいいんじゃないの
最近色んな機械の監視装置とか作るけど、
監視してアラートを上げるところまではC++にしてるよ
高速化の必要なロジックはC++とかでもいいんじゃないの
最近色んな機械の監視装置とか作るけど、
監視してアラートを上げるところまではC++にしてるよ
455デフォルトの名無しさん (ワッチョイ 8f5f-QeXB)
2021/07/03(土) 13:13:05.85ID:R7OScebH0 >>451
ボタンのイベントハンドラ内に処理を全部突っ込んで、ボタン押した時にウインドウが「応答無し」になったのを見て
「C#ってモッサリしてるんですね」って言ってる人を思い出した
ライブラリ使わずに自前で画像処理とかするのでもない限り、C#は十分な速度が出るよ
むしろヘタにC++で車輪の再発明されるより、C#でうまくライブラリも活用してくれた方が処理速度も開発速度も早いことが多い
まあ、コンパイラの最適化を超えるような本気で書かれたC++にはもちろん勝てないけど、そんなことができる人はここでそんな質問しないよね
(自分でベンチマークして確かめるから)
ボタンのイベントハンドラ内に処理を全部突っ込んで、ボタン押した時にウインドウが「応答無し」になったのを見て
「C#ってモッサリしてるんですね」って言ってる人を思い出した
ライブラリ使わずに自前で画像処理とかするのでもない限り、C#は十分な速度が出るよ
むしろヘタにC++で車輪の再発明されるより、C#でうまくライブラリも活用してくれた方が処理速度も開発速度も早いことが多い
まあ、コンパイラの最適化を超えるような本気で書かれたC++にはもちろん勝てないけど、そんなことができる人はここでそんな質問しないよね
(自分でベンチマークして確かめるから)
456デフォルトの名無しさん (ワッチョイ ab24-U8JP)
2021/07/03(土) 15:13:32.95ID:B0HXpNBH0 >>454
それよく言うけどUI部分でこそ差つくんだよな
WinFormsやWPFでGUI作るとコントロール上でマウス動かすだけでメモリがんがん増えてくしな
OnMouseMoveとか呼ぶたびにオブジェクト生成してるからだと思うけど
それよく言うけどUI部分でこそ差つくんだよな
WinFormsやWPFでGUI作るとコントロール上でマウス動かすだけでメモリがんがん増えてくしな
OnMouseMoveとか呼ぶたびにオブジェクト生成してるからだと思うけど
457デフォルトの名無しさん (ワッチョイ 8f5f-Q9JX)
2021/07/03(土) 17:54:53.32ID:w8WWCmjZ0 >>456
UIなんか人間相手に間に合えばいいんだから、遅くなっても構わねーだろ
UIなんか人間相手に間に合えばいいんだから、遅くなっても構わねーだろ
458デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/03(土) 18:00:13.84ID:ZeViGhZj0459デフォルトの名無しさん (ワッチョイ 63ad-hWEg)
2021/07/03(土) 18:08:16.14ID:IVHyImvm0 >>456
そんな事はない
そんな事はない
460デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/03(土) 18:13:55.16ID:xqsTC6PPM スレッドセーフじゃないメソッドを擬似的に非同期に見せるためにメッセージループみたいな仕組みを作りたいんだけどなんか簡単な実装方法ってないかな?
非同期キューと無限ループするスレッドを作ってぐるぐる回す的な実装なら作れるんだけど
スレッドが落ちた場合にどうするか、ループぐるぐる回すとCPU無駄じゃないか、でもDelayで待つのもTask大量生成して勿体無い気がする、、、
みたいに考え出すとよくわからなくなった
思考停止して使えるライブラリがあるならそれ使いたい
非同期キューと無限ループするスレッドを作ってぐるぐる回す的な実装なら作れるんだけど
スレッドが落ちた場合にどうするか、ループぐるぐる回すとCPU無駄じゃないか、でもDelayで待つのもTask大量生成して勿体無い気がする、、、
みたいに考え出すとよくわからなくなった
思考停止して使えるライブラリがあるならそれ使いたい
461デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/03(土) 18:29:30.32ID:gYtBLHlma >>460
ちょっと何を言ってるのか。
スレッドセーフとは不特定のスレッドからの呼び出しで問題を起こさないこと。
非同期とはメソッドの処理が呼び出し側と別のスレッドで実行されること。
この2つがどう矛盾するのかさっぱり。
ちょっと何を言ってるのか。
スレッドセーフとは不特定のスレッドからの呼び出しで問題を起こさないこと。
非同期とはメソッドの処理が呼び出し側と別のスレッドで実行されること。
この2つがどう矛盾するのかさっぱり。
462デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/03(土) 18:30:29.23ID:ZeViGhZj0 >>460
backgroundWalker が脳筋でも使える
backgroundWalker が脳筋でも使える
463デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/03(土) 19:11:11.92ID:xqsTC6PPM IObservableとかでうまいことできんかな?
464デフォルトの名無しさん (ブーイモ MMb6-kf3V)
2021/07/04(日) 00:40:45.70ID:YIai1OGNM465デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/04(日) 01:22:13.78ID:xQv4weefa466デフォルトの名無しさん (ワッチョイ 0b90-TnCX)
2021/07/04(日) 01:46:34.84ID:pwN2nm3/0 スレッドプールのスレッドで他のスレッドで長い処理しててしかも一つしか空いてなく、かつ最大スレッド数に達してスレッド数増加できなかったら
同じスレッド使ったりとか
同じスレッド使ったりとか
467デフォルトの名無しさん (ワッチョイ 8e2d-NaZp)
2021/07/04(日) 01:58:42.29ID:BjSt84AF0 >>460
キューにBlockingCollection使えば、キューが空の時に待機してくれる
キューにBlockingCollection使えば、キューが空の時に待機してくれる
468デフォルトの名無しさん (ワッチョイ 1ee3-U8JP)
2021/07/04(日) 02:03:43.36ID:QwWGOXoT0 >>467
あれキューに入ってから取り出して処理する間に論理コア全て使われてたら処理待つのかな?
あれキューに入ってから取り出して処理する間に論理コア全て使われてたら処理待つのかな?
469デフォルトの名無しさん (ワッチョイ 1e10-kf3V)
2021/07/04(日) 07:21:36.03ID:8398ur6Y0 SemaphoreSlimじゃダメなん?
470デフォルトの名無しさん (ワッチョイ ea2c-BDhO)
2021/07/04(日) 07:31:38.01ID:P9LAGSNy0471デフォルトの名無しさん (ブーイモ MMc6-kf3V)
2021/07/04(日) 23:19:38.18ID:LPsaiBJHM >>465
c#どうこうじゃなくて一般的に非同期処理って別に他のスレッドを使いますって言ってない
ノンブロッキングなものが非同期であるだけ
初心者が非同期処理を並列処理そのものと勘違いするから嘘を教えないで欲しいだけだ
c#どうこうじゃなくて一般的に非同期処理って別に他のスレッドを使いますって言ってない
ノンブロッキングなものが非同期であるだけ
初心者が非同期処理を並列処理そのものと勘違いするから嘘を教えないで欲しいだけだ
472デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/04(日) 23:49:45.24ID:2lvTDu+Ca >>471
もう言ってること無茶苦茶w
逆である。
「一般的には」マルチスレッドを使って複数の処理を並列に走らせることを非同期という。
VBAみたいなマルチスレッド非対応の環境で疑似的に複数の処理を並列に走らせることを
便宜上「非同期」と呼ぶことはあるいはあるかもしれない。
しかしそれはあくまで括弧つきの「非同期」だ。
一般的な非同期ではない。
もう言ってること無茶苦茶w
逆である。
「一般的には」マルチスレッドを使って複数の処理を並列に走らせることを非同期という。
VBAみたいなマルチスレッド非対応の環境で疑似的に複数の処理を並列に走らせることを
便宜上「非同期」と呼ぶことはあるいはあるかもしれない。
しかしそれはあくまで括弧つきの「非同期」だ。
一般的な非同期ではない。
473デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 00:05:47.95ID:YTxGqAmPM474デフォルトの名無しさん (アウアウウー Sacf-US9C)
2021/07/05(月) 00:19:55.55ID:7etiVvGGa475デフォルトの名無しさん (ワッチョイ 63ad-bt2W)
2021/07/05(月) 01:46:57.93ID:9YH14xqL0 単純に処理がブロックされるかされないかなのでは?同期・非同期って
476デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/05(月) 02:32:04.04ID:lVBHv1fU0 グーグル先生
同期処理では、あるタスクが実行している間、他のタスクの処理は中断される方式です。 非同期処理は、あるタスクが実行をしている際に、他のタスクが別の処理を実行できる方式になります。
同期処理では、あるタスクが実行している間、他のタスクの処理は中断される方式です。 非同期処理は、あるタスクが実行をしている際に、他のタスクが別の処理を実行できる方式になります。
477デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 05:09:53.21ID:qo1brwBhM478デフォルトの名無しさん (ワッチョイ deda-BgM4)
2021/07/05(月) 06:49:42.53ID:2Erd1U7e0 >>475
一票ノシ
一票ノシ
479デフォルトの名無しさん (ワッチョイ ab24-U8JP)
2021/07/05(月) 07:40:09.13ID:14em3QBL0480デフォルトの名無しさん (ワッチョイ 63ad-hWEg)
2021/07/05(月) 08:30:38.62ID:9YH14xqL0 jsはVB6と同じくマルチスレッドをサポートしていない特殊な環境だからね。
481デフォルトの名無しさん (テテンテンテン MMc6-rRq2)
2021/07/05(月) 09:22:22.36ID:qo1brwBhM なんでスレッドにこだわってるの?
VB6もJSもマルチプロセスで走らせられるよ
VB6もJSもマルチプロセスで走らせられるよ
482デフォルトの名無しさん (テテンテンテン MMc6-Gp+e)
2021/07/05(月) 09:32:14.42ID:o1i1lUq1M Async/Awaitはマネージスレッド使ってるケースのほうがむしろ少数派じゃないの
ネットワーク、DB、ファイルIO、どれをawaitしてもマネージスレッドはほとんどの場合シングルスレッドだよ
ネットワーク、DB、ファイルIO、どれをawaitしてもマネージスレッドはほとんどの場合シングルスレッドだよ
483デフォルトの名無しさん (ワッチョイ 23e5-T6PF)
2021/07/05(月) 10:41:33.34ID:hHXc8jy70 インスタンスをもりもり作ってて思ったのですが、プログラムが実行されているコンピュータにインスタンスが作られているんですよね?
クラサバならクライアント
webサーバならwebサーバに
クラサバならクライアント
webサーバならwebサーバに
484デフォルトの名無しさん (ラクッペペ MMc6-Q0eP)
2021/07/05(月) 11:49:46.38ID:d5yMegV0M 歴史をコリエイトする!みたいな?
485デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/05(月) 11:57:54.93ID:WdSYkRT7M >>460だが結局Channelで実装したよ
Awaitしやすくて便利やねChannel
もう非同期コレクション要らないんじゃないかな
ぐるぐるスレッドが例外でも補足できないレベルで異常終了したら
どう回復すんのかわからんけどそんなこた無いだろうということで妥協
Awaitしやすくて便利やねChannel
もう非同期コレクション要らないんじゃないかな
ぐるぐるスレッドが例外でも補足できないレベルで異常終了したら
どう回復すんのかわからんけどそんなこた無いだろうということで妥協
486デフォルトの名無しさん (ワッチョイ 1ea7-tO4e)
2021/07/05(月) 13:22:46.85ID:lVBHv1fU0 まあ、c#のお手軽非同期処理って使ってあるところだいたいバグってるよね
スレッドが2つあったら
単位時間あたりの処理の分け前って一体どうなってん?
って計画されてない処理はだいたい本番であの世行きなんだけど
引数にそんなのいれるとこないしねw
スレッドが2つあったら
単位時間あたりの処理の分け前って一体どうなってん?
って計画されてない処理はだいたい本番であの世行きなんだけど
引数にそんなのいれるとこないしねw
487デフォルトの名無しさん (アウアウクー MM63-uuo+)
2021/07/05(月) 14:37:10.58ID:q4xU82vuM データベースとの接続やデータのやり取りはEntityFrameorkを使う事が一般的なのでしょうか?
SQLを書くやり方と、EntityFrameorkを使う場合の切り分ける基準はどこになりますか?
SQLを書くやり方と、EntityFrameorkを使う場合の切り分ける基準はどこになりますか?
488デフォルトの名無しさん (ワッチョイ 86da-YEpR)
2021/07/05(月) 14:50:43.99ID:RRwsgi3K0 開発生産性かな。
テーブル構造がコロコロ変わる開発初期段階でEF使うととっても楽よ。
コードファーストなEFが勝手にDBを変更してくれるから別途DB管理ツールがいらないのでC#のみに集中できる。
すでにかっちりとしたDB(テーブル)があるモデルファーストなら、速度面重視でEFよりdapperかな
EFは機能がリッチな分、テーブル内の大量レコードを扱うと速度面不利なところがある。
小規模人数しか使わないシステムならEFでも全然アリ。
不特定の数万人が使うシステムならEFで初めて方針が固まったところやボトルネック部分を
dapperに置き換えるか、巣のSQL文にしていく。
テーブル構造がコロコロ変わる開発初期段階でEF使うととっても楽よ。
コードファーストなEFが勝手にDBを変更してくれるから別途DB管理ツールがいらないのでC#のみに集中できる。
すでにかっちりとしたDB(テーブル)があるモデルファーストなら、速度面重視でEFよりdapperかな
EFは機能がリッチな分、テーブル内の大量レコードを扱うと速度面不利なところがある。
小規模人数しか使わないシステムならEFでも全然アリ。
不特定の数万人が使うシステムならEFで初めて方針が固まったところやボトルネック部分を
dapperに置き換えるか、巣のSQL文にしていく。
489デフォルトの名無しさん (ブーイモ MMb6-ThLM)
2021/07/05(月) 16:00:21.70ID:BIU2WbVdM■ このスレッドは過去ログ倉庫に格納されています
