●学校情報

講座一覧・募集状況

学習方法

学習サポート

修了生の評価

受講生の横顔

当学院について

入学相談

入学手続

 

●講座情報

技術者養成講座

プログラミング講座

WEB講座

情報処理試験講座

Excel講座

Access講座

 

●関連コラム

関連コラム

関連用語集

 

logo

 

 

関連用語集

簡単に使えて便利!「自動実装プロパティ」と「プロパティ初期化子」

C#では、フィールドを明示せずにプロパティを使う「自動実装プロパティ」や、
定義時に初期値を設定できる「プロパティ初期化子」が使えます。
簡潔で読みやすいコードを書くのにとても便利です。


@ 自動実装プロパティ(Auto-Implemented Property)

通常のプロパティでは、内部フィールドを明示してget/setを定義しますが、
自動実装プロパティではその定義を省略

従来のプロパティ

private string name;

public string Name {
    get { return name; }
    set { name = value; }
}
    

自動実装プロパティ(簡略版)

public string Name { get; set; }
    

C#コンパイラが裏で自動的にフィールドを作成してくれます。

読み取り専用のプロパティも可能(getのみ)

public string Id { get; }  // 初期化はコンストラクタまたは初期化子で
    

A プロパティ初期化子(Property Initializer)

自動実装プロパティと組み合わせて、定義時に初期値を設定することができます(C# 6.0以降)。

public string Status { get; set; } = "未設定";
public int Age { get; set; } = 18;
    

結果として

var person = new Person();
Console.WriteLine(person.Status);  // → 未設定
Console.WriteLine(person.Age);     // → 18
    

B コンストラクタとの併用もOK

プロパティ初期化子での初期化はデフォルト値として扱われ、
コンストラクタで上書きすることもできます。

public class Person {
    public string Name { get; set; } = "名無し";

    public Person(string name) {
        Name = name;  // 上書きされる
    }
}
    
var p1 = new Person("花子");
Console.WriteLine(p1.Name);  // → 花子
    

C getのみの自動実装(読み取り専用)

public DateTime CreatedAt { get; } = DateTime.Now;
    

このようにすると、一度設定されたら変更不可な「読み取り専用プロパティ」を作れます。


まとめ

自動実装プロパティを使うことで、シンプルかつ安全にデータを管理できます。
プロパティ初期化子を使えば、初期値の設定も簡単に行えます。
C#の標準的な書き方として多用されるので、しっかり覚えておきましょう!

 

C#関連用語集

−−−−−  C#  −−−−−

C#の基本単位「クラス(Class)」とは?

クラスから生まれる実体「オブジェクト(Object)」とは?

クラスの実体「インスタンス(Instance)」とは?

オブジェクトの初期化に使う「コンストラクタ(Constructor)」とは?

フィールドへのアクセスを制御!「プロパティ(Property)」とは?

クラスが持つデータ「フィールド(Field)」とは?

クラスの動作を定義する「メソッド(Method)」とは?

既存のクラスを引き継ぐ「継承(Inheritance)」とは?

同じ命令で異なる動きができる「多態性(Polymorphism)」とは?

データを守る「カプセル化(Encapsulation)」とは?

土台だけを用意する「抽象クラス(Abstract Class)」とは?

ルールを定める仕組み「インターフェース(Interface)」とは?

親クラスのメソッドを上書きする「オーバーライド(Override)」とは?

引数の違いで同じ名前が使える「オーバーロード(Overload)」とは?

C#で自分自身を指す「thisキーワード」とは?

親クラスの機能を使う「baseキーワード」とは?

インスタンス不要で使える「static(静的)」とは?

値を変えたくないときに使う「readonly / const(定数)」とは?

メソッドを渡せる仕組み「delegate(デリゲート)」とは?

「何かが起きたら知らせる」仕組み「event(イベント)」とは?

簡潔な書き方ができる「ラムダ式(Lambda Expression)」とは?

C#で使える「LINQ(言語統合クエリ)」とは?

エラーから安全に回復する「例外処理(try-catch-finally)」とは?

意図的にエラーを発生させる「throw(スロー)」とは?

名前空間やリソースを扱う「usingディレクティブ」とは?

クラスの整理に便利な「namespace(名前空間)」とは?

型を柔軟に扱う「ジェネリクス(Generics)」とは?

データの集まりを扱う「コレクション(List / Dictionary / HashSet)」とは?

処理を止めずに進める「非同期処理(async / await)」とは?

簡単に使えて便利!「自動実装プロパティ」と「プロパティ初期化子」

 

 

学校案内

17,000円の講座から!

質問には24時間以内に返答・質問回数は無制限など万全の学習サポート!

是非ご閲覧下さい!

札幌情報技術学院インターネットカレッジ トップページ