4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

C#達人への道 連載Index|読む順・公開記事一覧(鍛錬/掟/外伝/救急Tips/工房)【S00】

4
Last updated at Posted at 2026-01-14

困りごとから探すときは上の表、公開済を一覧で追うときは公開済リンクが使えます。

このページは『C#達人への道』のIndexです。
困りごとから次の 1 本を探すときと、公開済の記事を一覧で追うときに使えます。

先に使う場所は次の 3 つです。

  • 困りごとがあるときはこの表
  • まず開く 3 本
  • 公開済リンク

困りごとがあるときはこの表

近い症状の行からたどれます。

いまの状況 まず読む 次に読む
UIが固まる/止まる E04 G11 / G13 / R06
WinForms 応答なしで .Result / .Wait / Invoke が怪しい E03 E04 / G13
NuGetや参照が壊れた E02 K27 / R01
Nullで落ちる/条件がぶれる R09 R01 / R04
返ってこない/待ち続ける R10 R06 / R05
SaveChangesしても反映されない E08 E09
時間がズレる/タイムゾーンが合わない G22
画像やファイルが使用中になる R11 R07 / R12 / G10
文字列が一致しない/Contains が怪しい R03 K33 / K39
常駐アプリが終わらない/戻せない G19 R07 / G10
WinFormsの挙動が読みにくい G10 G12 / G16 / G17
IMEが壊れる/確定が飛ぶ E05 G14
Win32 APIで突然終了する E06 G12
外部通知が不安定 E07 R05 / K27
画像の形式で迷う/にじむ/重い K31 R11 / R12
LINQの動きが追いにくい K35 K36
C#が遅いが原因がまだ見えない K38 K36 / K33
イベント解除漏れ/二重発火/メモリリークが怪しい K37 R07 / G10
List / Dictionary / HashSet の使い分けで止まる K39 K33 / R03
ファイル変更を監視したい W01 W02 / R05
共有フォルダの更新者を追いたい W02 W01 / R05
using / Dispose / SafeHandle の責務で揉める R12 R07 / R11

まず開く 3 本

迷ったときは、ここから入ると全体を追いやすくなります。


よく開かれている記事

まず数本読みたいときは、このあたりから入れます。


公開済リンク

公開済の記事だけをカテゴリ別に並べています。
新しい記事はここへ追加していきます。

S:門前

E:現場救急Tips

R:掟

K:鍛錬

G:外伝

W:工房


前提

項目 前提
OS Windows 10/11
.NET .NET 8(Windows Desktop)
TargetFramework net8.0-windows
UI WinForms
IDE Visual Studio 2022
C# C# 12

本文は .NET 8 / WinForms / net8.0-windows を前提にしています。
差が大きい場面だけ .NET Framework 4.8 を書き足しています。


記号の意味

記事IDの先頭 1 文字でカテゴリを分けています。

記号 カテゴリ 何があるか
S 門前 導入と前提整理
E 救急 症状から探しやすい記事
R 判断基準をまとめた記事
K 鍛錬 基本と失敗パターンの記事
G 外伝 仕組みを深く扱う記事
W 工房 実装と運用を寄せてまとめた記事

ラインナップ

この一覧には、公開前の記事も入っています。
リンクがあるものは公開済、ないものは準備中です。

