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

■ このスレッドは過去ログ倉庫に格納されています
2024/02/11(日) 09:17:20.44ID:8k78Qd14M
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■前スレ
ふらっと C#,C♯,C#(初心者用) Part159
http://mevius.5ch.net/test/read.cgi/tech/1691454079/
■関連スレ
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
2024/11/15(金) 20:27:55.20ID:xDAXGSSE0
クラスへのポインタをポピー!
味わい深い
2024/11/15(金) 20:32:02.03ID:btoL8w9Qp
>>798
渡せるのはクラスオブジェクトだ
2024/11/15(金) 20:32:51.22ID:btoL8w9Qp
厳密にはクラスオブジェクトのポインタだね
2024/11/15(金) 20:34:24.14ID:MoNXXLAep
ああ、クラスコードそのものも渡せるなぁ
2024/11/16(土) 06:46:10.41ID:qCnJNgbf0
>>797
参照くらい知っとけ
2024/11/16(土) 08:39:25.08ID:AKFzyauM0
Win11のコンソールウィンドウで、画面からはみ出した上のほうの行が表示されない
Console.BufferHeightの行数の設定がマズいのかもしれないが、よく分からない
2024/11/16(土) 15:15:41.19ID:GSPZQP9h0
>>803
うなぎの蒲焼きには必須だよね
2024/11/16(土) 18:11:04.85ID:G2FULni40
>>803
Call by Nameとの違いを3行で
2024/11/16(土) 20:03:57.66ID:WipzlT6O0
>>797
結局、
誰もわかってないという…
2024/11/16(土) 21:29:56.73ID:Wc0ai5mi0
ww
微笑ましい煽り
809デフォルトの名無しさん (ワッチョイ 62d6-EBAf)
垢版 |
2024/11/18(月) 07:07:02.90ID:INV+aJIp0
【ナゾロジー】サイコパスは「痛みを伴う失敗」から学習できない! [すらいむ★]
http://itest.5ch.net/egg/test/read.cgi/scienceplus/1731838156
2024/11/23(土) 15:39:50.83ID:dIdD47Ipd
yieldの使い道がわからないなり…
2024/11/23(土) 17:02:37.47ID:+S3zqAg/0
わからないなら無理に使わなくてもえぇんやで
2024/11/23(土) 17:05:22.10ID:0fvlCeGq0
yieldが出てくるメソッドは外部イテレータ用にデータコレクションが紐付いた限定的な継続オブジェクト(IEnumerable)を返すようになってる
この継続とはSchemeで言う継続呼び出し(call with current continuation)辺りに精通してないと恐らく真の動きは理解できないと思うけど
yieldキーワードを書くだけで、そのメソッドは見かけ上呼び出し先の処理を中断して、呼び出し元で結果を受け取る事ができ、望めば処理の再開もできるように限定的な状態機械に翻訳される
この一連の仕組みをいちいち自作するのは面倒なのでyieldキーワード等が用意されてる
実際何が起きてるのかはILSpyとかで追わないと判らんと思う
2024/11/23(土) 17:26:45.50ID:0fvlCeGq0
これの何が嬉しいかというと、上の複雑な仕組みを外部イテレータというインターフェースに落とし込んでforeachとかで抽象化して扱える事にある
逆に抽象的ということは普通に列挙するよりかは効率が悪いのと、yieldメソッド内は制限が多い
使い所としては、いつ終わるか判らない、もしくは終わらないような処理で途中結果が欲しい場合とか
814デフォルトの名無しさん (ワッチョイ ff85-zwOW)
垢版 |
2024/11/24(日) 03:27:53.65ID:pKw1EAws0
わからないなら無理に使わなくてもいいるど
2024/11/24(日) 04:01:48.47ID:u53SJ5yz0
>>812
ふーん
そんな機能あったんだ…
2024/11/24(日) 09:56:29.38ID:kUToI6JtM
yield使ったメソッドはコルーチンと言うものの一種で関数は通常再実行されても頭から実行されるけど
コルーチンはreturnした場所から再実行されるもの

