0Pricing
C# Academy · レッスン

フィールド、自動プロパティ、オブジェクト初期化子

フィールドと自動プロパティを定義し、簡潔なオブジェクト初期化子でオブジェクトを作成します。

「フィールド、自動プロパティ、オブジェクト初期化子」はCoddyKit上の無料C# Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはC# Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 C# Academyコースには全3レッスンが含まれています。

クラスの基本概要

目標:シンプルなクラスを作成します。

  • フィールドは生のデータを保持します
  • 自動実装プロパティはデータを適切に公開します
  • オブジェクト初期化子は作成時に値を設定します

クラス内のフィールド

フィールドはクラス内の変数です。公開データには、プロパティのほうが安全です。

using System;

// Fields store raw data inside a class
public class Player
{
  public string name; // field (usually prefer properties for public APIs)
  public int level;
}

public class Program
{
  public static void Main(string[] args)
  {
    Player p = new Player();
    p.name = "Ada";
    p.level = 1;
    Console.WriteLine("Player " + p.name + " level " + p.level);
  }
}

自動実装プロパティ

自動実装プロパティを使うと、フィールドを記述せずに get/set 経由でデータを公開できます。簡単な既定値も設定できます。

using System;

// Auto-properties generate a hidden backing field
public class Book
{
  public string Title { get; set; }
  public string Author { get; set; }
  public int Pages { get; set; } = 0; // auto-property initializer (C# 6)
}

public class Program
{
  public static void Main(string[] args)
  {
    Book b = new Book();
    b.Title = "Clean Code";
    b.Author = "Robert C. Martin";
    b.Pages = 464;
    Console.WriteLine(b.Title + " by " + b.Author + " (" + b.Pages + " pages)");
  }
}

オブジェクト初期化子

オブジェクト初期化子は作成時にプロパティを設定するため、コードを短く明確に保てます。

using System;

public class Person
{
  public string Name { get; set; }
  public int Age { get; set; }
}

public class Program
{
  public static void Main(string[] args)
  {
    // Object initializer calls set-accessors after construction
    Person p = new Person { Name = "Alan", Age = 30 };
    Console.WriteLine(p.Name + " (" + p.Age + ")");
  }
}

フィールドとプロパティの比較

指針:

  • 内部的な格納にはprivate フィールドを使用します。
  • public プロパティを公開すると、呼び出し元を壊さずに後から検証を追加できます。
  • 名前は明確でシンプルにします。

フィールドとプロパティの組み合わせ

private フィールドとプロパティを組み合わせて、書き込みを制御します(単純な不変条件)。

using System;

// Private fields + public properties pattern
public class Product
{
  private int _stock;                   // field (internal storage)
  public string Name { get; set; }      // property (public API)
  public int Stock                      // property with simple guard
  {
    get { return _stock; }
    set
    {
      if (value < 0) value = 0; // simple safety for beginners
      _stock = value;
    }
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Product p = new Product { Name = "Pen", Stock = 5 };
    p.Stock = -3; // setter clamps to 0
    Console.WriteLine(p.Name + " stock = " + p.Stock);
  }
}

自動実装プロパティの概念

自動実装プロパティとは、C# ではどのようなものでしょうか?

まとめ

まとめ:フィールドでデータを定義し、自動実装プロパティで公開します。オブジェクト初期化子を使って作成時に値を設定します。

よくある質問

「フィールド、自動プロパティ、オブジェクト初期化子」レッスンは無料ですか?

はい。「フィールド、自動プロパティ、オブジェクト初期化子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、C# Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 C# Academyコースには全3レッスンが含まれています。

「フィールド、自動プロパティ、オブジェクト初期化子」で何を学びますか?

フィールドと自動プロパティを定義し、簡潔なオブジェクト初期化子でオブジェクトを作成します。 ブラウザで直接実行するハンズオンコードでC# Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

C# Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのC# Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「フィールド、自動プロパティ、オブジェクト初期化子」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このC# Academyレッスンでコードを書いて実行できますか?

はい。すべてのC# Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. フィールド、自動プロパティ、オブジェクト初期化子
  2. コンストラクターとstaticメンバー
  3. カプセル化と不変条件
← C# Academyに戻る