S:門前
ID タイトル 状態
S00 C#達人への道 連載Index|読む順・公開記事一覧|鍛錬・掟・外伝・救急Tips・工房【S00】
S01 C#/.NET 用語集|現場で詰まりやすい用語(随時更新)【S01】
S02 C#/.NET トラブルシュート早見表|まず疑う順(固まる/落ちる/遅い/参照切れ)【S02】
E:現場救急Tips
ID タイトル 状態
E01 乞うご期待
E02 NuGet 競合で参照が壊れる原因|依存関係の切り分けと対処【救急E02】
E03 WinForms 応答なしの原因|.Result/.Wait/Invoke の切り分け【救急E03】
E04 WinForms UIが固まる原因|重い処理 / Task.Run / .Wait / Invoke を画面で切り分けるサンプル【救急E04】
E05 WinForms IME不具合の切り分け|確定が飛ぶ/文字が消える原因【救急E05】
E06 突然終了の原因|PInvoke/WndProc/Handle寿命 のチェック(WinForms)【救急E06】
E07 Webhook 送信失敗の原因|プロキシ/タイムアウト/リトライ(HttpClient)【救急E07】
E08 EF Core SaveChanges が反映されない原因(Web)|追跡/状態/トランザクション【救急E08】
E09 EF Core SaveChanges が反映されない原因|追跡/状態/DbContext の確認点【救急E09】
E10 参照地獄の発火点:公開API / バージョン / 配布差の失敗パターン
E11 回帰を止める:失敗パターン別のテストと運用の最短整備
R:掟
ID タイトル 状態
R01 コーディング規約の基準(C#)|命名/例外/ログ/依存関係【掟R01】
R02 C# var はどこまで使うか|new は var、戻り値は型を書く【掟R02】
R03 C#でToLower()Equals に直したのに、ContainsDictionary は大文字小文字を無視してくれない【掟R03】
R04 例外設計の基準(C#)|空catch/throw;/InnerException【掟R04】
R05 ILogger ログ設計の基準(C#)|調査しやすい粒度とキー【掟R05】
R06 C# 非同期処理の基準|UIスレッド/await/デッドロックを避ける判断軸【掟R06】
R07 WinFormsで閉じたあとも残る原因|Load・Shown・Closing・Closed・Dispose の役割分担【掟R07】
R08 乞うご期待
R09 NullReferenceException 対策|nullable と Guard の基準【掟R09】
R10 C# タイムアウトとキャンセル設計|Task.WhenAny と CancellationToken の使い分け【掟R10】
R11 WinFormsで「別のプロセスが使用中です」の原因になりやすい所|Stream・ファイル出力・ログ・別処理【掟R11】
R12 C#でDispose責務をレビューで止める5ルール|using・DI・Finalize・SafeHandle【掟R12】
R13 乞うご期待
R14 discard _ の基準(C#)|out/戻り値/タプル分解/switch【掟R14】
K:鍛錬
ID タイトル 状態
K21 乞うご期待
K26 C# ラムダ式入門|Action/Func/delegate とクロージャ失敗パターン3選(ループ変数・イベント解除・async void)【鍛錬K26】
K27 参照依存の整理(C#)|依存方向/境界/配布単位(NuGet)【鍛錬K27】
K28 C#で float / double / decimal を迷わず選ぶ|金額はdecimal、通常はdouble【鍛錬K28】
K29 設定・データ形式の使い分け(C#)|CSV/JSON/XML/YAML/INI【鍛錬K29】
K30 設定ファイル互換性の守り方(C#)|版数/後方互換/入力防御(JSON)【鍛錬K30】
K31 PNG/JPG/SVG/BMP 使い分け|画像形式の判断軸(C#)【鍛錬K31】
K33 C# 文字列操作 早見表|Contains/Replace/Split/Join/Regex/StringComparison【鍛錬K33】
K35 C# LINQ サンプル集|Where/Select/GroupBy/Join(実行結果つき)【鍛錬K35】
K36 C# LINQ(to Object)が遅くなる原因5選(ToList / OrderBy / Contains / Skip / 二重列挙)【鍛錬K36】
K37 イベント購読トラブル7チェック|解除漏れ/二重発火/メモリリーク(C#)【鍛錬K37】
K38 C#が遅い原因の切り分け(30秒診断)|GC(ガベージコレクション)だけを疑わない:割り当て×寿命×サイズで最短特定【保存版】【鍛錬K38】
K39 10万件実測 C# List / Dictionary / HashSet の使い分け|Contains・検索・更新【鍛錬K39】
G:外伝
ID タイトル 状態
G10 WinForms Formライフサイクル整理|ctor/Load/Shown/Closing/Dispose の順と落とし穴【外伝G10】
G11 WinFormsが固まる理由|Application.Run とメッセージループ入門【外伝G11】
G12 WndProc 入門|WM_* と DefWndProc を壊さない WinForms/Win32 メッセージ処理【外伝G12】
G13 C# async/await でUIが固まる理由|同期コンテキストとデッドロック【外伝G13】
G14 WinForms IME表示位置ずれの原因|キャレット矩形/TSF/IMM32/DPI【外伝G14】
G15 WinForms デザイナが落ちる原因|継承コントロールで詰まりやすい初期化・保存・TypeConverter【外伝G15】
G16 WinForms 通知ウィンドウ設計|TopMost/SetWindowPos/Zオーダー【外伝G16】
G17 WinForms ホットキー実装|RegisterHotKey/UnregisterHotKey の要点【外伝G17】
G18 多重起動制御:Mutex/既存インスタンス前面化
G19 NotifyIcon トレイ常駐アプリ設計|×は隠す/トレイで終了(Hide/Restore/Dispose)【外伝G19】
G20 SendMessageとPostMessage:同期/非同期の違い
G21 C# 文字化けした時はここだけ見る|先頭だけ変=BOM、全部崩れる=文字コード違い、桁数ずれ=byte数【外伝G21】
G22 DateTime がずれる原因|UTC/Offset/TimeZone/DateTimeOffset の整理【外伝G22】
G23 TCPとUDPの違い|接続/ポート/再送/用途(Slack・IPMsg・オンラインゲーム)【外伝G23】
G24 P2P:NAT越え/STUN/TURN/リレー
G25 MVC/MVP/MVVM の違いと使い分け|WinForms/WPF で役割を整理【外伝G25】
G26 Fat Controller を避ける Controller 設計|MVCで分ける判断軸【外伝G26】
G27 乞うご期待
W:工房
ID タイトル 状態
W01 C#でファイル変更を監視したいときの基本|FileSystemWatcher、共有フォルダ、サブフォルダ、WinForms【工房W01】
W02 C#で共有フォルダの更新者を追う方法|FileSystemWatcherだけでは分からない情報を4663/4660で補う【工房W02】

このIndexの使い方

困りごとから探すときは、上の表からたどれます。
公開済だけ追いたいときは、公開済リンクが早いです。
公開前を含めた全体像は、ラインナップにまとめています。

最初に開かれやすいテーマは、いまのところ UIフリーズです。

  • E04:WinForms UIが固まる原因|重い処理 / Task.Run / .Wait / Invoke を画面で切り分けるサンプル【救急E04】
  • G11:WinFormsが固まる理由|Application.Run とメッセージループ入門【外伝G11】
  • G13:C# async/await でUIが固まる理由|同期コンテキストとデッドロック【外伝G13】
  • R06:C# 非同期処理の基準|UIスレッド/await/デッドロックを避ける判断軸【掟R06】

謝辞(O’Reilly/オライリー風)(読みたい人だけ)

この連載は、目に見える協力者と、目に見えない協力者と、そして「見えないふりをしている協力者」たちの力で成立しています。

まず、部屋のホコリと、キーボードの隙間に挟まった謎の白い粉に感謝します。
その存在があるからこそ、私は定期的に掃除をし、結果として思考も整理されます。

次に、地球上の全ての生物に感謝します。だいたい全部です。
見えないものほど、あとから効いてくる。開発も同じです。
前提と依存を疑う。これをプログラマの義務教育と呼びます。

そして、終わらない締切、終わらないリビルド、終わらない「ちょっとだけ直す」、終わらない確認にも感謝します。
夜は静かで、朝は眩しく、昼は眠く、夕方は焦る。全部セットで、なぜか仕事は進みます。
ドはまりした案件ほど、人は鍛えられて、設計と言葉が強くなります。ありがたい。実にありがたい。
ただし、同じ成長は別ルートがよい。次は普通に成長したいです。

さらに、堅牢すぎて時々こちらの正気まで守ってくれるセキュリティにも感謝します。
社内に「外から見られる仕組み」を気軽に作れず、ナレッジが社内の奥深くに封印され、しかもお客様の環境から自社ネットワークに入って作業する構図に、たまに哲学的な違和感が生まれる。
その結果、私は個人でQiitaに技術メモを残す必要が出ました。
公開できないことは書かない。公開できることだけを、ちゃんと磨く。
制約は多いほど、文章は強くなります。
関係者各位、心配は不要。ここにあるのは“漏れて困るもの”ではなく、“漏れて助かるもの”だけです。

最後に、我が家のミニチュアダックスフント「びび」に特別な謝意を。
この連載の本当の締切は、びびの散歩です。
少しでも遅いと、足元に来てこちらを見ます。まだ粘ると、もう一度見ます。
それでも動かないと、今日は散歩を忘れた人として扱われます。


プログラムは、書いた通りにしか動きません。
例外やバグは、書いていない前提と、OSやフレームワーク側の見落としから入りやすくなります。
この連載は、その場で困ったときだけでなく、少し時間が経ってからも探しやすい形で並べています。

迷ったときに戻る場所として使えます。表からも一覧からも次の 1 本を探せます。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?