動くコード図鑑
$ ls -1 /library | wc -l → 619
触って動く、検証済みの正解集。
公開記事から抽出した全コードブロックを 1 つずつページ化。 ▶ ボタンで 実行ログを再生し、 さも今動いてるかのように出力を流す。

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
619 件// ✅定石2:入れ子usingで複数IDisposableを扱う using (var conn = new SqlConnection(connStr)) using (var cmd = new SqlCommand("SELECT id, name FROM users WHERE status = @s", conn)) { conn.Open();
定石2:複数IDisposableは入れ子usingで書く
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#740c9638ff8a
// ✅定石3-a: Exceptionフィルタ(when句)でデッドロックだけリトライ try { ExecuteSql(); }
▶ 実行可
定石3: Exceptionフィルタ(when句)でcatch内if分岐を排除
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け#2abecfea594d
// ❌ NG: throw ex;はスタックトレースが「rethrowした行」でリセットされる public void OuterMethod() { try {
▶ 実行可
定石4: throw vs throw exのスタックトレース挙動
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け#08d0e82d4c16
// ❌ NG:例外を捕まえてログも吐かず処理を続ける try { SaveOrder(order); }
1. catch (Exception){ }で全握りつぶし
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#8c7dfdd9cccc
// ❌ NG: finally内で例外が出ると元の例外が上書きされる SqlConnection conn = null; try { conn = new SqlConnection(connStr);
2. finallyで例外スローして元の例外が消える
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#2243ed770fc8
// ❌ NG: Open()で例外が出るとDispose()が呼ばれない SqlConnection conn = new SqlConnection(connStr); conn.Open(); // ←ここで例外が出ると、connがusingの外なのでDispose()されない using (conn) {
3. usingとOpen()の順序ミス
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#22920b27e7c6
// ❌ NG:派生型を後ろに書くと到達不能(コンパイルエラー) try { ... } catch (Exception ex){ /* 全部ここに来る */ } catch (SqlException ex){ /* ←ここには到達しない、コンパイルエラー */ }
4. catch (DbException)とcatch (Exception)の順序
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#3e0a5ff2f976
// ❌ NG:内部例外を渡さないと元の情報が失われる catch (SqlException ex) { throw new ApplicationException("注文処理に失敗"); // ← exを渡してない }
5.例外をラップする時に内部例外を渡し忘れる
C# 例外処理の正解 — try-catch-finally / using / Exception フィルタ (when句) の使い分け未収録#987696d7670f
// ✅定石1: StreamReader + usingでShift-JIS読み込み using System.IO; using System.Text; var sjis = Encoding.GetEncoding("shift_jis");
定石1: StreamReader + using + Encoding指定
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け未収録#3070cb2953d8
// ✅定石2: File.ReadAllLinesで一発配列化 using System.IO; using System.Text; string[] lines = File.ReadAllLines(@"C:\input\config.txt", Encoding.UTF8);
定石2: File.ReadAllLines —小ファイル向きの一撃
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け未収録#416c419f6cb7
// ✅定石3: File.ReadLinesで大ファイルをストリーム処理 using System.IO; using System.Text; // IEnumerable<string>なのでforeachで1行ずつ読む(メモリには1行分しか乗らない)
定石3: File.ReadLines —大ファイルのストリーム読み込み
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け未収録#275aa66b0c4b
// ✅定石4:性能比較(10万行×約100MBのログを想定) const string path = @"C:\logs\big-app.log"; // ReadAllLines版(メモリに全部ロード) GC.Collect(); GC.WaitForPendingFinalizers();
▶ 実行可
定石4:性能比較— Stopwatch + GC.GetTotalMemory
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け#976121387821
// ✅定石5: FileShare.ReadWriteで同時アクセスを許可 using System.IO; using System.Text; using (var fs = new FileStream(@"C:\logs\writing.log",
定石5: FileShareで同時アクセスを扱う
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け未収録#6cd0545383e7
// ✅定石6: BOMの有無で簡易判定(業務系で雑なエンコーディング判定) public static Encoding DetectEncoding(string path) { var bytes = new byte[4]; using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read))
定石6:エンコーディング判定の実践— Shift-JISとBOM付きUTF-8の見分け
C# ファイルIO の正解 — StreamReader / File.ReadAllLines / File.ReadLines / using の使い分け未収録#2c74893d554e
namespace FormInForm { public partial class MainForm : Form { private Form form1;
MainFormロード時に下記コードを実行するようにする。
【C#】Formの中にFormを表示して良い感じに切り替える未収録#c5f185b53015
private void button1_Click(object sender, EventArgs e) { HideAllForm(); form1.Show(); } private void button2_Click(object sender, EventArgs e)
ボタンにメソッドを追加していく
【C#】Formの中にFormを表示して良い感じに切り替える未収録#e3ab3846c3b0
public partial class MainForm : Form { private Form form1; private Form form2; private Form form3; private Color _activeColor = Color.Aquamarine;
アクティブなFormのButtonの色を変える
【C#】Formの中にFormを表示して良い感じに切り替える未収録#2a4145d317d4
private void MainForm_Load(object sender, EventArgs e) { form1 = new Form1(); form1.TopLevel = false; form1.Dock = DockStyle.Fill;
アクティブなFormのButtonの色を変える
【C#】Formの中にFormを表示して良い感じに切り替える未収録#1231b8968340
private void button1_Click(object sender, EventArgs e) { form2.Hide(); form3.Hide(); form1.Show();
アクティブなFormのButtonの色を変える
【C#】Formの中にFormを表示して良い感じに切り替える未収録#87853255d4ae
private void button2_Click(object sender, EventArgs e) { form1.Hide(); form3.Hide(); form2.Show();
リアファクタリング
【C#】Formの中にFormを表示して良い感じに切り替える未収録#dca8ec96b793
public partial class MainForm : Form { private Form form1; private Form form2; private Form form3; private IEnumerable<Form> _subForms;
リアファクタリング
【C#】Formの中にFormを表示して良い感じに切り替える未収録#dd97c1ad6b79
private void MainForm_Load(object sender, EventArgs e) { form1 = new Form1(); form1.TopLevel = false; form1.Dock = DockStyle.Fill;
リアファクタリング
【C#】Formの中にFormを表示して良い感じに切り替える未収録#14e000ced131
private void ShowForm(Form form) { // subFormの配列をぶん回して引数のFormと一致してたら表示して、 // 一致してなかったら隠す foreach (var f in _subForms)
リアファクタリング
【C#】Formの中にFormを表示して良い感じに切り替える未収録#79d1595b94ee
private void button1_Click(object sender, EventArgs e) { ShowForm(form1); ActivateBtn((Button)sender); } private void button2_Click(object sender, EventArgs e)
リアファクタリング
【C#】Formの中にFormを表示して良い感じに切り替える未収録#71fecd1b8fb7
private void button1_Click(object sender, EventArgs e) { var form = new Form2(); this.Hide();
各Formで別Formを表示するときのコード
【C#】Formから別フォームを表示しメインフォームを切り替える未収録#9e8b811d3121
namespace FormToForm { public partial class Form2 : Form { public Form2()
Form2とForm3のコードはこんな感じ
【C#】Formから別フォームを表示しメインフォームを切り替える未収録#14d449cb998d
namespace FormToForm { public partial class Form3 : Form { public Form3()
Form2とForm3のコードはこんな感じ
【C#】Formから別フォームを表示しメインフォームを切り替える未収録#aa8f18c87671
//親フォーム側 private void btnSelectMaster_Click(object sender, EventArgs e) { using (var dlg = new MasterSelectForm()) {
ShowDialogはモーダル—呼び出し側が止まる
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#e8e9c186bc59
//親フォーム側 private ProgressForm _progressForm; private void btnStartImport_Click(object sender, EventArgs e) {
Showはモードレス—呼び出し側は動き続ける
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#fdb171e5159f
//取引先選択ダイアログを開いて、選ばれたコードを画面に反映する using (var dlg = new TorihikiSelectForm()) { if (dlg.ShowDialog(this)== DialogResult.OK) {
1.マスタ参照ダイアログ→ ShowDialog
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#71eafd998336