!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:NohAfdfx0558デフォルトの名無しさん (ワッチョイ 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#がいいのなら、その良さを教えてくれないか。
614デフォルトの名無しさん (ワッチョイ dbb2-CRSm)
2026/01/05(月) 23:44:45.67ID:CBQpIcrF0 >>613
いやVB.NETでのASP.NET Coreを用いた開発はサポートされてないから、.NET5以降ではVB.NETでWeb開発はできなくなってるんだよ
.NETの基本的なランタイムエンジンのレベルでも最近はSpanなど言語の対応を必要とする機能が増えてきており、VB.NETでの開発継続は困難になりつつある
もう言語の好みとか最新の言語機能が必要かどうかとかの次元じゃなく、事実としてVB.NETは終わった
5以降の.NETに付き合うならC#を使うしかないし、.NET Frameworkを使い続けるならVB.NETで何の問題もない
いやVB.NETでのASP.NET Coreを用いた開発はサポートされてないから、.NET5以降ではVB.NETでWeb開発はできなくなってるんだよ
.NETの基本的なランタイムエンジンのレベルでも最近はSpanなど言語の対応を必要とする機能が増えてきており、VB.NETでの開発継続は困難になりつつある
もう言語の好みとか最新の言語機能が必要かどうかとかの次元じゃなく、事実としてVB.NETは終わった
5以降の.NETに付き合うならC#を使うしかないし、.NET Frameworkを使い続けるならVB.NETで何の問題もない
615デフォルトの名無しさん (ワッチョイ 9f79-8Tqj)
2026/01/06(火) 00:03:57.74ID:110almdn0 >Like演算子使える。
ぶっちゃけVBのメリットこれだけ
ぶっちゃけVBのメリットこれだけ
616デフォルトの名無しさん (ワッチョイ eb01-CdMd)
2026/01/06(火) 00:10:42.76ID:gut1YMv90 どっちも死にゆく言語だ、大差ないよ
617デフォルトの名無しさん (ワッチョイ aba1-RCYd)
2026/01/06(火) 00:38:25.74ID:vVRzjh7Z0 なんらかの新規開発で初手からVBつかいます!とか言ってる会社があったら、その会社は相当おかしいと思われるしな
C♯ならまだそこまで非常識ではない
C♯ならまだそこまで非常識ではない
618デフォルトの名無しさん (ワッチョイ cbb9-ocFQ)
2026/01/06(火) 01:02:45.02ID:pDl93xu/0 >>615
2つのstring に使う比較演算子に < と > はVB.NETは使えるが、C#はエラーになる欠点もある。
2つのstring に使う比較演算子に < と > はVB.NETは使えるが、C#はエラーになる欠点もある。
619sage (ワッチョイ cbb9-ocFQ)
2026/01/06(火) 01:05:59.08ID:pDl93xu/0 5以降は.NETで、それより前は.NET Frameworkで、これは別物ってこと?
620sage (ワッチョイ cbb9-ocFQ)
2026/01/06(火) 01:37:04.42ID:pDl93xu/0 VB使うのは大異常、C#使うのは小異常なのか。
そんな評価する人物のほうが異常かもしれないし、それを気にして過度に恐れる小心さと、見栄を張る虚栄心がいいとも思えん。
そんな評価する人物のほうが異常かもしれないし、それを気にして過度に恐れる小心さと、見栄を張る虚栄心がいいとも思えん。
621デフォルトの名無しさん (ワッチョイ 0fc6-KATc)
2026/01/06(火) 02:00:32.83ID:6viYRBK+0 仕事でExcelとVisioのVBAは使いまくりだよ
C#は仕事の合間の趣味プログラミングで
C#は仕事の合間の趣味プログラミングで
622デフォルトの名無しさん (ワッチョイ 0f10-tCjB)
2026/01/06(火) 06:17:42.50ID:qoVIuRBu0 >>619
別物だよ
別物だよ
623デフォルトの名無しさん (ワッチョイ 7bd3-+5QP)
2026/01/06(火) 07:35:04.85ID:RHQhD4Rm0624デフォルトの名無しさん (ワッチョイ 0fb9-+5QP)
2026/01/06(火) 07:38:06.93ID:7+phdRUq0 訂正
20年は長すぎた
15年だな
20年は長すぎた
15年だな
625デフォルトの名無しさん (ワッチョイ 0f64-x1du)
2026/01/06(火) 09:00:29.30ID:jj/ZEaLa0626デフォルトの名無しさん (ワッチョイ 0f64-x1du)
2026/01/06(火) 09:00:54.01ID:jj/ZEaLa0 COMインターフェースね
627デフォルトの名無しさん (ワッチョイ 5fea-rXpA)
2026/01/06(火) 09:35:40.51ID:3AGPxZyI0 全部コボルでいいのかね?
全世界のプログラム中、未だにコボルが8割以上
全世界のプログラム中、未だにコボルが8割以上
628デフォルトの名無しさん (ワッチョイ 8d15-Il+v)
2026/01/11(日) 08:08:42.16ID:7HP9qz2n0 そんな事言い始めたら、うちの製品もCが大半で一部アセンブラだわ。
新規は大抵C++だけど。
新規は大抵C++だけど。
629デフォルトの名無しさん (ワッチョイ 8dee-Il+v)
2026/01/13(火) 13:39:51.59ID:yknlWrH70 来年1月で .NET Framework 1.0 正式リリース25周年か。
630デフォルトの名無しさん (ワッチョイ 8de7-N4J2)
2026/01/13(火) 14:47:56.10ID:H9Y7aSOh0 25年たっても1.0なの?
631デフォルトの名無しさん (ワッチョイ 2e32-tw6x)
2026/01/13(火) 15:13:04.02ID:G3o5Rd980 一昨年9.0リリースされたよ
632デフォルトの名無しさん (ワッチョイ e5f5-R+DX)
2026/01/13(火) 20:28:01.77ID:9t2FgLXt0 まだFramework使ってんの?
633デフォルトの名無しさん (ブーイモ MMa2-dAaA)
2026/01/13(火) 20:42:22.17ID:nun7g/a3M >>631
去年10出てる
去年10出てる
634デフォルトの名無しさん (ワッチョイ c2e6-eSsM)
2026/01/13(火) 21:43:25.46ID:0Ycx1lqx0 >>632
毎年期限切れで更新とかやっとられんからなぁ
毎年期限切れで更新とかやっとられんからなぁ
635デフォルトの名無しさん (ワッチョイ ee10-rbzp)
2026/01/14(水) 05:58:58.56ID:i6NhYUlF0 4.8系はいつまでサポートされるんやろかなぁ
636デフォルトの名無しさん (ワッチョイ 8db5-Il+v)
2026/01/14(水) 07:45:22.81ID:vOgusPNN0 社内用の業務アプリはC#で作ってるけど、OS標準でインストールされてないバージョンは何となく使いづらいから、主に4.8系使ってるわ。
4.8系の機能で間に合ってる以上、全従業員に.NET 10入れるよう強要するのは心苦しい。
4.8系の機能で間に合ってる以上、全従業員に.NET 10入れるよう強要するのは心苦しい。
637デフォルトの名無しさん (ワッチョイ 02ce-8rxF)
2026/01/14(水) 08:20:25.72ID:YXCGeLWG0 >>636
すでに全従業員にその業務アプリを入れるよう強要してるっぽいけど、その点は心苦しくないの??
すでに全従業員にその業務アプリを入れるよう強要してるっぽいけど、その点は心苦しくないの??
638デフォルトの名無しさん (ワッチョイ 8df8-N4J2)
2026/01/14(水) 08:35:52.67ID:Z+OH9a8M0 ランタイムは標準で入ってるからってことやろうけどまぁインストウィザードで勝手に入れりゃいいよね
639デフォルトの名無しさん (ワッチョイ 0501-R+DX)
2026/01/14(水) 09:54:40.65ID:7RVoEz2R0 俺様アプリを強要する時点でもうアルだよなw
640デフォルトの名無しさん (ブーイモ MMa2-dAaA)
2026/01/14(水) 12:41:03.15ID:h9R1haX9M 簡単にインストール出来るなら無用な気遣いだと思うな
インストーラーが嫌ならアプリに同梱も出来るし
インストーラーが嫌ならアプリに同梱も出来るし
641デフォルトの名無しさん (ワッチョイ 0dbd-QJl+)
2026/01/14(水) 13:58:43.49ID:3L0ekg8f0 .NET系は必要なdllだけ同梱してもかなりサイズがデカいのがなぁ…
MSもWin11に最新版の.NET同梱してくれれば良かったのに
それならPowerShellも5.1に縛られないんだけどね
MSもWin11に最新版の.NET同梱してくれれば良かったのに
それならPowerShellも5.1に縛られないんだけどね
642デフォルトの名無しさん (ワッチョイ 8d51-N4J2)
2026/01/14(水) 14:15:14.97ID:Z+OH9a8M0 つかdllってローカルにないとあかんの?
必要な命令セットにして起動時に読み込んでくれればええのに
必要な命令セットにして起動時に読み込んでくれればええのに
643デフォルトの名無しさん (ベーイモ MM96-mebm)
2026/01/14(水) 15:38:54.67ID:emWKKQPRM >>641
WindowsにバンドルしたらWindowsの一部としてサポートしなきゃいけなくなるから無理
新たにWindowsバンドル用のスーパーウルトラステーブルLTSが誕生して塩漬けされることになり、結局何も改善しない
WindowsにバンドルしたらWindowsの一部としてサポートしなきゃいけなくなるから無理
新たにWindowsバンドル用のスーパーウルトラステーブルLTSが誕生して塩漬けされることになり、結局何も改善しない
644デフォルトの名無しさん (ラクッペペ MMe6-eSsM)
2026/01/14(水) 16:07:27.58ID:uz51fr5OM 4.9出して非ヌルだけでも実装して欲しい
645デフォルトの名無しさん (ワッチョイ ee64-vcsv)
2026/01/14(水) 16:38:36.36ID:tJtsHV7W0 とりあえずpublish時に自己完結ビルドしてるわ
646デフォルトの名無しさん (ブーイモ MMe6-Gnqw)
2026/01/14(水) 17:46:01.63ID:8iPJERiCM ユーザー側でわざわざインストール作業しなくていいように配布の仕組みくらい普通用意してるよね
647デフォルトの名無しさん (アウアウウー Sa45-wxUL)
2026/01/15(木) 22:37:59.26ID:AGbpg7O2a NuGet使うの辞めて自分で管理すれば
必要なdllだけの最小限構成が可能
必要なdllだけの最小限構成が可能
648デフォルトの名無しさん (ワッチョイ 0bda-qEHJ)
2026/01/19(月) 14:49:41.64ID:bk6WHHqw0 別言語のソースコード(例えば.py)の下の方にcsxのコード埋め込んで実行する方法教えて下さい
dotnet script test.py
みたいな感じで
dotnet script test.py
みたいな感じで
649デフォルトの名無しさん (ワッチョイ 115c-Kw6x)
2026/01/19(月) 15:21:51.03ID:mA2MmN0B0 AIに聞け
650デフォルトの名無しさん (ワッチョイ c5b9-KElC)
2026/02/02(月) 19:05:46.13ID:b5Vms06f0 vb.net vs c#の話の続きで、初期のc#は、デフォルト引数というのがなかった。
後からc#にも、これが追加された。
623が言うには、後からInvokeMethodとかの煩わしかったコーディングが改善したとのこと。
結局c#には足りない言語仕様を追加して、vb.netの後を追いかけたという形だ。
.NET Frameworkではない.NETなら、c#を使うしかなくなったようだけど、623も旧の.NET Frameworkを使うなら問題ないと認めてるように、その旧のものを使う限りは、c#の優位性は特に無しという結論になるな。
vbの知識がなくて、c++やjavaなら知識がある人が扱いやすい、ただそれだけとしか思えん。
617が言う、偏見を持つ人なんかほっとけ。
Frameworkではない新しい.NETとやらは、まだ詳しくは知らないがOSを問わないマルチプラットフォーム対応の開発らしいな。この開発をするならC#しか選択肢はないということは分かった。
後からc#にも、これが追加された。
623が言うには、後からInvokeMethodとかの煩わしかったコーディングが改善したとのこと。
結局c#には足りない言語仕様を追加して、vb.netの後を追いかけたという形だ。
.NET Frameworkではない.NETなら、c#を使うしかなくなったようだけど、623も旧の.NET Frameworkを使うなら問題ないと認めてるように、その旧のものを使う限りは、c#の優位性は特に無しという結論になるな。
vbの知識がなくて、c++やjavaなら知識がある人が扱いやすい、ただそれだけとしか思えん。
617が言う、偏見を持つ人なんかほっとけ。
Frameworkではない新しい.NETとやらは、まだ詳しくは知らないがOSを問わないマルチプラットフォーム対応の開発らしいな。この開発をするならC#しか選択肢はないということは分かった。
651デフォルトの名無しさん (ワッチョイ c5b9-KElC)
2026/02/02(月) 19:05:47.69ID:b5Vms06f0 vb.net vs c#の話の続きで、初期のc#は、デフォルト引数というのがなかった。
後からc#にも、これが追加された。
623が言うには、後からInvokeMethodとかの煩わしかったコーディングが改善したとのこと。
結局c#には足りない言語仕様を追加して、vb.netの後を追いかけたという形だ。
.NET Frameworkではない.NETなら、c#を使うしかなくなったようだけど、623も旧の.NET Frameworkを使うなら問題ないと認めてるように、その旧のものを使う限りは、c#の優位性は特に無しという結論になるな。
vbの知識がなくて、c++やjavaなら知識がある人が扱いやすい、ただそれだけとしか思えん。
617が言う、偏見を持つ人なんかほっとけ。
Frameworkではない新しい.NETとやらは、まだ詳しくは知らないがOSを問わないマルチプラットフォーム対応の開発らしいな。この開発をするならC#しか選択肢はないということは分かった。
後からc#にも、これが追加された。
623が言うには、後からInvokeMethodとかの煩わしかったコーディングが改善したとのこと。
結局c#には足りない言語仕様を追加して、vb.netの後を追いかけたという形だ。
.NET Frameworkではない.NETなら、c#を使うしかなくなったようだけど、623も旧の.NET Frameworkを使うなら問題ないと認めてるように、その旧のものを使う限りは、c#の優位性は特に無しという結論になるな。
vbの知識がなくて、c++やjavaなら知識がある人が扱いやすい、ただそれだけとしか思えん。
617が言う、偏見を持つ人なんかほっとけ。
Frameworkではない新しい.NETとやらは、まだ詳しくは知らないがOSを問わないマルチプラットフォーム対応の開発らしいな。この開発をするならC#しか選択肢はないということは分かった。
652デフォルトの名無しさん (ワッチョイ c5b9-KElC)
2026/02/02(月) 19:10:01.52ID:b5Vms06f0 初期はデフォルト引数がないから、おそらく引数ありのメソッドをオーバーロードして、引数なしのメソッドを追加して、引数ありのメソッドに、デフォルト値として指定すべき値を渡すという実装をしてたんだろうな。
653デフォルトの名無しさん (ワッチョイ c5b9-KElC)
2026/02/02(月) 19:16:45.02ID:b5Vms06f0 言葉足らずになったが、引数なしのメソッドから、同名の引数ありのメソッドに、デフォルト値となる引数を渡して単純にその呼び出しだけをする実装をしてたんだろうな。
654デフォルトの名無しさん (ブーイモ MM4b-YqrH)
2026/02/02(月) 20:57:50.98ID:Nl1t0m6rM >>650
Excel操作改善で重要なのはデフォルト引数よりもDynamic型の導入
Excel操作改善で重要なのはデフォルト引数よりもDynamic型の導入
655デフォルトの名無しさん (ワッチョイ 4b64-UgzD)
2026/02/03(火) 10:32:43.92ID:C4kLcgTl0 型が一致してなくても勝手に変換してエラーも出さないVBが良いというようでは……
656デフォルトの名無しさん (ワッチョイ 4dcf-x4iO)
2026/02/03(火) 18:44:09.13ID:L/Hu3jzb0 varの悪口はそこまで
657デフォルトの名無しさん (ワッチョイ e3c5-4QED)
2026/02/03(火) 21:00:35.54ID:dvMNkJW90 VBの実行時型変換自由形とvarのコンパイル時型推論は全然別物だろ
658デフォルトの名無しさん (ササクッテロラ Sp41-jKNx)
2026/02/04(水) 08:17:18.27ID:Xpzj672Rp 頭悪
レスを投稿する
ニュース
- なぜコンビニは「外国人店員」だらけになったのか? 大手3社で8万人超…元セブン社員が明かす「日本人が集まらなくなった」現場の実情★5 [♪♪♪★]
- 【沖縄】「許せない」「基地を返せ」 強盗殺人事件、沖縄に怒りの声 ★2 [ぐれ★]
- 【MLB】ドジャース戦の中継で疑問の声「ガラガラじゃない?」 地区S初戦なのに…発表5万人超も「何が起きてる」 [jinjin★]
- 【消費税国会】今日開会 野党対案は現金給付、10兆円ありきの論争へ [蚤の市★]
- 【中日】新監督有力候補に工藤公康氏浮上 地元出身、ソフトバンクで日本一5度の“優勝請負人” [征夷大将軍★]
- 【調査】都道府県魅力度ランキング2026、残念ながらワースト1位は…? ★2 [ぐれ★]
- 【高市超絶悲報】満州での阿片製造や関東軍をテーマにした「満州アヘンスクワッド」アニメ化… 岸信介 [165981677]
- 「HOKA」、ガチで流行りまくる。外に出たらHOKA履いてる人しかいない。なんでダサいのに流行ってるの? [838847604]
- 【二次】どの女の子と動物なかよししたい!?wwwwwwwwwwwwwwwwwwwwwwwwwwww
- はっきり言う。子どもとセックスしたい。 [769931615]
- 素泊まり1人5000円2人10000円てなんで借りる部屋1つで同じなのに料金倍になるの?おかしくね? [605029151]
- 肌に穴あける器具買ったわwwwwwww