Свойства и инкапсуляция в C#
В этом уроке вы защитите объект от неверных значений с помощью свойств с проверкой.
Введение
Инкапсуляция - это когда данные хранятся внутри объекта и меняются только контролируемым способом. В C# свойства позволяют добавить проверку в момент присваивания, а использующий код при этом пишет так же просто, как с обычной переменной.
Поле _price объявлено private, поэтому снаружи к нему нельзя обратиться напрямую. Свойство Price читает и записывает данные через это поле, а его часть set принимает только неотрицательные значения и выбрасывает ArgumentOutOfRangeException, если цена отрицательная. Поэтому у Product никогда не бывает неверной цены, а значение 19.95 выводится как обычно.
Пример на C#, который можно запустить
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Практика с отладчиком
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи