Skip to content

Instantly share code, notes, and snippets.

@karenpayneoregon
Created September 11, 2024 22:15
Show Gist options
  • Save karenpayneoregon/27a784c5efbecbbac0215e2d67e95095 to your computer and use it in GitHub Desktop.
Save karenpayneoregon/27a784c5efbecbbac0215e2d67e95095 to your computer and use it in GitHub Desktop.
public class BirthDay
{
private const string Template =
"""
Hey,
{name}'s birthday is on {dob}, which is in {month}.
Let's plan a party!
""";
private readonly Dictionary<string, string> _parameters = new();
private BirthDay(string name, DateOnly dob)
{
_parameters.Add(@"{name}", name);
_parameters.Add(@"{dob}", $"{dob:MM/dd/yyyy}");
_parameters.Add(@"{month}", $"{dob:MMMM}");
}
public static BirthDay CreateInstance(string name, DateOnly dob) => new(name, dob);
public override string ToString()
=> _parameters.Aggregate(Template, (sender, kv)
=> sender.Replace(kv.Key, kv.Value));
}
var result = BirthDay.CreateInstance("Mary", new DateOnly(1956, 9, 21)).ToString();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment