ふらっと C#,C♯,C#(初心者用) Part159

■ このスレッドは過去ログ倉庫に格納されています
2023/08/08(火) 09:21:19.30ID:aeM2XQJJ0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part158
https://mevius.5ch.net/test/read.cgi/tech/1679783460/
■関連スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
初心者はまずVisual Studioを使いましょう。なおVisual Studioの使い方などに関しては各バージョンで違うので専用スレでお願いします
http://www.visualstudio.com/downloads/
■情報源
https://learn.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://learn.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
++C++; // 未確認飛行 C
https://ufcpp.net/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/11/15(水) 13:39:33.53ID:GITsN6v60
Windowsで.net5以上でshift-jis使うのに
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
この1行いるのは知ってます

System.Text.Encoding.CodePagesを参照する必要があると書いてあるところと
いらないしいると書いてあるのは間違いだと書いてあるところがあったので
どちらが正しいのでしょうか?
2023/11/15(水) 13:55:26.89ID:IR5/gHhj0
.NET Core 3.0か3.1あたりで本体に入ったから今はもういらない
665デフォルトの名無しさん (ワッチョイ 7f74-n7Dx)
垢版 |
2023/11/15(水) 14:05:48.88ID:D0hDoGTF0
>>662
Kono Hage!!

If you have no hair at all, shut up and get out of here.
2023/11/15(水) 14:08:52.32ID:bUMQZh1h0
SJISのためにRegisterProviderするのに何かアセンブリ参照追加する必要は無いね
667デフォルトの名無しさん (ワッチョイ 1f25-Lcu7)
垢版 |
2023/11/15(水) 14:17:23.51ID:amYyW+se0
>>665
この辺にしとこうぜベイビー。
C#ラブな同士トゥギャザーで仲良くしようぜ。
2023/11/16(木) 01:21:21.36ID:AO/C3SS40
>>664,666
thx
2023/11/16(木) 16:07:12.51ID:IwsAzKF60
Windowsに限らず、AndroidやiOSやLinuxなどほとんどのOSで、
ファイル名に使って想定外の動作をしない記号って、アンダーバー「_」くらいでしょうか?
アンダーバーでも誤動作するOSってあります?
2023/11/16(木) 16:37:54.57ID:grFWv2Y10
そめそもファイル名に使える記号自体が、ハイフンかアンダーバーくらいじゃ
2023/11/16(木) 17:50:29.03ID:BDsDlHWv0
ファイルシステムによる
2023/11/16(木) 18:03:46.46ID:Ms4DzmXb0
ファイル名 禁止文字でググれば使えない文字がわかるので
それ以外なら使えるってことだ

mac や linuxはwindowsで使えるやつはOKのようだ
2023/11/16(木) 18:33:52.17ID:K6GSt0E9M
>>672
チルダは?
674デフォルトの名無しさん (ワッチョイ 1f01-ElWn)
垢版 |
2023/11/16(木) 21:16:19.40ID:ybAKbR/C0
SwiftLint使ってると、大文字や小文字で始まるか、キャメル式かスネーク式かいちいち文句付けてうざいぞぉw
2023/11/17(金) 10:11:24.65ID:QjfY8ooq0
>>670
ハイフンはMS-DOSがNGだから、ちょっと怖いかなと
2023/11/17(金) 11:06:24.34ID:RPLwg0XBd
コンピュータ名はアンスコ使えなくてハイフンは使える謎
677デフォルトの名無しさん (スプッッ Sd7f-Xzxn)
垢版 |
2023/11/17(金) 11:28:27.47ID:180/RciHd
_で始まるファイル名だとコンパイル出来ない言語は観た覚えがある
2023/11/17(金) 12:59:38.86ID:O8YSwnHi0
のーみそコネコネ
2023/11/17(金) 13:19:03.32ID:QjfY8ooq0
半角括弧()がどのOSでも使えるって出てきましたけど、本当でしょうか?
2023/11/17(金) 13:33:20.62ID:Sl2+FwO30
>>679
キミが「どのOSでも」「使う」という表現に込めた意味を、それぞれ詳しく教えて
2023/11/17(金) 18:14:02.34ID:TreZcExv0
ボーダーラインを探すなんて無駄なことしてないで、
自分が対象にするOSで使える文字だけ使っときなよ、と思いました

