変数はメソッド内部で使い切るものはブロック内で宣言し、共有が要るならクラスフィールド、アプリ全体で共有したいならstaticを選びます。 使う場所に近づけて最小スコープにすると可読性が向上し、バグや競合が減ります。 C#における変数宣言の基
続きを読む »=> はC#でラムダ式や式形式メンバーを導入する記号で、変数宣言時に匿名関数を割り当てたり、式だけでプロパティやメソッドを完結させられます。 var sum = (int a, int b) => a + b のように型推論に任
続きを読む »C#では型名の後ろに?を付けると値型でも参照型でもnullを受け取れます。 プロジェクトでNullableを有効にすればコンパイラがnull使用時に警告を出し、HasValue確認や!演算子で非nullを示せます。 適切なnullチェックで
続きを読む »C#のラムダ式は、=>で引数と処理を結び付ける匿名関数で、FuncやActionなどのデリゲート型に代入して扱います。 外側の変数をキャプチャして保持でき、式形式なら戻り値を簡潔に書けます。 型推論が働くため記述量が減り、LINQやイ
続きを読む »配列を完全な定数として宣言する方法はC#にはなく、constで指定できるのは値型と文字列に限られます。 参照だけを固定したい場合はreadonlyやstatic readonlyフィールドが適切で、要素まで変更不可にしたいときはReadOn
続きを読む »C#のLINQメソッド構文は、WhereやSelectなどの拡張メソッドをチェーンでつなぎ、IEnumerable<T>やIQueryable<T>のデータを宣言的に操作できる仕組みです。 SQL風のクエリ構文より柔
続きを読む »定数は変更がない値をアプリ全体で共有するため、staticクラスにconstやstatic readonlyでまとめると散在を防ぎ保守が楽になります。 用途ごとにクラスを分け、名前は大文字+アンダースコアで統一し、不要なインスタンス化も防げ
続きを読む »LINQのフィルタリングは、Whereなどの拡張メソッドやSQL風クエリ構文で条件抽出し、遅延実行により不要な計算を避けながらデータを効率的に扱える手法です。 ラムダ式で複数条件も簡潔に書け、コレクション操作を読みやすく統一できます。 LI
続きを読む »C#で複数の固定値を扱うならenumが最も安全で読みやすい手段です。 強い型付けにより比較やIDE補完が楽になり、誤入力のリスクを減らせます。 バラバラにconstや定数クラスを置くより整理しやすく、保守性も高まります。 定数クラスの課題
続きを読む »抽象クラスは共通の状態と一部実装を持つ基底クラスとして単一継承で使い、フィールドやコンストラクタを備えられます。 一方インターフェースは実装を持たず複数採用でき、クラスに能力を付与する契約として働きます。 C# 8.0以降はインターフェース
続きを読む »C#の定数はconstで宣言し、静的クラスに集約すると重複や表記揺れを防ぎ管理が楽になります。 インスタンス化を許さないstatic classが適任で、IDE補完により入力ミスも低減。 列挙体やreadonlyで代替しづらい共通値を一元化
続きを読む »C#の左シフト演算子<<は整数のビット列を左へ動かし右端に0を入れる働きを持ち、実質的に
C#で平方根を求めるならMath.Sqrtが定番です。 引数はdouble、結果もdoubleで返り、0なら0、正数ならその平方根、負数ならNaNになります。 double.IsNaNで負数入力を判定し、繰り返し計算が多い場面ではキャッシュ
続きを読む »共通処理は持たせつつ具体実装を派生任せにしたい時に抽象クラスが最適です。 状態やフィールドを共有したい場面、将来の拡張でメソッド追加が見込まれるAPI設計、複数の似たオブジェクトをポリモーフィックに扱う業務ロジックで威力を発揮します。 抽象
続きを読む »C#の抽象クラスは共通の振る舞いとプロパティを定義しつつ直接インスタンス化できない型です。 抽象メソッドを含めることで派生クラスに実装を強制し、ポリモーフィズムを安全に実現できます。 設計段階でインターフェースよりも基底実装を共有したい時に
続きを読む »抽象クラスにabstractプロパティを宣言すると、そのクラス自体はインスタンス化できず、派生クラスはoverrideでプロパティ本体を実装する義務が生じます。 これにより共通インターフェースを保ちながら各クラス固有の値計算やバリデーション
続きを読む »C#の定数名はPascalCaseを基本とし、意味が一目で分かる名詞または名詞句を選びます。 大文字スネークケースは.NET標準では推奨されないため避けると読みやすさが向上します。 実行時に確定する値にはstatic readonly、ビル
続きを読む »クラス外から定数を扱うなら、基本はクラス内にpublic constやpublic static readonlyを置き、外部でClassName.Constantと書くだけで参照できます。 C# 10以降は名前空間直下にconstを置く選
続きを読む »LINQはシーケンスへの直感的な問い合わせを可能にし、WhereやSelectなど拡張メソッドへ渡す条件や射影をFunc<T,bool>やFunc<T,TResult>といったデリゲートで受け取ります。 ラムダ式はそ
続きを読む »