پاسخ تمرین های فصل : آشنایی بیشتر با مفهوم شی
زیر فصل: مثال هایی برای آشنایی بیشتر با ساخت شی

  1. محصولی جدید با قیمت 5 میلیون تومان و 10 درصد تخفیف برای tablet تعریف کنید. با استفاده از متد WriteProductInfo مشخصات آن را نمایش دهید.

     

            Product tablet = new Product("Tablet", 5_000_000, 10);
            tablet.WriteProductInfo();

     


  2. یک پراپرتی استاتیک برای ذخیرۀ بزرگ‌ترین قیمت به کلاس Product اضافه کنید. (راهنمایی: پراپرتی استاتیک MaxPrice را تعریف کنید و در سازنده‌ای که سه پارامتر ورودی دریافت می‌کند، بررسی کنید که اگر مقدار محصول فعلی از مقدار MaxPrice بیشتر باشد، مقدار MaxPrice را برابر با این مقدار کند و در غیر این صورت به کار خاصی نیاز نیست).

     

    public class Product
    {
        private byte _discountPercentage;
        public static int Counter { get; set; }
        public string Name { get; set; }
        public int Price { get; set; }
        public byte DiscountPercentage
        {
            get
            {
                return _discountPercentage;
            }
            set
            {
                _discountPercentage = (value > 100 ? (byte)100 : value);
            }
        }
        public static int MaxPrice { get; set; } = 0;
        public Product(string name, int price, byte discountPercentage)
        {
            Name = name;
            Price = price;
            DiscountPercentage = discountPercentage;
            ++Counter;
            // بررسی و به روز رسانی MaxPrice
            if (Price > MaxPrice)
            {
                MaxPrice = Price;
            }
        }
        public Product(string name, int price) : this(name, price, 0)
        {
        }
        private int GetDiscountedPrice()
        {
            return Price * (100 - DiscountPercentage) / 100;
        }
        public void WriteProductInfo()
        {
            int discountedPrice = GetDiscountedPrice();
            Console.WriteLine($"{Name} Price is {discountedPrice} after Discount");
        }
    }