暇ならとことん網羅して論文でも書いていてくれ
2023/11/17(金) 18:44:22.53ID:dfpiw+/X0
割と知られていないけど、cr,lfなどの制御文字もファイル名に使えたりするね
explorerじゃ対応していないからアプリ作る必要があるが
2023/11/17(金) 18:53:29.25ID:peW3mEg+0
>>675
それどこ情報?
2023/11/17(金) 20:14:07.64ID:h0n5cOPg0
そもそも使う意味
2023/11/17(金) 21:37:23.41ID:wLQk0c+b0
条件文がめんどくさい
x>=a かつ x<=b を
if( a <= x <= b )
って書ける言語ないですか?
686デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
垢版 |
2023/11/17(金) 21:40:25.75ID:PqMW4vo50
あったとして、どうするんだ?
2023/11/17(金) 22:14:39.43ID:dfpiw+/X0
ロックバルーンは99
688デフォルトの名無しさん (ワッチョイ 9f01-M2ys)
垢版 |
2023/11/17(金) 22:17:29.52ID:7wOEc1lI0
>>686
倉庫番の人だよ
689デフォルトの名無しさん (ワッチョイ 9f57-ElWn)
垢版 |
2023/11/17(金) 22:23:01.37ID:PqMW4vo50
Pythonがそう書けるってさ
2023/11/17(金) 22:27:32.02ID:wLQk0c+b0
マジですか。
C#にも導入してくれないかなぁ
2023/11/18(土) 07:03:20.87ID:i2qRQSqI0
特段必要性を感じないからどうでもいいかな
692デフォルトの名無しさん (ワッチョイ e960-jFON)
垢版 |
2023/11/18(土) 18:37:11.62ID:mbkKOvAd0
関数の返り値を比較するときに2回書けないから一旦値で受ける、
なんて必要がなくなるから無いよりはある方がいいな。
2023/11/18(土) 18:41:07.35ID:ypjk0x+00
if(( a <= x )&(x <= b ))
でいいよ
2023/11/18(土) 18:52:35.99ID:jd9YdmKPH
最近のパターンマッチングを使って
if (x is >=a and <=b)
と書いてもいい
2023/11/18(土) 19:32:58.55ID:iMqzxnwJ0
boolでも無いのにifの条件だけで使ってしかも範囲判定条件の戻り値とかあるんか
2023/11/24(金) 19:38:01.29ID:6FJDI0Q/0
task1〜3までをUIスレッドで開始して、それからは
task1→task2→task3→task1みたいに自分の処理が終われば
別taskに処理を移すみたいな感じのソースコードを作りたいです。
処理はすぐ終わる計算でいいです。どうしますか?
ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたいです。
2023/11/24(金) 20:01:17.48ID:wNRDz5oc0
>>696
>>自分の処理が終われば

「自分の処理」とは?
2023/11/24(金) 20:07:57.51ID:qxyJ/uo00
順繰りに起動すりゃいいだけ
2023/11/24(金) 20:09:10.20ID:qxyJ/uo00
てか順にやるならスレッドにする必要ねーな
700デフォルトの名無しさん (ワッチョイ 8291-PfDU)
垢版 |
2023/11/24(金) 20:59:34.65ID:y2ZJO/eV0
そもそも、タスクとスレッドの関係をどういうもんだと思ってるんだか・・・・
2023/11/24(金) 21:23:25.88ID:zyxlA+5J0
使ったことないけど、Task.ContinueWith()
702デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 21:28:48.64ID:6FJDI0Q/0
>>698
ごめんなさい誤解ありました。

task1→処理1

task2→処理2

処理1と処理2とかは並列処理です

順繰りというのは難しいのではって感じです。
703デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 21:33:36.46ID:6FJDI0Q/0
task1→処理1

task2→処理2

task3→処理3

task1→処理1の2回目

処理1の2回目がミソです

処理1の2回目と処理1も並列になっててほしいんです

