builder.cs 979 B

12345678910111213141516171819202122232425262728293031
  1. using System;
  2. namespace BuilderPatternWithRecords
  3. {
  4. record Address(string Line1, string Line2, string ZipCode,
  5. string City, string Country);
  6. record AddressBuilder(
  7. string Line1 = "Line 1", string Line2 = "Line 2", string ZipCode = "00-123",
  8. string City = "Lorem City", string Country = "Poland")
  9. {
  10. public Address Build() => new Address(Line1, Line2, ZipCode, City, Country);
  11. }
  12. class Program
  13. {
  14. static void Main(string[] args)
  15. {
  16. var address1 = new AddressBuilder().Build();
  17. Console.WriteLine(address1);
  18. var address2 = new AddressBuilder { ZipCode = "lorem" }.Build();
  19. Console.WriteLine(address2);
  20. var builder = new AddressBuilder { City = "Warsaw" };
  21. var warsawA = (builder with { Line1 = "Z" }).Build();
  22. var warsawB = (builder with { Line1 = "A" }).Build();
  23. Console.WriteLine($"{warsawA}, {warsawB}");
  24. }
  25. }
  26. }