実際は状態を内部で持つようにコンパイラで書き換えて実現してる
状態遷移を伴った複雑なシーケンスを列挙するときに便利なのでそういう仕組みがあるけど使わない人は使わない
ゲームの敵キャラなんかの動き、音楽再生なんかにも使えるけど普通のメソッドで作ったほうが良い
2024/11/24(日) 10:18:54.22ID:gto9pmL30
yield便利だよね
2024/11/24(日) 10:25:55.74ID:kUToI6JtM
Linq,Async,Rx等とは相性はいい
2024/11/24(日) 10:32:47.48ID:u53SJ5yz0
>>816
ふーん

最先端ゲームには危険だな…
2024/11/24(日) 10:36:16.43ID:u53SJ5yz0
>>819
てか、
最先端ゲームはC#使わないか…
821デフォルトの名無しさん (アウアウエー Sadf-wjfe)
垢版 |
2024/11/24(日) 10:39:56.50ID:9Gv3GpvEa
yieldって勝手にマルチスレッドになる?
822デフォルトの名無しさん (ワッチョイ ff95-zS0G)
垢版 |
2024/11/24(日) 11:11:44.42ID:GiK5O5OL0
>>821
ステートマシンに変換されてるだけだからそのコード見るとわかるがシングルスレッド

Jetbrain Riderでその場でILと低レベルC#コードが見れるから見てみるといい
2024/11/24(日) 11:43:31.53ID:y51b8un80
最先端じゃなくてもC#使わないだろw
2024/11/24(日) 12:16:02.02ID:XzS0JgVO0
UnityだとC#じゃないの? 知らんけど。
2024/11/24(日) 13:41:46.63ID:gkPESB8i0
突然バージョン番号が爆上がりしたライブラリさんじゃないですか
そういえばプリキュアのエンディングムービー作るのに使われてたとか
2024/11/24(日) 15:17:49.23ID:GgS92Yo80
カプコンのREエンジンはC#だな
開発ツール類はWPFとC#で作っているのがそれなりにある
2024/11/24(日) 15:23:54.34ID:u53SJ5yz0
>>826

と言ってるバカシロート
2024/11/24(日) 19:15:56.38ID:UAUyH8bw0
どうしたんだ?何か辛いことでもあった?
2024/11/24(日) 20:57:17.89ID:00v/i1H+0
ここUnity関係ないのよね
2024/11/27(水) 14:25:40.66ID:lxFJutvX0
ゲーマー目線だと、グラフィックに関して言えば、スクウェア(スクエニ)は確実に世界最高レベル帯で、
カプコンは一段劣るイメージだったんだけど、今じゃカプコンのほうがマシに見えるようになってきた。
FF7Rは別格だけど。
2024/11/27(水) 14:32:57.33ID:KEKTkFea0
>>830

と言ってるバカシロート
2024/11/27(水) 20:12:09.73ID:04jGnn85d
ゲームでC#ってどうなんだろ
もう数年前の話で携帯アプリで使ってたって言ってたけど、その時はGC走るとやっぱりカクつくって言ってたもんなー
俺が作ってた頃はDirectXでゴリゴリ書いてたけど、もうそんな手間も今はないんだろうなー
2024/11/27(水) 20:19:32.57ID:nVfa1m6ip
GCされない様に全部スタティックなグローバルな変数にするよ
2024/11/27(水) 22:57:56.72ID:rC6zBaUk0
スマホやなくて携帯かよ
携帯でGC走るとかそんなのあるんか
835デフォルトの名無しさん (ワッチョイ b7d9-eqPa)
垢版 |
2024/11/28(木) 06:03:41.07ID:FYbvHN5w0
数年前ならスマホだろ?
携帯電話=スマホ
10年前ならi-modeなどだろ?
2024/11/28(木) 06:59:00.90ID:LtNI1WyS0
まぁ、携帯電話ってスマホも含むもんな
2024/11/28(木) 09:14:23.11ID:uPmWApFop
最初に大量にヒープ取ってメモリー管理を自前でやる
2024/11/28(木) 09:34:29.98ID:eutxUc2b0
C#ってWindows Phoneの中核言語に据えて全世界30億人が使う予定だったけど
撤退したせいで何もかもが半端な存在になっちゃったな
特にライブラリ・フレームワークの取っ散らかり方がひどい
2024/11/28(木) 09:47:41.85ID:MV0zaiYm0
GCを停止ってできないっけ?
2024/11/28(木) 10:05:26.48ID:wArzfhTM0
一時的にGCを抑制する仕組みはあるけど、ずっと止めるのは無理
2024/11/28(木) 12:00:14.92ID:uGsutY3k0
spanってヒープで使えないんだっけ?
使えれば、GC走るのは無視できそう
842デフォルトの名無しさん (ワッチョイ ff95-zS0G)
垢版 |
2024/11/28(木) 15:25:41.86ID:CkB3E3s60
>>841
spanはヒープスタック任意のメモリを指せるが、span自体の領域はスタックに確保する必要がある
よってasync関数の引数やクラスのフィールドには使えない

