C#
Dictionary に特定のキーや値が含まれているかどうかを調べたい場面はよくあります。C の Dictionary<TKey...
C で Dictionary を使うには、まずインスタンスを生成する必要があります。用途や状況に応じて複数の初期化方法が用意され...
継承を前提としたクラス設計では、「親クラス自体はインスタンス化せず、子クラスに共通のインターフェースと部分的な実装を提供する」と...
継承は強力な機能ですが、すべてのクラスやメソッドが自由に継承・オーバーライドされることが望ましいとは限りません。設計意図に反した...
継承の大きな利点のひとつは、親クラスで定義されたメソッドの振る舞いを子クラスで変更できることです。C ではこの仕組みを「オーバー...
クラスを継承したとき、子クラスのインスタンスが生成される前に親クラスのコンストラクタが実行されます。親クラスに引数付きのコンスト...
Dictionary からキーを指定して値を取得するとき、キーが存在しなければ KeyNotFoundException が発生...
Dictionary はキーと値のペアを管理するコレクションで、要素の追加・取得・削除・更新といった基本操作を頻繁に使います。そ...
DateTime オブジェクトを文字列に変換するとき、ToString メソッドにフォーマット指定子を渡すことで出力形式を自由に...
.NET には多くの組み込み属性が用意されているが、プロジェクト固有の要件に合った属性が欲しくなることもある。C では `Sys...
オブジェクトをファイルに保存したり、ネットワーク越しに送信したりするには、メモリ上のデータをバイト列や文字列に変換する必要がある...
ログやデバッグメッセージに「どのメソッドから呼ばれたか」を含めたいとき、呼び出し元の名前をハードコードするのは保守性が悪い。メソ...
開発中はログ出力やバリデーションチェックを入れたいが、リリースビルドではそれらを取り除きたい、という場面は多い。`Conditi...
ライブラリやプロジェクトが成長すると、古いメソッドやクラスを新しい設計に置き換えたくなる。しかし、いきなり削除すると既存のコード...
C には、クラスやメソッド、プロパティなどに追加情報を付与する「属性(Attribute)」という仕組みがある。属性はコードの動...
リフレクションを使うと、実行時にジェネリック型の情報を調べたり、動的にジェネリック型を構築したりできます。高度な機能ですが、ライ...
.NET には多数のジェネリックコレクションが用意されています。それぞれ特性が異なるため、用途に応じて使い分けることが重要です。...
ジェネリクスで型パラメータ `T` のデフォルト値を取得するには `default` 演算子を使います。参照型なら `null`...
共変性(Covariance)と反変性(Contravariance)は、ジェネリック型の型パラメータに対する変換の規則を定める...
DateTime は C で日付と時刻を扱う最も基本的な構造体です。様々な方法でインスタンスを生成できます。 コンストラクタで生...
ジェネリックインターフェースは、型パラメータを持つインターフェースです。`IEnumerable<T>` や `ICompara...
ジェネリクスでは複数の型パラメータを持つクラスやメソッドを定義できます。`Dictionary<TKey, TValue>` は...
ジェネリック制約(where 句)を使うと、型パラメータに条件を設けることができます。制約を付けることで、特定のメソッドやプロパ...
ジェネリックメソッドは、クラス全体ではなくメソッド単位で型パラメータを持つ機能です。非ジェネリッククラスの中にも定義でき、柔軟な...