Search code examples
c#getter-setterautomatic-properties

Update a class property based on another property's value in the setter


I have two model classes:

public class Person
{
    public int PersonId { get; set; }
    public string Name { get; set; }
    public int AddressId { get; set; }
    public Address AddressInfo { get; set; }
}

public class Address
{
    public int AddressId { get; set; }
    public string streetName { get; set; }
    public string City { get; set; }
    public string State { get; set; }
}

If any value gets update in Person.AddressInfo.AddressId, how can I update the Person.AddressId automatically?


Solution

  • what about this?

    public class Person
    {
        public int PersonId { get; set; }
        public string Name { get; set; }
        public int AddressId 
        { 
            get{ return AddressInfo?.AddressId ?? 0 } 
            set{ AddressInfo?.AddressId = value; }
        }
        public Address AddressInfo { get; set; }
    }
    
    public class Address
    {
        public int AddressId { get; set; }
        public string streetName { get; set; }
        public string City { get; set; }
        public string State { get; set; }
    }
    

    This uses the AddressInfo as the back storage