memortはスタックヒープどっちにも置けるが、指せるのはヒープだけ(スタックのがライフタイムが短いため)
2024/11/28(木) 16:26:36.56ID:0Rtkkd450
unsafeは使えない?
2024/11/28(木) 16:37:47.84ID:cfBZo9cap
構造体固定長配列
2024/11/28(木) 16:39:03.06ID:cfBZo9cap
捕まえたものは絶対手放さない
2024/11/28(木) 18:25:15.73ID:PIh8QaIU0
無駄な空間だらけになりそやな
まぁ今のメモリー空間自体無駄が多いか
2024/12/01(日) 11:13:11.73ID:yUOzmHmkd
生成AIが正解を出し渋って3日ぐらい話し込んでやっと教えてくれた
もう人間をおちょくる術を学習したみたいだわ
2024/12/01(日) 12:31:00.27ID:WhLzD2Tg0
そらそんなもん使って正解がーとか言ってるようなのおちょくられて当たり前よ
2024/12/02(月) 01:35:01.10ID:FUoJr7Si0
最近何度質問しても非推奨のAPI提示されたりするので、これ楽になってるのかなと自問自答したりすることがある
2024/12/02(月) 08:45:30.66ID:Z7UX6I8F0
ttps://pbs.twimg.com/media/Gc0l8jabsAAAau0.jpg
2024/12/02(月) 09:58:57.40ID:cKcAe5N2p
>>849
まあ、AIに情報元が古いかなんて分からないからなぁ
852デフォルトの名無しさん (ワッチョイ 5fd3-3+Vr)
垢版 |
2024/12/04(水) 15:30:08.60ID:u7vbPpyh0
非推奨は要らないってちゃんと書かないと
2024/12/04(水) 17:59:28.27ID:LKWC8ZOe0
C#ってPHPみたいにバージョンアップごとに非推奨増えたり使えなくなったりってあんまないよね
下位互換が増えてどうにもならなくなることある?
854デフォルトの名無しさん (ワッチョイ b049-p8ju)
垢版 |
2024/12/04(水) 18:30:18.90ID:pRYneokD0
>>853
C#ってPHPみたいにバージョンアップごとに非推奨増えたり使えなくなったりってあんまないですよ
下位互換が増えてどうにもならなくなることないよ
2024/12/04(水) 19:05:24.24ID:2ucjdnMM0
>>850
え?

なんでデバッグ増えるの?
2024/12/04(水) 19:29:45.67ID:NXSkMQci0
そら自分で作ったもんじゃないんだからデバッグ増えるだろバカなの
2024/12/04(水) 19:32:47.59ID:h9p+zhnx0
AI がプログラムを書く場合はメンテナンスの重要度を低く扱うからじゃない?
メンテナンス性は後からコードを修正する際に必要な要素なので、問題が生じたときに全部組みなおしても5分で済むのなら無視してもいいかもしれないし。
メンテナンス性を考慮したとしても AI と会話するときみたいな違和感が付きまとうだろうし。
2024/12/04(水) 20:04:20.43ID:J6j26JG7M
AIは条件網羅したコードを出さないことがある
それとプログラマはコーディング中に仕様の抜けやロジック上のミスを発見するけどAIには無理
2024/12/05(木) 12:01:24.14ID:BvdDuGAN0
そりゃプロンプト次第だな
仕様の抜けがあると思われるときは指摘しろと指示すれば結構いける
言えばわかるだけそこらの専門卒よりよほど優秀だ
2024/12/05(木) 13:22:47.75ID:s/VWQ+QW0
>>859
まあ、使う人の能力次第だね

あと、今後も進化するだろうし
2024/12/05(木) 16:52:02.05ID:G+T5dBz60
バージョンによる違いを考慮しなかったり、下手すると種類は同じだけど異なるライブラリの関数を拾って来たりするからなぁ
それでも十分参考になるけども
あとCopilotとGeminiで性格が違うのも面白い
2024/12/05(木) 17:02:34.95ID:s/VWQ+QW0
>>861
まあ、
無能プログラマーよりマシかもね…
2024/12/05(木) 17:54:15.05ID:o2uV64cyM
ChatGPTは言えばわからないおバカさん

