-1
public class Product : BaseEntity
{     
    public string ProductTitle { get; set; }
    public string ProductDescription { get; set; }

    
    private readonly DateTime _dateTime;
    public DateTime ProductExpirationDate
    {
        get { return _dateTime; }
        set
        {
            if (DateTime.Now >= _dateTime)
            {
                Console.WriteLine("Product past the expiration date!");
                
            } 
        }
    }
}

/***************/

class Program
{
    static void Main(string[] args)
    {         
        Product product = new Product
        {
            Id = 1,
            ProductTitle = "Milk",
            ProductDescription = "Description of milk",
            ProductExpirationDate = Convert.ToDateTime("08/09/2011 04:05:02")
        };

        Console.WriteLine(product.Id);       
        Console.WriteLine(product.ProductTitle);
        Console.WriteLine(product.ProductDescription);
        Console.WriteLine(product.AddDate);
        Console.WriteLine(product.ProductExpirationDate);
    }
}

Except 'ProductExpirationDate' every thing is fine. I'm practicing on OOP. But the value that i given in Program.cs is not send to Product.cs. It says "Field 'Product.dateTime' is never assigned to, and will always have its default value"

1 Answers1

-1

In the ProductExpirationDate property you are not assigning any value. You should assign it this way:

set
{
    if (DateTime.Now >= _dateTime)
    {
        Console.WriteLine("Product past the expiration date!"); 
    } 

    _dateTime = value;
}
Misha Zaslavsky
  • 8,414
  • 11
  • 70
  • 116