ちょっぴり無茶なプロセスですかね?
2023/11/24(金) 21:36:35.38ID:wNRDz5oc0
XY問題再び
2023/11/24(金) 21:45:07.71ID:pe/5i+Cu0
コルーチンのことかな
一定の処理まで終わらせたら明示的な命令によって他のタスクに切り替えて行くやり方
C#的にはIEnumerator<T>型を返すやつね
コルーチン自体はスレッドに依存しないので必ずしも複数スレッドで非同期処理をやるというわけでもなく
同期的に書けば排他制御が不要になる
2023/11/24(金) 21:48:48.25ID:z45fHQco0
//また同じやつだな
await 日本語を整理しろ();
回答はそれからだ();
707デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 22:22:10.58ID:6FJDI0Q/0
>>704
特にやりたいことはないですよ
開始の時間printfしてみたら

処理1
処理2
処理3
処理1の2回目
処理2の2回目

ってなってればいいんですよ
2023/11/24(金) 22:24:19.01ID:qxyJ/uo00
だから並列で処理する意味ないやろ
709デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 22:34:42.42ID:6FJDI0Q/0
>>708
特に作りたいものがないんですが思いついたのは
並列処理だと時間短くならね?ですね
2023/11/24(金) 22:50:29.15ID:wNRDz5oc0
並列関係にあるタスク同士を「矢印」で接続してしまう珍妙なセンスの持ち主
2023/11/24(金) 22:50:44.86ID:4bKY7cSe0
>>709
今のお前がやってもかえってパフォーマンス悪くなるだろうな
712デフォルトの名無しさん (ワッチョイ 298e-cVwZ)
垢版 |
2023/11/24(金) 22:56:14.00ID:A049oz9t0
また後出しのあいつか
2023/11/24(金) 23:02:25.18ID:uPf7hF5o0
なんか良くわからん…
714デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 23:09:30.59ID:6FJDI0Q/0
task1〜3までをUIスレッドで開始して、それからは

ここ違いますね、UIスレッドで起動するのはtask1
task1を起動してからは上に書いたとおりです。

後だしではないんでそこは分かってほしい。
2023/11/24(金) 23:21:12.17ID:kO4eXafJd
ボール1から三つ投げて
どのボールが先に落ちてもいい
全部地面に落ちたら
また1から投げるってことだろ
2023/11/24(金) 23:27:15.24ID:GWBHs7u/0
それだと処理が終わっでない
終わってから都賀のタスクなんだから

3人いる
長男が投げる、落ちるのを確認したら
次男が投げる、落ちるのを確認したら
三男がなげる、落ちたらサイクル終わり
また最初に戻る