ミスを指摘してもまた同じコードを返すことがある
ミスを徐々に指摘するといつの間にかまたミスが入り込む
2024/12/05(木) 20:30:00.83ID:SuwMogjA0
ある意味とても人間っぽいな。
865デフォルトの名無しさん (ワッチョイ 224b-X9QH)
垢版 |
2024/12/07(土) 16:55:23.59ID:PrlSWlXr0
マイク入力をリアルタイムでスピーカーに出力したいんだがどうすりゃいいかね
Windowsの機能でマイクを聴くってのがあるけどそれと同じことをC#でやりたい
これだとマイクを聴くに比べて徐々に遅れていく
var f = new MMDeviceEnumerator().EnumerateAudioEndPoints(DataFlow.Capture, DeviceState.Active);

var waveIn = new WaveInEvent() { DeviceNumber = 2 };
wavProvider = new WaveInProvider(waveIn);

var mmDevice = new MMDeviceEnumerator().GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
wavPlayer = new WasapiOut(mmDevice, AudioClientShareMode.Shared, false, 0);
wavPlayer.Volume = trackBar1.Value / (float)trackBar1.Maximum;
wavPlayer.Init(new VolumeWaveProvider16(wavProvider));
wavPlayer.Play();

waveIn.StartRecording();
2024/12/08(日) 10:54:52.12ID:BlktZer40
>>865
マイクとスピーカーをアンプ経由で繋ぐ
2024/12/08(日) 17:06:36.35ID:gDGRR2/m0
AIは鏡
868デフォルトの名無しさん (ワッチョイ df4b-lhhN)
垢版 |
2024/12/08(日) 18:38:49.12ID:M/coJyRO0
>>866
ミキサーに出力したいんでね
2024/12/08(日) 18:47:47.18ID:d7OE/SEZ0
そういうのってOSのAPIに送られてくる時点でもう遅いんだわ
リアルタイムならパススルードライバを作るか探してくる必要があるんじゃないの
870デフォルトの名無しさん (ワッチョイ df4b-lhhN)
垢版 |
2024/12/08(日) 20:20:16.52ID:M/coJyRO0
定期的にFlushで解決したわ
多少の遅れは問題なくて徐々に遅れが長くなるのが問題なんでね
2024/12/08(日) 23:10:07.03ID:0JPGOYpO0
なぜか理由を後出しするクズ
なんでね
2024/12/09(月) 01:13:15.18ID:AoStJL150
知恵遅れは質問も下手
2024/12/09(月) 05:42:49.44ID:GHB6/XXyd
ネットはもうリアルだよ
君らリアルでもそんな事平気で人に言ってるの?
874デフォルトの名無しさん (ワッチョイ 8730-8W9G)
垢版 |
2024/12/09(月) 05:51:18.24ID:wYNyoQwl0
それはないネット番長だから
875デフォルトの名無しさん (ワッチョイ fe84-9KYK)
垢版 |
2025/01/17(金) 22:12:41.15ID:vC4u56dQ0
dllとWinFormsのプロセス間通信したいのに名前付きパイプで簡単なサンプルをChatGPT、Gemini、Claudどれでやってもまったく通信できん!

こいつらにいろいろ聞いてそれぞれなんで間違ってるのか聞いてもぜんぜん通信できん!
昨日と今日ずっとこいつらに聞いてるんだよ

