I\'ve been working with C# for many years now, but just come across this issue that\'s stumping me, and I really don\'t even know how to ask the question, so, to the example!
You could build an extension method:
public static void CopyAddress(this IAddress source, IAddress destination)
{
if (source is null) throw new ArgumentNullException("source");
if (destination is null) throw new ArgumentNullException("destination");
//copy members:
destination.Address1 = source.Address1;
//...
}