プロパティとは、クラスのフィールドに対するアクセスをコントロールする仕組みです。 フィールドを直接公開せずに、安全に値の取得(getter)や設定(setter)を行うことができます。
class Person
{
public int Age;
}
class Program
{
static void Main()
{
Person p = new Person();
p.Age = -5; // 不正な値でも代入できてしまう
Console.WriteLine(p.Age);
}
}
このように、フィールドを直接公開していると不正な値(マイナスの年齢など)が簡単に設定されてしまいます。 これを防ぐためにプロパティを使います。
using System;
class Person
{
private int age;
public int Age
{
get { return age; }
set
{
if (value >= 0)
{
age = value;
}
else
{
Console.WriteLine("年齢には負の数を設定できません。");
}
}
}
}
class Program
{
static void Main()
{
Person p = new Person();
p.Age = 25;
Console.WriteLine(p.Age);
p.Age = -10; // 無効な値
Console.WriteLine(p.Age);
}
}
get ブロック:値を取得するための処理set ブロック:値を設定する際の処理。value は設定される値を表します。class Book
{
public string Title { get; set; }
}
class Program
{
static void Main()
{
Book b = new Book();
b.Title = "C#入門";
Console.WriteLine(b.Title);
}
}
Product クラスを作り、Name(文字列)と Price(数値)をプロパティとして実装してください。Price に負の数が設定されないようにバリデーションを入れてみましょう。