もういやになる
2025/01/18(土) 06:30:27.44ID:04pFIoXI0
ネットの資料見てやることもできずに生成AIに頼るような輩にできることではない
877デフォルトの名無しさん (ワッチョイ 7a53-TRKB)
垢版 |
2025/01/18(土) 06:49:02.31ID:iOeEhf+m0
ネットの資料は正誤があるからそれらを概ね見極めたのがAIだと思うが?
いずれも読解力がなければ駄目だ
2025/01/18(土) 08:16:40.63ID:XKxoLP5O0
AIも間違ったコードを普通に出力するぞ?
879デフォルトの名無しさん (ワッチョイ 7a53-TRKB)
垢版 |
2025/01/18(土) 09:06:43.05ID:iOeEhf+m0
>>878
たからぁ概ねと書いたじゃん?
880デフォルトの名無しさん (アウアウウー Sa91-HZB4)
垢版 |
2025/01/18(土) 11:59:58.70ID:7Jaib8zoa
AIに正誤を見極める力は無い
ネットの情報を適当にコピペして
もっともらしい会話してる人工無能レベル
平気で間違うし自信もって答えるから性質が悪い
2025/01/18(土) 12:05:09.07ID:J08wIrH9M
ここで聞けば答えは出るよ
AIより正しいかどうかは不明だけど
2025/01/18(土) 13:33:02.99ID:04pFIoXI0
>>879
逃げ道作ってみっともねぇなw
2025/01/18(土) 14:16:14.14ID:CTlmYVce0
そもそも、dllってプロセスじゃないし。
dllとプロセス間通信って段階で意味不明なんだが

意味不明な質問にそれっぽい答え返すAIは良いのか悪いのか
2025/01/18(土) 14:27:38.37ID:7E9dQxGN0
そこでDLL Injectionのソースを吐き出して来たら評価するw
885デフォルトの名無しさん (ワッチョイ a93d-9KYK)
垢版 |
2025/01/18(土) 14:31:39.51ID:cxzb7ykI0
875だけどClaudが共有メモリでのプロセス間通信でやったら?とアドバイスとコードを示してそれをGeminiに添削させてやっとできたよ

名前付きパイプはWinForms側でパイプサーバーがすぐに停止されてしまってよくわからず

イベント駆動でDLL内にイベントハンドラを生成してWinFormsで購読する方法はなかなか購読できずダメだった
2025/01/18(土) 14:48:48.23ID:J08wIrH9M
そもそもが何のプログラムなのかが不明だから

C++で書かれたアプリのDLLプラグインとC#のサーバ間のプロセス間通信とかそんな感じだろうか
2025/01/18(土) 16:04:15.92ID:cxzb7ykI0
C++アプリがDLL読み込めるようになっていてそのアプリからデータをWinFormsに流したかったってこと
単にアプリ間でデータを渡したいだけなのにいろいろ面倒なんだなって思った
2025/01/18(土) 18:03:24.71ID:J08wIrH9M
何かの病気なのか?
2025/01/18(土) 18:07:54.24ID:Ojz+5Dwq0
自分が病気だと気づかず他人が病気と思い込む奴っているよな
890デフォルトの名無しさん (ワッチョイ 9581-147x)
垢版 |
2025/01/18(土) 20:15:32.30ID:ZIGRjNp60
>>887
境界知能なのか?
2025/01/18(土) 20:16:29.06ID:SKgV7K5U0
皮肉言いたいのはわかるけど
もっとブーメランにならない表現にすればいいものを、といつも思う
2025/01/18(土) 20:22:30.41ID:J08wIrH9M
コミュニケーション能力に難があるのだけははっきりとわかる
2025/01/18(土) 20:27:10.22ID:nN020jd00
>>887
コードがないから何とも言えないけど、たぶん単純に実装が間違ってるだけだと思う
2025/01/18(土) 21:02:48.61ID:J08wIrH9M
自分の問題がうまくいかないからと言って特に詳細について語らず入門者コミュニティーに来て愚痴を言う
そして見た人間を不愉快にさせて楽しむ
自分に関わった人間を不幸にして喜ぶ

幼稚で良くない行動だよ
2025/01/18(土) 23:26:49.31ID:ZREBf0IK0
>>894
お前みたいな老害雅一番面倒なんだよ
ネチネチとうるせえんだわ
スレの1を読んでから書き込め
まあ読めたらの話だが
2025/01/19(日) 00:35:58.19ID:IALgBqxE0
プロセス間通信はプラットフォームを問わないソケットで設計した方がいいよ
パフォーマンスが重要でPCを跨がないなら匿名パイプが使い易い
それと共有メモリは原始的な同期処理が別途必要だからその辺もAIに聞いといた方がいいよ
2025/01/19(日) 02:37:56.24ID:9/Z57kyd0
私もソケットでやるかな
名前付きパイプってわざわざ新規プログラムで選ぶことないわ
2025/01/19(日) 06:32:36.54ID:ugzsMDEi0
>>887=889=895
自分の拙さを棚に上げて、IDコロコロして自演擁護はダサい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。