じゃね?
2023/11/24(金) 23:29:33.37ID:wNRDz5oc0
「後出しではない」と「後出しを自覚できていない」は別の概念
718デフォルトの名無しさん (ワッチョイ 46e5-f5/H)
垢版 |
2023/11/24(金) 23:42:55.25ID:6FJDI0Q/0
>>716
伝わってませんね
落ちるのを確認ではなく投げるのを確認ですかね
長男が次男に投げたからお前も投げろよって声掛けする感じです
2023/11/24(金) 23:49:18.55ID:mLC3ri5P0
それ単純に順次Task.Run()していくだけじゃん
2023/11/24(金) 23:56:23.11ID:uPf7hF5o0
はぁはぁ
716でいうと三男が投げ出すと長男も2回目を投げろと(長男の1回目は終わってないかもしれない
721デフォルトの名無しさん (ワッチョイ bfe5-1fOb)
垢版 |
2023/11/25(土) 00:01:28.56ID:5JaI+Sbl0
>>719
書いて貰えると嬉しいです
Task1をもう一回呼ぶなんてできます?
1回目はUIスレッドから
2回目はTask3スレッドからです
2023/11/25(土) 00:03:58.41ID:6TmsaT3E0
>>719 の言う通り、順次Task.Run()すればキューに積まれて順に取り出されて
スレッドプールで実行されるんじゃね。
但し、>>707 で積んだ順番でprintfされることを期待しているようだが、
各Taskが並列実行されるので、Task開始順とprintfの順番が一致する保証はない。
2023/11/25(土) 00:06:31.50ID:6TmsaT3E0
>>719 じゃないけど、自分で書けない理由を答えろ。
Task1をもう一回呼べない理由を答えろ。
書いてコンパイルして動かせ。
724デフォルトの名無しさん (ワッチョイ bfe5-1fOb)
垢版 |
2023/11/25(土) 00:19:31.02ID:5JaI+Sbl0
Taskの理解間違ってました
Taskってのは関数みたく何度も呼べるもんなんですね知らなかった
2023/11/25(土) 08:10:48.30ID:D4bWuN2p0
そもそも特に作りたい物も無いのに考えるのがナンセンス
2023/11/25(土) 08:13:50.02ID:qghurl9U0
それはそう
頭でっかちで理屈だけ先行しがち
2023/11/25(土) 08:33:26.29ID:cvmNBgFA0
Taskの理解もスレッドの理解もできてなさそう
スレッドだって実体はただの関数で何度でも同じ内容を開始できるが
2023/11/25(土) 12:16:24.94ID:+bZiOimW0
Taskはスレッドプールを使いやすくしたものだしね
※LongRunningオプションをつけてTaskを生成した場合は専用のスレッド
729デフォルトの名無しさん (ワッチョイ 5f91-YR7l)
垢版 |
2023/11/25(土) 12:44:24.22ID:2HfGPNlX0
基礎の理解を大きく欠くメチャクチャな質問に対して、わからないのに答えるメチャクチャな回答者が大勢出てくる・・・・
知恵袋のことを笑えんな
2023/11/25(土) 12:58:31.09ID:hcYVkcJO0
そのうちたまに出るバグに悩まれそう
731デフォルトの名無しさん (ワッチョイ dfc6-AnfR)
垢版 |
2023/11/25(土) 13:11:43.69ID:Q+BtNXr10
スレッドとタスクとプロセスの違いをしっかり説明出来る奴は少ない
2023/11/25(土) 13:21:16.14ID:GnFdMEyV0
LWPも含めて説明してくれ
2023/11/25(土) 13:51:42.24ID:QjoVuBi10
ここ初心者スレなのよね
2023/11/25(土) 14:28:34.44ID:6TmsaT3E0
アプリケーションドメインは滅びの道?

JavaのVirtual Threadが気になる。
2023/11/26(日) 03:09:57.86ID:TxNzhOp40
TASK1〜3をそれぞれキュー1〜3にどんどん入れていって、
そのキューから同期的にタスク1−3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが
2023/11/26(日) 03:09:58.20ID:TxNzhOp40
TASK1〜3をそれぞれキュー1〜3にどんどん入れていって、
そのキューから同期的にタスク1−3を取り出せばいんじゃね
つか
>ちなみに処理が終わったことがわかる変数などを使うってのは無しにしたい
とかいう条件はなぜに必要なのか
その条件だとタスクではほぼ何もできないわけだが
2023/11/26(日) 06:34:19.55ID:WuUXccWm0
まず自分の書き込みキューをなんとかしようず
738デフォルトの名無しさん (ワッチョイ 5f32-sw9y)
垢版 |
2023/11/26(日) 06:43:14.79ID:Yqv2nl500
すみません、単刀直入にお尋ねしたいのですが
配列の各要素に入れらた構造体、ないしはクラスがあるとして
その中でそいつらが「自分の現在の添字を確認する」方法ってありますか?
配列の何番目に入っているのかってのを確認したいです。

例えば、自分の現在の添え字を返す関数とかあると嬉しいのですが。
調べてみても、ある値を要素から探してその添字を求めるーみたいなのはあっても
ストレートに自分の今の添字を返すーとかは無いのです。
2023/11/26(日) 07:52:19.12ID:Zpp5xLGV0
無いもんはない
2023/11/26(日) 08:39:42.47ID:rln84VAX0
そんなにあれこれ言語知らないけど
配列の内側から自分のIndexを取得できるような言語存在したっけ
2023/11/26(日) 09:26:10.80ID:Yqv2nl500
>>739
なんで無いんでしょうかね。。需要ある気がしますが。。
調べたい場合簡単なコードで解決するからでしょうか?

配列に入ってる側から自分の添え字を調べる方法ってありますか?
2023/11/26(日) 09:39:06.68ID:N0k0I/0p0
親オブジェクトを子オブジェクトのプロパティ等に保存して必要な時にIndexOfで取得する
2023/11/26(日) 09:41:54.74ID:sVRUNFWaM
あえて理由付けするなら、最近の言語では配列をコレクションとして考える傾向が強くインデックスを意識しないようになってきている
リストや連想配列ではインデックスは抽象化されているので直接操作するのを避けるようにするので需要が低い
実際for each文ではインデックスを意識しないだろ
744デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 10:18:36.32ID:t46bGHL+d
倉庫番君?
2023/11/26(日) 10:20:36.87ID:aOnl3nzuM
>>741
ない理由は簡単だよ
主な理由は無駄だから

任意の要素は複数のコレクションに入れられるし一つのコレクションに複数入れることが出来るから
要素側で添え字を持つ場合にはそれを区別することになる
そしたら親クラスと添え字のペアは何で保存する?dictionary?独自の保存クラスのインスタンス?
要素数だけ保存インスタンス作るの?と言う話になる
2023/11/26(日) 10:24:23.79ID:aOnl3nzuM
無くて不便だなと感じるなら一度作ってみたらいいよ
それが使いやすいなら使えばいいしそれに対して他の誰も文句を言わない
2023/11/26(日) 10:29:28.53ID:WuUXccWm0
配列中のIndexが重要なら固定で作れ
固定が嫌だと言うなら自分のIndexを気にしなきゃいけないような作りにするな
748デフォルトの名無しさん (ワッチョイ a701-qLBg)
垢版 |
2023/11/26(日) 10:34:56.71ID:Mj7uGAuQ0
倉庫番の人を相手にする人達
2023/11/26(日) 10:57:22.74ID:YkBy/87/0
今回は1度の質問で相手に伝わる日本語になっているので合格!!

初心者あるあるの質問だしね
2023/11/26(日) 11:29:02.31ID:aOnl3nzuM
コレクションの要素の添え字をコレクションで持つ
その要素の添え字をコレクションで持つ
そのまた…
と永遠に終わらない
2023/11/26(日) 11:42:58.44ID:xrmT/xcU0
どんな手段であろうともきちんと動けばいいんじゃね?(適当
752デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 12:00:02.74ID:t46bGHL+d
9月から配列配列と言い続けているのに驚く
まだやってんのかよ
2023/11/26(日) 13:02:10.49ID:xrmT/xcU0
それで作品は完成したのか
2023/11/26(日) 13:41:55.38ID:YjDORt8e0
彼は作品を作ってるんじゃない
ただ配列と格闘してるだけや
2023/11/26(日) 15:26:09.65ID:06WEnIxy0
配列たのしいよねでんちゃ!でんちゃ!
こうですかね
2023/11/26(日) 16:57:15.49ID:ebkpzwLn0
自分のindexを知りたいとか思ったことないな
757デフォルトの名無しさん (スップ Sdff-aoBM)
垢版 |
2023/11/26(日) 17:43:50.21ID:t46bGHL+d
自分でプログラムしてるならわかる
必要ならパラメータで渡す
そんなものいらんよ
758デフォルトの名無しさん (ワッチョイ 4701-1fOb)
垢版 |
2023/11/26(日) 20:59:21.90ID:DSb557XU0
>>754
格闘家か
2023/11/27(月) 13:01:29.90ID:YdGgb4vX0
ディクショナリで似たようなことした気がする(うろ覚え)
2023/11/27(月) 18:34:33.66ID:fu5uNpvk0
>>738
配列aの3番目と配列bの1番目と配列cの99番目と変数dが全部おなじインスタンスだったらどうするんだよ?
2023/11/27(月) 19:53:58.80ID:/cbu4sL+0
1億円と2千円前から愛してるー
8千円過ぎた頃からもっと恋しくなあった
2023/11/27(月) 20:52:07.36ID:2/xPn6oY0
そもそも配列自体は同じクラスや構造体の繰り返しやろ
そこにクラスAさんいまどの添字にいまかーって聞いても、添字分の回答が来るだけやねわら
2023/11/28(火) 00:25:46.05ID:KjOVbCNK0
非同期処理は自分も全然理解出来てないな…
分かりやすい記事や書籍あったら教えてほしい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況