例3-1 空のPlane クラス
この例は EmptyClass ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの18行目以降に相当します。
例3-2 プロパティの追加
この例は PropertiesWithErrors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-3 Plane クラスのプロパティを使用する
この例は PropertiesWithErrors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの13行目以降に相当します。
例3-4 プロパティをpublic にする
この例は PublicProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-5 プロパティのset アクセサをprivate にする
この例は PrivatePropertiesWithErrors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-6 コンストラクタの定義
この例は Constructors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-7 コンストラクタの利用
この例は Constructors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの11行目以降に相当します。
例3-8 変更可能な速度用のプロパティ
この例は CalculatedProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの20行目以降に相当します。
例3-9 get アクセサとset アクセサを持つプロパティ
この例は CalculatedProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの27行目以降に相当します。
例3-10 保存するプロパティと計算するプロパティの入れ替え
この例は AlternativeCalculatedProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの20行目以降に相当します。
例3-11 速度プロパティの利用
この例は CalculatedProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの11行目以降に相当します。 同じコードが AlternativeCalculatedProperties ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの11行目以降にもあります。
例3-12 単純なプロパティを独自に実装する
この例は ManualPropertyWithField ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの21行目以降に相当します。
例3-13 変換係数をフィールドとして保存する
この例は ConversionFactorField ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-14 定数値の定義
この例は ConstConversionFactor ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの21行目以降に相当します。
例3-15 下手に書かれたデバッグコード
この例は BadDebugCode ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの23行目以降に相当します。
例3-16 読み取り専用プロパティの間違った定義
この例は WrongReadOnlyProperty ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの12行目以降に相当します。
例3-17 部分的に改善されたものの不完全な読み取り専用プロパティ
この例は IncompleteReadOnlyProperty ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの12行目以降に相当します。
例3-18 「賢く」下手に書かれたデバッグコード
この例は IncompleteReadOnlyProperty ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの23行目以降に相当します。
例3-19 読み取り専用フィールド
この例は ReadOnly ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの18行目以降に相当します。
例3-20 定数int を使った名前付きオプション
この例は ConstOptions ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの10行目以降に相当します。
例3-21 Direction 列挙型
この例は Enums ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる DirectionOfApproach.cs ファイル全体に相当します。
例3-22 列挙型のプロパティ
この例は Enums ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの40行目以降に相当します。
例3-23 列挙型の明示的な型と値
この例は ExplicitEnum ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる DirectionOfApproach.cs ファイル全体に相当します。
例3-24 参照を変数に保存
この例は RefsVsValues ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの13行目以降に相当します。
例3-25 変数から変数へ参照をコピーする
この例は RefsVsValues ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの17行目以降に相当します。
例3-26 2 つの変数を通じて1 つのオブジェクトを使用する
この例は RefsVsValues ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの20行目以降に相当します。
例3-27 参照ではない値のコピー
この例は RefsVsValues ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの27行目以降に相当します。
例3-28 値型
この例は WrongValueType ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる PolarPoint3D.cs ファイル全体に相当します。
例3-29 別のコンストラクタからのコンストラクタの呼び出し
この例は DeferToDefaultCtor ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる PolarPoint3D.cs ファイルの4行目以降に相当します。
例3-30 共通の初期化コードを共有する
この例は SharingCtorCode ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる PolarPoint3D.cs ファイルの4行目以降に相当します。
例3-31 過度のコンストラクタ
この例は TooManyCtors ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる PolarPoint3D.cs ファイルの22行目以降に相当します。
例3-32 独自に作成した値型を持つプロパティを利用する
この例は ValueTypeProperty ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの45行目以降に相当します。
例3-33 他者の視点を考慮してオーバーロードを実装する
この例は OverloadedMethod ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの56行目以降に相当します。
例3-34 デフォルト値を持つ省略可能な引数
この例は DefaultParamValues ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの52行目以降に相当します。
例3-35 オブジェクト初期化子の利用
この例は ObjectInitializer ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの11行目以降に相当します。
例3-36 オブジェクト初期化子をよりうまく使いこなせるようPlane を変更
この例は ObjectInitializerOnly ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの7行目以降に相当します。
例3-37 オブジェクト初期化子だけを使用するコード
この例は ObjectInitializerOnly ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの13行目以降に相当します。
例3-38 別のプロパティへの代入
この例は ObjectInitializerOnly ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Program.cs ファイルの44行目以降に相当します。
例3-39 メソッド
この例は Methods ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの53行目以降に相当します。
例3-40 明示的なメンバアクセス
この例は ExplicitMemberAccess ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの53行目以降に相当します。
例3-41 Plane 同士が近すぎる場合を検出する
この例は StaticMethods ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの77行目以降に相当します。
例3-42 static 状態
この例は StaticFieldsAndProperties ディレクトリ以下の StaticFieldsAndProperties.sln ソリューションに含まれる Program.cs ファイルの4行目以降に相当します。
例3-43 static コンストラクタ
この例は StaticConstructor ディレクトリ以下の AirTrafficControl.sln ソリューションに含まれる Plane.cs ファイルの9行目以降に相当します。
例3-44 static フィールド初期化子の順序に対する配慮
この例は BadStaticFieldInit ディレクトリ以下の BadStaticFieldInit.sln ソリューションに含まれる Program.cs ファイルの6行目以降に相当します。