C#のプロパティとカプセル化
このレッスンでは、チェック付きのプロパティを使って、オブジェクトを不正な値から守ります。
はじめに
カプセル化(encapsulation)とは、データをオブジェクトの中に閉じ込め、管理された方法でしか変更できないようにすることです。C#のプロパティを使うと、値を代入するときのチェックの処理を書ける一方で、使う側は普通の変数と同じ簡単な書き方で済みます。
フィールド_priceはprivateなので、外から直接アクセスできません。プロパティPriceはこのフィールドを通して読み書きし、setの部分は0以上の値だけを受け付け、価格が負ならArgumentOutOfRangeExceptionを投げます。そのためProductが不正な価格を持つことはなく、19.95は普通に表示されます。
実行できる C# の例
C#
Program.cs
using System;
class Product
{
private decimal _price;
public decimal Price
{
get => _price;
set => _price = value >= 0 ? value : throw new ArgumentOutOfRangeException();
}
}
class Program
{
static void Main()
{
var product = new Product { Price = 19.95m };
Console.WriteLine(product.Price);
}
}
19.95デバッガーで練習する
大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