転職を繰り返したサラリーマンの多趣味ブログ

30才未経験でSEに転職した人の多趣味ブログ

C#を勉強する⑧_プロパティの初期化

これまでプロパティの初期化といったら、コンストラクタでやるものだと思ってた。

class Sale {
    public int number { get; set; }
 
    // コンストラクタ
    public Sale() {
        number = 10;
    }
}

けど、C#ではコンストラクタを使わずにプロパティの初期化ができる。これは便利。

public int number { get; set; } = 6;

上の書き方だと外部のクラスからプロパティが変更されてしまうので、読み取り専用プロパティの書き方も別途ある。

public int number { get; private set; } = 6;

読み取り専用は、こんな書き方もある。

public string Name => "山田太郎";

だが、参照型のプロパティを読み取り専用にするには、特別な書き方を必要とする。

// これで要素の変更などはできない
public IReadOnlyList<int> MyList { get; private set; }