!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
■Visual Studio 2022 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part97
https://mevius.5ch.net/test/read.cgi/tech/1671585518/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C#, C♯, C#相談室 Part98
1デフォルトの名無しさん (ワッチョイ 7f6a-B4f6)
2024/06/29(土) 19:18:41.95ID:NohAfdfx0514デフォルトの名無しさん (アウアウウー Sacf-P6+q)
2025/09/24(水) 23:23:06.73ID:ot6MCezpa なるほど、
たしかにコンストラクタ内のローカル変数ではダメですね(aは)
お恥ずかしい…
たしかにコンストラクタ内のローカル変数ではダメですね(aは)
お恥ずかしい…
515デフォルトの名無しさん (アウアウウー Sacf-P6+q)
2025/09/24(水) 23:27:12.81ID:ot6MCezpa516デフォルトの名無しさん (ワッチョイ 0601-oUuT)
2025/09/24(水) 23:53:32.45ID:dvgofv4/0 コンストラクタが呼ばれる前に初期化できるものと
コンストラクタの中じゃないと初期化できないものがある
上の例は前者
前者に関してはどっちでもいいっちゃいいけど
フィールド宣言と一緒に初期化コードも書いたほうがわかりやすい
コンストラクタの中じゃないと初期化できないものがある
上の例は前者
前者に関してはどっちでもいいっちゃいいけど
フィールド宣言と一緒に初期化コードも書いたほうがわかりやすい
517デフォルトの名無しさん (アウアウウー Sacf-P6+q)
2025/09/25(木) 00:10:14.06ID:By2ks0eda ありがとうございます
やはりそんな感じなんですね
>>512 の 1はコンストラクタより前に初期化されることはテストで確認しました
ご指摘のとおり、コンストラクタ内でしか初期化できないものもあるようですね
ことばが正しくないと思いますが、デリゲートにイベントハンドラを追加するようなコードがそれに当たりました(僕の拙いテストでは)
後半の「フィールドの宣言と初期化が一緒に〜」は納得です
やはりそんな感じなんですね
>>512 の 1はコンストラクタより前に初期化されることはテストで確認しました
ご指摘のとおり、コンストラクタ内でしか初期化できないものもあるようですね
ことばが正しくないと思いますが、デリゲートにイベントハンドラを追加するようなコードがそれに当たりました(僕の拙いテストでは)
後半の「フィールドの宣言と初期化が一緒に〜」は納得です
518デフォルトの名無しさん (アウアウウー Sacf-P6+q)
2025/09/25(木) 00:13:08.63ID:By2ks0eda x デリゲートに
o オブザーバに
これでも誤っていそうですがw
o オブザーバに
これでも誤っていそうですがw
519デフォルトの名無しさん (ワッチョイ 55fe-CWF7)
2025/10/19(日) 11:52:32.67ID:DqrF4hvA0 もうその辺の質問は丸っとAIに投げた方が周辺知識も含めて適切に解説してくれるようになっちゃったな
520デフォルトの名無しさん (ワッチョイ aacd-1ZE+)
2025/10/19(日) 12:08:55.47ID:9mZT9cHT0 x丸っと
o丸ごと
気持ち悪い言葉使うな
o丸ごと
気持ち悪い言葉使うな
521デフォルトの名無しさん (ワッチョイ 55fe-CWF7)
2025/10/19(日) 12:34:02.25ID:DqrF4hvA0 いやそこにいちいち突っ込ま無いでいられない方がキモイだろw
生きづらそうな奴だなあ
生きづらそうな奴だなあ
522デフォルトの名無しさん (ワッチョイ c120-TSa5)
2025/10/19(日) 12:42:23.29ID:iiEJIRH40 5chに上品を求めてもな
場違いだろう
場違いだろう
523デフォルトの名無しさん (オッペケ Sr05-qSqW)
2025/10/20(月) 08:10:39.12ID:t3xMY5Mxr まるっとー!\(^o^)/
524デフォルトの名無しさん (ワッチョイ c12c-1ZE+)
2025/10/20(月) 08:38:31.92ID:gxggfKmO0 >>523
このバカもんが!
このバカもんが!
525デフォルトの名無しさん (ワッチョイ d664-KTOU)
2025/10/20(月) 08:42:09.79ID:XFStacaR0 キンモー
526デフォルトの名無しさん (ワッチョイ dd00-ceqN)
2025/10/22(水) 14:42:42.18ID:45/Fx/7g0 「.NET Framework 3.5」はOSから削除へ 〜Canary版「Windows 11」でFOD提供が終了
あぁ
あぁ
527デフォルトの名無しさん (ワッチョイ b178-9FkA)
2025/10/22(水) 21:41:57.00ID:s2BLWP9j0 手動インストールは今まで通り可能だから余り気にしなくてよくね?
528デフォルトの名無しさん (オッペケ Sr05-qSqW)
2025/10/24(金) 12:26:48.49ID:xZTAnEiJr お金になるんだから新しいの進めないとね
529デフォルトの名無しさん (ワッチョイ b1b9-OUeg)
2025/11/01(土) 19:13:50.74ID:SOMTSnDa0 会社のプログラムコードでオブジェクトを使い終わったらnullを代入する行が一か所もないのは何でや?
ローカル変数を全部varで宣言もするし、何で手抜きするんや?
全部.net frameworkにメモリ解放任せ、コンパイラに型任せするのは頭が悪いんか。
ローカル変数を全部varで宣言もするし、何で手抜きするんや?
全部.net frameworkにメモリ解放任せ、コンパイラに型任せするのは頭が悪いんか。
530デフォルトの名無しさん (ブーイモ MM33-HsT6)
2025/11/01(土) 20:17:36.23ID:HZKTr0RoM >>529
C/C++にもC#のvarに相当するもの(auto)が追加されてるよ
C/C++にもC#のvarに相当するもの(auto)が追加されてるよ
531デフォルトの名無しさん (ワッチョイ 06b2-TnCH)
2025/11/02(日) 07:55:07.64ID:703mRUOQ0532デフォルトの名無しさん (ワッチョイ 9d78-rUeU)
2025/11/02(日) 10:48:16.70ID:2DIXkYCL0 >>529
コピペ?
コピペ?
533デフォルトの名無しさん (ワッチョイ 2e10-wdyj)
2025/11/02(日) 12:09:39.84ID:bNhQtC9j0 とりあえず>>529の頭が悪いのはわかった
534デフォルトの名無しさん (ワッチョイ 31b9-qrHo)
2025/11/02(日) 12:10:17.92ID:B2JUXIT00 何でAIとかコピペやと思い込むんや。
何であえてvarで宣言するんかいな。
varだとコードが読みにくくなる、null代入してこれ以降はこのオブジェクトはもう使わないことが明白でコード読みしやすいという考えにならんのかいな。
あと、ファイル先頭のusingをあえて使わず、名前空間を省略せずに書くことで、名前の階層やスペルを正確に覚えて省略しなくてもコード記述可能に上達させようとか、コード見て、これはどの空間の型なのか明白にしておこうという考えもならんかいな。
IDEで入力して、オブジェクトの自動メンバ表示の機能に頼らずに、普通のテキストエディタですべて自力でコードを記述しようという考えにもならんかいな。
便利さに安易に甘えようとして、コードの読みにくさや利便性がなければ対応力不足な能力に甘んじると違うんかいな。
この程度のタイピングが面倒と思うようでは、タイピング能力も不足の疑い。
わずかな手間を省くことより今言ったことの損失のほうが上回ると思うけどな。
何であえてvarで宣言するんかいな。
varだとコードが読みにくくなる、null代入してこれ以降はこのオブジェクトはもう使わないことが明白でコード読みしやすいという考えにならんのかいな。
あと、ファイル先頭のusingをあえて使わず、名前空間を省略せずに書くことで、名前の階層やスペルを正確に覚えて省略しなくてもコード記述可能に上達させようとか、コード見て、これはどの空間の型なのか明白にしておこうという考えもならんかいな。
IDEで入力して、オブジェクトの自動メンバ表示の機能に頼らずに、普通のテキストエディタですべて自力でコードを記述しようという考えにもならんかいな。
便利さに安易に甘えようとして、コードの読みにくさや利便性がなければ対応力不足な能力に甘んじると違うんかいな。
この程度のタイピングが面倒と思うようでは、タイピング能力も不足の疑い。
わずかな手間を省くことより今言ったことの損失のほうが上回ると思うけどな。
535デフォルトの名無しさん (ワッチョイ 31b9-qrHo)
2025/11/02(日) 12:22:24.23ID:B2JUXIT00 何がどう頭が悪いのかも説明してくれ
536デフォルトの名無しさん (ワッチョイ 426a-xUmQ)
2025/11/02(日) 12:58:31.31ID:E0HJp5tr0 30年ぐらい頭の中が進化してないように見えるぞ
537デフォルトの名無しさん (ワッチョイ 06fa-TnCH)
2025/11/02(日) 13:04:39.39ID:703mRUOQ0538デフォルトの名無しさん (ワッチョイ 31b9-qrHo)
2025/11/02(日) 13:25:09.15ID:B2JUXIT00539デフォルトの名無しさん (ワッチョイ 65fa-iNTX)
2025/11/02(日) 14:09:59.48ID:hocl4sTR0 あの、転職してきて今の職場みんなvscodeで書いていてvisual studioの自分が少数派なんだけど、vs codeの方がC#書くうえでメリットとかあったりしますか
やっぱりvscode前提で話が動くことあって合わせるのに苦労することがたまにある。最近それに合わせようとvs codeの使い方を勉強してるけどとにかく色々めんどくさいというか……
そもそも画面が見にくくてしょうがない
やっぱりvscode前提で話が動くことあって合わせるのに苦労することがたまにある。最近それに合わせようとvs codeの使い方を勉強してるけどとにかく色々めんどくさいというか……
そもそも画面が見にくくてしょうがない
540デフォルトの名無しさん (ワッチョイ 6282-ZS/D)
2025/11/02(日) 14:18:31.07ID:HCi6xwDM0541デフォルトの名無しさん (ワッチョイ 9901-ap5z)
2025/11/02(日) 14:20:42.73ID:BJEeTNbw0 github copilotはvscodeのほうが進んでる
自分はvscodeでAIに書かせてvsでデバッグしてる
自分はvscodeでAIに書かせてvsでデバッグしてる
542デフォルトの名無しさん (ワッチョイ 5901-H/uN)
2025/11/02(日) 14:47:38.54ID:J3Cym/fe0543デフォルトの名無しさん (ワッチョイ 426a-xUmQ)
2025/11/02(日) 14:54:04.33ID:E0HJp5tr0 会社がケチでVS購入する予算出してくれないのでは疑惑
544デフォルトの名無しさん (ワッチョイ 6e9f-Ecw2)
2025/11/02(日) 16:21:59.09ID:e02xUH3g0 vscodeってインストールして即C#で書きましょってできないのでは?
Visual C# 2010 Expressの方がまだマシだと思う
Visual C# 2010 Expressの方がまだマシだと思う
545デフォルトの名無しさん (ワッチョイ dd5f-3Voz)
2025/11/02(日) 16:32:25.28ID:1fKkZElw0 VSCodeはemacs並みに便利だぞww
546デフォルトの名無しさん (ワッチョイ dd5f-3Voz)
2025/11/02(日) 16:35:26.43ID:1fKkZElw0 武笠からVisualStudio使ってGUI慣れしてるとVSCodeのコンソール操作やコマンドパレット操作が面倒で仕方ない
547デフォルトの名無しさん (ワッチョイ b20e-QMGN)
2025/11/02(日) 16:57:05.29ID:MCw/zdpy0 WebだとVSCodeのほうが圧倒的に便利だね
どうせ他の言語も使うから
どうせ他の言語も使うから
548デフォルトの名無しさん (ワッチョイ 2eb9-D3V/)
2025/11/02(日) 19:32:38.83ID:kqx/RH8b0549デフォルトの名無しさん (ササクッテロラ Spf1-3Voz)
2025/11/04(火) 09:22:41.26ID:rY+MKscwp >>548
あれは不便だと皮肉で言ってるんじゃねえの?
あれは不便だと皮肉で言ってるんじゃねえの?
550デフォルトの名無しさん (ワッチョイ 0920-gYZs)
2025/11/05(水) 01:13:05.65ID:lfdATCwE0551デフォルトの名無しさん (ワッチョイ 624b-24ye)
2025/11/05(水) 06:35:23.86ID:5NBPAv2I0 別に必須ではない
552デフォルトの名無しさん (ワッチョイ 1fe4-5JBY)
2025/11/10(月) 12:00:27.64ID:23EqRWch0 git管理下のプロジェクトでVSからファイル名の変更をリファクタリング使ってやるとハマることあるよ
同期する時はよくよく気をつけて、他のメンバーから袋叩きにされんように
同期する時はよくよく気をつけて、他のメンバーから袋叩きにされんように
553デフォルトの名無しさん (ベーイモ MM8f-KAfG)
2025/11/10(月) 12:21:40.74ID:UhuUvnV0M メクラコミットするような奴は何使おうが事故るよ
554デフォルトの名無しさん (ワッチョイ 5f41-h2Fd)
2025/11/28(金) 07:28:31.03ID:CqZDoZJA0 ほんまやで
555デフォルトの名無しさん (ワッチョイ c657-UKLu)
2025/12/19(金) 12:15:49.17ID:gWQHKfoD0556デフォルトの名無しさん (ワッチョイ a3b9-O4u+)
2025/12/21(日) 20:53:27.69ID:CWI2bRJe0 C#はCの系列言語に偽装したVBだな。
最も基本的な構文がC言語と共通なだけで、Cの関数が使えるわけでもなく互換性がない。
名前にだまされて系列言語と勘違いする営業が多いんかいな。
Javaと同じくらいの別言語やのに。
中身の実態はVB.NETと何が違うんや。
まだC#を知らずに始めようとするC++のプログラマにも、あれはVBだと教えたほうがいいな。
最も基本的な構文がC言語と共通なだけで、Cの関数が使えるわけでもなく互換性がない。
名前にだまされて系列言語と勘違いする営業が多いんかいな。
Javaと同じくらいの別言語やのに。
中身の実態はVB.NETと何が違うんや。
まだC#を知らずに始めようとするC++のプログラマにも、あれはVBだと教えたほうがいいな。
557デフォルトの名無しさん (ワッチョイ 33d1-EbNS)
2025/12/21(日) 21:45:01.33ID:dTS5CRaY0 それは完全に逆で、.NETはC#を第一言語として作られたプラットフォームであり、
VB.NETはVB風の構文を使用して.NETプラットフォーム上で動くアプリケーションを開発できるC#の代替言語の一つ。
だったんだけど、今は少し状況が違っていて、VB.NETは既に開発が終了しており最新の.NETは事実上C#専用になっている。
VB.NETはVB風の構文を使用して.NETプラットフォーム上で動くアプリケーションを開発できるC#の代替言語の一つ。
だったんだけど、今は少し状況が違っていて、VB.NETは既に開発が終了しており最新の.NETは事実上C#専用になっている。
558デフォルトの名無しさん (ワッチョイ d3b9-rKPf)
2025/12/22(月) 00:16:55.22ID:nbS93j9b0 Cに構文が似てるMS版Java
559デフォルトの名無しさん (ワッチョイ 4318-VPa1)
2025/12/22(月) 00:35:44.56ID:Gt1/VTKV0 C♯があるからVSが生き残ってる気がしなくもない
560デフォルトの名無しさん (ワッチョイ 33da-LbGO)
2025/12/22(月) 00:45:35.83ID:Rjn0kM720 JavaよりもDelphi
561デフォルトの名無しさん (ワッチョイ 3368-o9qj)
2025/12/22(月) 07:24:28.55ID:F5F/0SAV0 Delphiってまだあるんか
562デフォルトの名無しさん (ブーイモ MM7f-+CLN)
2025/12/22(月) 10:34:57.18ID:14GAd2HmM BASICが一番読みやすいんだけどな
それかシーケンスラダー
それかシーケンスラダー
563デフォルトの名無しさん (ワッチョイ 0fea-F6mm)
2025/12/27(土) 22:13:30.28ID:qGzUENa90 C#が本流とゆうかスタンダードな言語になると思ってたけど、どうやらちがいそうだ
564デフォルトの名無しさん (ワッチョイ df53-rc/k)
2025/12/30(火) 09:07:36.95ID:uyk9uAo60 IDisposeパターンを実装しようとすると、下記のコードが補完されるのですが、
マネージドオブジェクトとアンマネージドオブジェクトの判別方法が分かりません。
判断基準を教えて頂けないでしょうか?
--------------------------------
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
// TODO: マネージド状態を破棄します (マネージド オブジェクト)
}
// TODO: アンマネージド リソース (アンマネージド オブジェクト) を解放し、ファイナライザーをオーバーライドします
// TODO: 大きなフィールドを null に設定します
disposedValue = true;
}
}
--------------------------------
マネージドオブジェクトとアンマネージドオブジェクトの判別方法が分かりません。
判断基準を教えて頂けないでしょうか?
--------------------------------
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
// TODO: マネージド状態を破棄します (マネージド オブジェクト)
}
// TODO: アンマネージド リソース (アンマネージド オブジェクト) を解放し、ファイナライザーをオーバーライドします
// TODO: 大きなフィールドを null に設定します
disposedValue = true;
}
}
--------------------------------
565デフォルトの名無しさん (ワッチョイ dfd4-wwNJ)
2025/12/30(火) 09:20:47.48ID:avV+Pfo+0 >>564
代わりにAI様に聞いてやったぞ
ご質問ありがとうございます。
結論から申し上げますと、「自分で Dispose / Close すべき責務があるかどうか」だけ見れば十分です。
• マネージドオブジェクト
IDisposable を実装していて、Dispose() を呼ぶ責任があなたのクラスにあるもの
→ disposing == true のときに Dispose() する
• アンマネージドリソース
IntPtr、OSハンドル、ネイティブメモリなど GCが管理できない実体
→ disposing に関係なく必ず解放する
逆に言えば
• string や List<T> → 何もしない
• 他人から渡された Stream → 勝手に Dispose しない
• new して保持してる Stream → マネージド側で Dispose
「型」ではなく「所有権」が判断基準です。
これが分からない設計なら、設計が悪いだけです。
代わりにAI様に聞いてやったぞ
ご質問ありがとうございます。
結論から申し上げますと、「自分で Dispose / Close すべき責務があるかどうか」だけ見れば十分です。
• マネージドオブジェクト
IDisposable を実装していて、Dispose() を呼ぶ責任があなたのクラスにあるもの
→ disposing == true のときに Dispose() する
• アンマネージドリソース
IntPtr、OSハンドル、ネイティブメモリなど GCが管理できない実体
→ disposing に関係なく必ず解放する
逆に言えば
• string や List<T> → 何もしない
• 他人から渡された Stream → 勝手に Dispose しない
• new して保持してる Stream → マネージド側で Dispose
「型」ではなく「所有権」が判断基準です。
これが分からない設計なら、設計が悪いだけです。
566デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2025/12/31(水) 03:06:04.55ID:mMVOEPhCa 非同期処理(async、await)についてわかりやすいサイトはないでしょうか
567デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2025/12/31(水) 09:59:09.47ID:6fWUwDbja 非同期メソッドの書き方は説明があるのですけど
メインスレッドから非同期メソッド(async付き)を呼び出した時点で、非同期メソッドがサブスレッドとして生成されるイメージぜしょうか
非同期メソッドの呼び出し方の説明がなかなかく、スレッドの分岐や、サブスレッドを待ち、が終了するまでのシーケンスがイメージしづらく(わかりにくくてごめんなさい
メインスレッドから非同期メソッド(async付き)を呼び出した時点で、非同期メソッドがサブスレッドとして生成されるイメージぜしょうか
非同期メソッドの呼び出し方の説明がなかなかく、スレッドの分岐や、サブスレッドを待ち、が終了するまでのシーケンスがイメージしづらく(わかりにくくてごめんなさい
568デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2025/12/31(水) 10:06:32.76ID:6fWUwDbja サブスレッドがawaitに達したら、スレッドが分岐するのかな…
569デフォルトの名無しさん (ワッチョイ 5a95-wwNJ)
2025/12/31(水) 10:23:29.12ID:b1FkpOaj0 Web上で、まともに生きてて網羅性のあるC#の学習コンテンツなんて未確認飛行くらいだろ
未確認飛行は上から目線でとっつきにくいから、難しければAIに教えてもらえばいい
未確認飛行は上から目線でとっつきにくいから、難しければAIに教えてもらえばいい
570デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2025/12/31(水) 11:05:44.44ID:Chkuw1zRa レスをありがとうございました
以前はずいぶん参考にしていたのですが、そういえばこの頃は未確認飛行が検索上位になく、長らく当サイトは見ていない気がします
なんだか以前より検索が下手になったというか、解決に辿りつきにくくなったと感じることが多いです
以前はずいぶん参考にしていたのですが、そういえばこの頃は未確認飛行が検索上位になく、長らく当サイトは見ていない気がします
なんだか以前より検索が下手になったというか、解決に辿りつきにくくなったと感じることが多いです
571デフォルトの名無しさん (ワッチョイ 9e5e-zeTa)
2025/12/31(水) 11:12:04.70ID:jM02BH+G0 私もasync、awaitの処理の流れがよく分からないポンコツです
そこに戻ってこられてもメインスレッドで既に他のことしてたら困るのでは?と考えてしまいます
そこに戻ってこられてもメインスレッドで既に他のことしてたら困るのでは?と考えてしまいます
572デフォルトの名無しさん (ワッチョイ de10-VnRv)
2025/12/31(水) 11:42:35.17ID:SPn/k9VE0 検索も何もサイトをブックマークしとけよ……
573デフォルトの名無しさん (ワッチョイ aa9e-KTBo)
2025/12/31(水) 11:44:53.39ID:NjYT+yf00 既にほかの事してたら困るとか、そんなのはasync/await関係ねぇよ
マルチスレッドするなら全部そういう事考えてやれ
マルチスレッドするなら全部そういう事考えてやれ
574デフォルトの名無しさん (ワッチョイ 9e20-zeTa)
2025/12/31(水) 12:40:22.24ID:jM02BH+G0 でしょ?
だったら自分でスレッド明示的に立てて自分で管理する方が楽に思えます
だったら自分でスレッド明示的に立てて自分で管理する方が楽に思えます
575デフォルトの名無しさん (ワッチョイ 0705-GxGE)
2025/12/31(水) 12:57:07.43ID:HTj1MQ540 >>567
非同期メソッドを実行した時点で、非同期メソッドを別スレッドで実行開始
awaitするとメインスレッドは一旦解放される
非同期メソッドが完了したら、メインスレッドでawaitより後を実行再開
別スレッドはスレッドプールという仕組みであらかじめいくつか用意しておいたものを使い回してる
非同期メソッドを実行した時点で、非同期メソッドを別スレッドで実行開始
awaitするとメインスレッドは一旦解放される
非同期メソッドが完了したら、メインスレッドでawaitより後を実行再開
別スレッドはスレッドプールという仕組みであらかじめいくつか用意しておいたものを使い回してる
576デフォルトの名無しさん (ワッチョイ aa9e-KTBo)
2025/12/31(水) 13:02:51.83ID:NjYT+yf00577デフォルトの名無しさん (ワッチョイ aa9e-KTBo)
2025/12/31(水) 13:03:29.07ID:NjYT+yf00 アンカー間違えたw
>>574宛てね
>>574宛てね
578デフォルトの名無しさん (ワッチョイ 9b08-0eS1)
2025/12/31(水) 19:03:29.50ID:KjJdbekh0579デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 22:45:40.02ID:RQNKN6A0M async/awaitの説明は本当に厄介
相手のレベルによっては本当のことを教えると絶対混乱する
知識マウント取りに来てるのかと誤解されたり
じゃあ初心者が使えないかと言えば使える
理解がないまま使うと失敗するだけ
自分でコード書くときは失敗しないけど説明の段階で間違えて書いたりする
以前もここかどこかで間違えて書いて恥をかいた
相手のレベルによっては本当のことを教えると絶対混乱する
知識マウント取りに来てるのかと誤解されたり
じゃあ初心者が使えないかと言えば使える
理解がないまま使うと失敗するだけ
自分でコード書くときは失敗しないけど説明の段階で間違えて書いたりする
以前もここかどこかで間違えて書いて恥をかいた
580デフォルトの名無しさん (ワッチョイ 9e63-eM5T)
2025/12/31(水) 22:47:34.72ID:5LHQcumB0 >>575
レスをありがとうございます
メインスレッドは一旦解放される、とは、たとえばメインスレッドがUIなら、サブスレッドの終了するまでの間、ユーザがUIを操作可能なことをいうのでしょうか
サブスレッドが終わるや否や、メインスレッドの制御はユーザの操作を中断してawaitの次行へ移されるのでしょうか(わかりにくいと思いますが…
レスをありがとうございます
メインスレッドは一旦解放される、とは、たとえばメインスレッドがUIなら、サブスレッドの終了するまでの間、ユーザがUIを操作可能なことをいうのでしょうか
サブスレッドが終わるや否や、メインスレッドの制御はユーザの操作を中断してawaitの次行へ移されるのでしょうか(わかりにくいと思いますが…
581デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 22:47:50.13ID:RQNKN6A0M >>575
これの一個目も実際は違ってるし
これの一個目も実際は違ってるし
582デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 22:59:57.26ID:RQNKN6A0M GUIにはメッセージを処理するループがある
メインスレッドがそれを処理してる
そこに処理の続きを登録しておく
サブスレッドが終わるとtask終わったメッセージが来るので登録した処理の続きをメインスレッドがやる
メインスレッドがそれを処理してる
そこに処理の続きを登録しておく
サブスレッドが終わるとtask終わったメッセージが来るので登録した処理の続きをメインスレッドがやる
583デフォルトの名無しさん (ワッチョイ 9e63-eM5T)
2025/12/31(水) 23:09:43.06ID:5LHQcumB0584デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2025/12/31(水) 23:11:54.34ID:YvKJg5AHa そしてメインスレッドはawaitの次行から再開される
585デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 23:18:12.30ID:RQNKN6A0M でもよく考えたらキャンセルしたらおかしくなりそう
雰囲気的におおざっぱに書いてるので詳しくは間違ってるかもしれない
まずAIに聞いた方がいいよ
雰囲気的におおざっぱに書いてるので詳しくは間違ってるかもしれない
まずAIに聞いた方がいいよ
586デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 23:26:52.82ID:RQNKN6A0M 言語的には仕様が決まってる
実装は複雑怪奇でおそらくだけど公式の文章はないので言語的な仕様だけを見れば十分なのかもしれない
でもスレッドの挙動が理解しにくいので誤解が出てくる
んで誰かが詳細ではないけど中間的な説明をどこかに書いてくれればよいのにと思うが誰もその面倒なことをやらない
図示だけでも理解度がかわるんじゃないかと楽観的に考えるけどそれがまた罠になる可能性が・・・
実装は複雑怪奇でおそらくだけど公式の文章はないので言語的な仕様だけを見れば十分なのかもしれない
でもスレッドの挙動が理解しにくいので誤解が出てくる
んで誰かが詳細ではないけど中間的な説明をどこかに書いてくれればよいのにと思うが誰もその面倒なことをやらない
図示だけでも理解度がかわるんじゃないかと楽観的に考えるけどそれがまた罠になる可能性が・・・
587デフォルトの名無しさん (ワッチョイ 9e63-eM5T)
2025/12/31(水) 23:26:54.96ID:5LHQcumB0 僕はWindowsのC++でマルチスレッドを書いたことがありますが、いずれもjoin()をせず
ただしメインスレッドがサブスレッドより先に終わらないように状態を監視していて
なのでUIのメインスレッドが分岐してjoin()するイメージがしづらく…
ただしメインスレッドがサブスレッドより先に終わらないように状態を監視していて
なのでUIのメインスレッドが分岐してjoin()するイメージがしづらく…
588デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 23:31:40.33ID:RQNKN6A0M joinではなくてawaitが来るとreturnしてる
awaitと言いつつ待ってはいない…
こういう説明が一番沼に近づくので本来はしたくないししてはいけないと理解してる
今よくないことを書きました
awaitと言いつつ待ってはいない…
こういう説明が一番沼に近づくので本来はしたくないししてはいけないと理解してる
今よくないことを書きました
589デフォルトの名無しさん (オイコラミネオ MM1f-VnRv)
2025/12/31(水) 23:32:42.46ID:RQNKN6A0M 泥沼のこと
590デフォルトの名無しさん (ワッチョイ 9e29-eM5T)
2025/12/31(水) 23:45:45.50ID:5LHQcumB0 よくわかっていないのに、思い切ってawaitと join()を同一視して書いてしまいましたが、違っていたのか…
たいへん失礼いたしました
たいへん失礼いたしました
591デフォルトの名無しさん (ワッチョイ aaa5-KTBo)
2026/01/01(木) 11:32:47.68ID:peR++RHq0 >>578
んなこと言うのはそれしか分からない人間だからだよ、キミのようにね
んなこと言うのはそれしか分からない人間だからだよ、キミのようにね
592デフォルトの名無しさん (アウアウウー Sa2f-AftE)
2026/01/01(木) 15:09:55.24ID:7jtSbNaJa joinはサブスレッドが終わるの待ってからが正解
593デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2026/01/02(金) 00:33:57.11ID:TvIyeNBJa >>567です
テストを書こうと思ったのですが…
asyncなメソッドを呼び出すメソッドもasyncでなければならないらしく(もっともですが)、async Main としたいのですが、どうしてもMainのシグニチャが違うとか、実行ファイルにエントリポイントがないなど、どうしてもコンパイルが通りませんでした
# コンパイラは Mono C# 6.8.0.105
職場PCにはC#が入っていないので、本件(async、awaitを理解したい)はいったん諦めます
# デフォで入ってるcsc.exeで行けるか?
そもそもはRustを学んでいて、async、awaitは他の言語のそれと同じとのことで、Rustはごちゃごちゃしていて見通しが悪いので、理解のためにC#を参考にとサイトを読み始めたのが発端です
しかしC++では書けているのに、RustもC#も構文糖で包まれると途端にわからなくなってしまいます(Rustはこの抽象度の高さがキツい)
pythonにも非同期処理があるようなので、今度はそちらを当たってみます
丁寧なレスをくださった方々、たいへんありがとうございました
テストを書こうと思ったのですが…
asyncなメソッドを呼び出すメソッドもasyncでなければならないらしく(もっともですが)、async Main としたいのですが、どうしてもMainのシグニチャが違うとか、実行ファイルにエントリポイントがないなど、どうしてもコンパイルが通りませんでした
# コンパイラは Mono C# 6.8.0.105
職場PCにはC#が入っていないので、本件(async、awaitを理解したい)はいったん諦めます
# デフォで入ってるcsc.exeで行けるか?
そもそもはRustを学んでいて、async、awaitは他の言語のそれと同じとのことで、Rustはごちゃごちゃしていて見通しが悪いので、理解のためにC#を参考にとサイトを読み始めたのが発端です
しかしC++では書けているのに、RustもC#も構文糖で包まれると途端にわからなくなってしまいます(Rustはこの抽象度の高さがキツい)
pythonにも非同期処理があるようなので、今度はそちらを当たってみます
丁寧なレスをくださった方々、たいへんありがとうございました
594デフォルトの名無しさん (ワッチョイ 6f5f-eM5T)
2026/01/02(金) 11:15:14.06ID:Yv+WFCVM0 同期待ちの書き方なんて幾つもあるから調べてみ
595デフォルトの名無しさん (JP 0H96-rrDP)
2026/01/02(金) 12:26:01.84ID:vuX5oQeRH596デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2026/01/02(金) 18:19:26.69ID:D1h+gSKKa597デフォルトの名無しさん (ワッチョイ dfb4-9W+M)
2026/01/02(金) 18:28:06.23ID:GKEwbCVd0 同期を待ってるのか
別スレッドをやりたいのか
それによってまったく変わるで
別スレッドをやりたいのか
それによってまったく変わるで
598デフォルトの名無しさん (JP 0H96-W/LK)
2026/01/02(金) 18:41:40.36ID:TryFU79kH 何か具体的なことを実現したいんじゃなくてasync/awaitを使った非同期プログラミングの仕組みを理解したいって話でしょ
599デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2026/01/02(金) 20:58:33.97ID:Vupr6i/3a600デフォルトの名無しさん (ワッチョイ aa8b-wwNJ)
2026/01/02(金) 21:19:18.66ID:sdHE3VGC0 Monoってとっくの昔に開発終了して本家.NET (クロスプラットフォームになった5以降)に合流してるんだけど、なんで今更?
601デフォルトの名無しさん (ワッチョイ 468b-eM5T)
2026/01/02(金) 21:22:47.44ID:2MPYh59f0 MSC#が手元にないからです
602デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2026/01/02(金) 21:24:12.60ID:Vupr6i/3a あと、Windowsがないからです
603デフォルトの名無しさん (JP 0H27-wwNJ)
2026/01/02(金) 21:27:29.78ID:5zfuE+uMH で.NETがクロスプラットフォームになったことも知らないままMonoに手を出しちゃったの?
言っちゃ悪いがさすがにプログラミング向いてないんじゃないか
言っちゃ悪いがさすがにプログラミング向いてないんじゃないか
604デフォルトの名無しさん (アウアウウー Sa2f-eM5T)
2026/01/02(金) 21:29:15.64ID:Vupr6i/3a それは知らなかったです
ありがとうございました
ありがとうございました
605デフォルトの名無しさん (ワッチョイ 4396-brdB)
2026/01/02(金) 22:07:58.54ID:umQ0E3dm0 いえいえ
606デフォルトの名無しさん (ワッチョイ de10-VnRv)
2026/01/03(土) 06:21:02.33ID:gWg7JwAN0 プログラミング向いてないっつーより、調査能力が低い
607デフォルトの名無しさん (ワッチョイ de10-VnRv)
2026/01/03(土) 06:21:23.92ID:gWg7JwAN0 情報収集力もか
608デフォルトの名無しさん (ワッチョイ 87e0-Y0Sy)
2026/01/03(土) 10:14:01.32ID:61VQk5HG0 昔はそんなもの無くてもゲームが作れた
609デフォルトの名無しさん (ワッチョイ 6f5f-eM5T)
2026/01/03(土) 10:16:56.88ID:o4Y92Jto0 昔ってか、業務用のゲーム基板にはOSも無ければライブラリも無かったよ
文字表示するにも全部アセンブラでフルスクラッチだったなぁ
文字表示するにも全部アセンブラでフルスクラッチだったなぁ
610デフォルトの名無しさん (ワッチョイ aac1-KTBo)
2026/01/03(土) 19:02:40.56ID:2xpc/m7r0 C#スレで何言ってんだこのアホども
611デフォルトの名無しさん (ワッチョイ b301-eM5T)
2026/01/03(土) 20:44:02.01ID:2LeLIyoP0 昔話する爺さんしかもういないということよ
612デフォルトの名無しさん (ワッチョイ 0f28-KATc)
2026/01/04(日) 04:11:49.05ID:NkXdEYNO0 >>611
よう爺さん久しぶり
よう爺さん久しぶり
613デフォルトの名無しさん (ワッチョイ cbb9-ocFQ)
2026/01/05(月) 23:17:51.00ID:7vF6gxGe0 C#は.NETの先頭に立つ言語なのか。
情報量はC#が一番多い。
新しい言語仕様を今も追加を続けいる。
これに対して、VB.NETの言語仕様の更新はもうしてない。
だからC#を選ぶんかいな。
でもな、C#の.NET情報を活用してVB.NETで普通に実装もできる。
そして、最新の言語仕様が常に必要というわけでもなかろうに。
それよりも、もっと基本的で常につきまとう利便性の違いが気にならんのかいな。
VB.NETにはstringにLike演算子使える。
continue文やbreak文使う場面で多重ループがあるとき、forやdoやwhileで異なる種類で多重ループから抜け出るときVB.NETは役に立つ。
switch文ではcaseラベルの末尾に必須なbreakがあって、ループ抜けにこれを使えなくもしている。
VB6やVBAの関数を使うことも可能なので、中にはこれが役に立つときがある可能性もある。
Excelをプログラム制御するための、COM参照するという言葉が正しいんかな、そのDLLを作ったことがあるけど、C#ならInvokeメソッドが必要でVB.NETよりコーディングが面倒だったりもした。
そして、C#がコードが簡潔という意見は、ブロックの先頭と末尾が { と } の1文字だけだからなんだろう。
これは、ソースコードだけの話で、バイナリコードが小さくなるわけでないな。
DOSコマンドやPowerShellコマンドとか、エディタのGREPとか自作のプログラムとか、Excelワークシート上の作業とかで、プログラムコードを切り出したりするのは、C#ではそれが難しいという問題もある。
{ と } なので、正確に目的のブロックの先頭と末尾を特定しにくい。これに対して、VB.NETはやりやすい。
コード入力のときに { や } の1文字打つだけで済む良さよりも、この問題点でプログラミングの妨げのほうが上回る。
それなのに、本当にC#のほうがいいのかは疑問だ。
それでもC#がいいのなら、その良さを教えてくれないか。
情報量はC#が一番多い。
新しい言語仕様を今も追加を続けいる。
これに対して、VB.NETの言語仕様の更新はもうしてない。
だからC#を選ぶんかいな。
でもな、C#の.NET情報を活用してVB.NETで普通に実装もできる。
そして、最新の言語仕様が常に必要というわけでもなかろうに。
それよりも、もっと基本的で常につきまとう利便性の違いが気にならんのかいな。
VB.NETにはstringにLike演算子使える。
continue文やbreak文使う場面で多重ループがあるとき、forやdoやwhileで異なる種類で多重ループから抜け出るときVB.NETは役に立つ。
switch文ではcaseラベルの末尾に必須なbreakがあって、ループ抜けにこれを使えなくもしている。
VB6やVBAの関数を使うことも可能なので、中にはこれが役に立つときがある可能性もある。
Excelをプログラム制御するための、COM参照するという言葉が正しいんかな、そのDLLを作ったことがあるけど、C#ならInvokeメソッドが必要でVB.NETよりコーディングが面倒だったりもした。
そして、C#がコードが簡潔という意見は、ブロックの先頭と末尾が { と } の1文字だけだからなんだろう。
これは、ソースコードだけの話で、バイナリコードが小さくなるわけでないな。
DOSコマンドやPowerShellコマンドとか、エディタのGREPとか自作のプログラムとか、Excelワークシート上の作業とかで、プログラムコードを切り出したりするのは、C#ではそれが難しいという問題もある。
{ と } なので、正確に目的のブロックの先頭と末尾を特定しにくい。これに対して、VB.NETはやりやすい。
コード入力のときに { や } の1文字打つだけで済む良さよりも、この問題点でプログラミングの妨げのほうが上回る。
それなのに、本当にC#のほうがいいのかは疑問だ。
それでもC#がいいのなら、その良さを教えてくれないか。
レスを投稿する
ニュース
- 副首都構想 広島は人口要件満たさず 横田知事が国に意見表明へ [首都圏の虎★]
- なぜコンビニは「外国人店員」だらけになったのか? 大手3社で8万人超…元セブン社員が明かす「日本人が集まらなくなった」現場の実情★4 [♪♪♪★]
- 【競馬】凱旋門賞 ダリズが連覇! 武豊が騎乗した日本馬・メイショウタバルは14着 アドマイヤテラは11着 [冬月記者★]
- ヒコロヒー 新幹線でカレーや肉まん等ニオイの強いもの食べる問題に「食べていいというルールになっている以上、ある程度仕方ないよね」 [muffin★]
- 大谷翔平が吐露…「自分のなかでもあまりよくない年の一つ」「WBCがあるとすごく長く感じる」★2 [王子★]
- 【平均給与】男性は400万円台、女性は200万円台が最多。平均487万円より下に人が集まり、年収500万円以下が約6割 [首都圏の虎★]
- 子どもの頃の話。
- 【悲報】おじさん、ビール売り子から買ったビールをそのまま捨てまくるwwwwwwwwwwwwwwwwwww [398059782]
- 【悲報】新沖縄県知事の古謝玄太さん、米兵による県民殺害事件を受けて大いに笑いながら遺憾の意を示す [904151406]
- 【動画】宮大工の朝礼、限界突破💥🔨 [632966346]
- 明日の無職を頑張る人たちのお🏡
- ネトウヨが米兵の強姦殺人にダンマリな理由、何?