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

この図鑑の使い方
言語で絞る
C# / SQL / TypeScript / PowerShell / Bash でフィルタ。
▶ で実行
事前収録の出力を 1 行ずつ再生。 ぱっと結果が見える。
記事と接続
各 snippet は出典記事へのリンク付き。 文脈ごと読める。
絞り込み
snippet 一覧
473 件// ❌ 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
//進捗フォームをShowして、本処理は呼び出し側で並行進行 var progress = new ProgressForm { Owner = this }; progress.Show(); try
2.進捗・常時表示フォーム→ Show
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#cd795de2af89
using (var dlg = new SettingsForm(currentSettings)) { if (dlg.ShowDialog(this)== DialogResult.OK) { currentSettings = dlg.UpdatedSettings;
3.設定画面・確認ダイアログ→ ShowDialog
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#b50f7b7bc638
// ❌ NG: dlgがGC待ちで残り続ける var dlg = new MasterSelectForm(); dlg.ShowDialog(this); //この後dlgを参照していなくても、Disposeされないので残骸が残る
① ShowDialog後のDispose忘れでメモリ食い続ける
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#ff776b9ad022
// ❌ NG:押すたびに新しいLogFormが開く private void btnShowLog_Click(object sender, EventArgs e) { var log = new LogForm(); log.Show();
② Showで同じフォームを2回開いてNRE
C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイド未収録#92936fb74410